jmeter操作详解(一)
Jmeter操作详解(一)
一、Jmeter介绍
Jmeter是采用java语言开发的一款用来进行互联网接口自动化测试和性能测试的工具
1、安装JDK(1.8)
待完善...
2、安装Jmeter
待完善...
3、Jmeter目录结构

- backups:jmeter自动备份的数据,可以在其中寻找一些忘记保存的数据;
- bin:jmeter可执行文件目录,启动jmeter时,就是启动bin目录下的Apachehmeter.jar,jmeter.bat,jmeter.sh文件;
- docs:jmeter的接口文档,二次开发的工程师需要学习查看;
- extras:jmeter的第三方功能,里面集成了使用ant来生成html测试报告的功能;
- lib:jmeter的本地以来包库,一旦删除,会影响jmeter的运行;
- licenses:jmeter的证书;
- pritable_docs:jmeter的操作手册。如果要想自学jmeter,可以查看这个pritable_docs中的英文文档自学。
4、Jmeter安装第三方插件
jmeter安装插件的网址:https://jmeter-plugins.org/install/Install/
获取插件最简单的方法就是安装Plugins Manager。然后点击复选框即可安装任何其他插件了
操作步骤:
下载**plugins-manager.jar**并放入
lib/ext目录,然后重启 JMeter。
然后重启jmeter,即可生效,在选项最后即可看见

做性能测试时需要添加以下常用的插件。Installed Plugins是已经安装的插件;Available Plugins是可安装的插件。

插件安装成功,下面这个页面即可验证,点击测试计划,选择添加,选择监听器即可

二、Jmeter基础
1、jmeter入门操作,5个步骤
- 添加线程组
- 在线程组中添加HTTP请求
- 在线程组中添加查看结果树
- 配置HTTP取样器
- 运行,查看结果
2、jmeter三个重要组件介绍
- 线程组:jmeter是基于线程来运行的,线程组主要用来管理线程的数量,线程的执行策略。
- HTTP请求:HTTP请求时jmeter接口测试的核心部分,主要使用HTTP取样器来发送接口请求
- 查看结果树:通过HTTP取样器发送接口请求后,服务器返回的结果需要通过查看结果树进行查看
3、线程组
添加方法:测试计划--添加--线程(用户)--线程组

在取样器错误后要执行的动作
- 继续
- 启动下一进程循环
- 停止线程
- 停止测试
- 立即停止测试
线程属性
- 线程数:启动的线程数量,也是用户数量
- Ramp-Up时间(秒):每个线程启动的间隔时间,注意,第一个线程,0秒启动
- 循环次数
- 延迟创建线程知道需要:修复Ramp-UP时间(秒)的Bug在设置的功能
调度器配置(设置线程启动的策略)
持续时间:所有线程运行的最大时间。
注意:如果启动线程给服务器发送请求,由于发送请求后,会阻塞线程,让线程等待服务器响应,所以,如果服务器没有返回响应数据之间,线程会进入等待状态,从而无法停止,导致超过设置的最大时间。
启动延迟:启动线程要等待的时间
4、HTTP请求
添加方法:线程组--添加--取样器--HTTP请求

- 协议:填写URL协议部分的内容。http或者https或者其他协议。
- 服务器名称或IP:IP
- 端口号:填写URL中端口部分的内容。http协议默认端口为80端口,https协议默认端口为443.(8080端口一般用于webcahe,与80端口完全时不一样的。比如说linux服务器里面apache默认跑80端口,而apache-tomcat默认跑8080端口)
- HTTP请求
- 方法:get,post,常用的两种
- 路径:设置资源路径和查询参数
- 内容编码:设置请求数据的编码类型,utf-8为常用的
- 参数:设置查询参数和请求体数据。当请求方法时get请求时,参数是查询参数,当请求方法是post时,参数是请求体数据(表单格式请求体)
- 消息体数据:自定义的请求体数据,与参数只能选择一个填写
- 文件上传:定义要上传的文件
5、查看结果树
添加方法:线程组--添加--监听器--查看结果树
作用:发送请求后,可以再查看结果树中,查看取样器的运行结果。运行结果包括了经过jmeter处理之后的请求数据和响应数据

- 文件名:选择把结果保存到文件,不写时就不保存(比如执行接口测试自动化需要将脚本保存到需要运行的路径中)
- Text:可以选择查看响应数据的方式
- 查找:搜索查看结果树,左侧侧边栏的接口信息
- 取样器结果:在选择了Text格式查看数据时会显示,主要查看一些综合信息,包括接口请求时间,数据包大小等等
- 请求:查看接口的所有请求数据,包括请求行,请求头和请求体。这个数据经过jmeter处理,所有可以用来分析处理请求的过程中有没有出现问题
- 响应:查看接口的所有响应数据,包括状态,响应头,响应体
6、总结
jmeter的线程组,HTTP请求和查看结果树是进行接口自动化测试最重要的三个组件,单个组件必须联合使用。
三、Jmeter元件
1、Jmeter的八大元件
取样器:jmeter接口测试的核心,我们发送接口请求的配置都必须在取样器中完成
逻辑控制器:可以控制jmeter其他元件的运行方式。主要又循环,IF条件等功能
监听器:用来采集取样器运行完成后的运行结果
定时器:主要对各个接口请求
前置处理器:取样器运行之前,要执行的元件。比如说,发送HTTP接口请求之前,先运行前置处理的代码
后置处理器:取样器运行之后,要执行的元件,比如说发送HTTP接口请求,并接受到响应数据之后,执行的元件

2、Jmeter的作用域
Jmeter是典型的树形结果,也就是父子关系的结果。Jmeter的作用域主要是对取样器生效
- 取样器:元件不和其他元件相互作用,因此不存在作用域的问题
- 逻辑控制器:对逻辑控制器下的所有子元件和取样器起作用
- 其他六大元件:其他6个元件如果是取样器的子节点,则该元件支队父节点的取样器生效
- 如果其该元件的父节点不是取样器,那么对父节点下的所有子节点生效,包括子节点子节点
3、Jmeter的执行顺序
- 执行顺序规则
- 按照深度遍历的规则,先把每个节点下的所有元件都执行完毕,才会执行下一个
- 同级节点顺序
- 配置元件
- 前置处理器
- 定时器
- 取样器
- 后置处理器
- 断言
- 监听器
- 特殊规则
- 用户定义的变量配置元件。会始终优先执行
- 数据库配置元件也会始终优先执行
四、Jmeter接口核心测试
jmeter设置请求头和cookie
1、jmeter设置请求头
定义:其实就是请求头,它会随着我们的HTTP请求一起发送到服务器
作用:用于储存请求时需要包含的信息头
应用场景:需要传输cookie,token或其他某些i西南西,或者需要伪造请求头的时候
添加方法:取样器-添加-配置元件-HTTP信息头管理器

2、jmeter设置Cookie
作用:该组件用来管理Cookie,实现自动管理保存服务器返回的Cookie的功能
应用场景:存储并发送cookie
添加方法:取样器-添加-配置元件-HTTP Cookie管理器

jmeter参数化
1、参数化:用变量代替数据的过程,就是参数化。主要有以下四种设置方法:
用户自定义的变量
用户参数
CSV数据文件设置
jmeter函数
引用变量格式:${变量名}
2、用户定义的变量
用户自定义的变量有两种
- 一种是通过测试计划面板中的用户定义的变量设置,用户定义的变量对所有测试计划都会生效
- 另一种是在线程组下选择添加,再选择配置元件,再选择用户定义的变量
3、用户参数
- 定义:jmeter的线程就是用户,用户参数就是传递给线程的变量
- 作用:在变量名的情况下,可以对每个线程设置不同的变量值
- 应用场景:比如,我们需要测试3个不同的手机号登录,那么可以设置一个手机号phone,然后分别设置phone不同的属性值。这样可以实现每个线程运行时,采用不同手机号码的功能了,这个业务可以实现大量手机号码的并发登录场景
- 添加方法:线程组-添加-前置处理器-用户参数
4、CSV数据文件设置(重点)
- 作用:CSV数据文件设置,主要用来读取外部的数据文件,实现数据驱动测试
- 添加方法:线程组-添加-配置元件-CSV数据文件设置

界面名词解释
文件名:要读取的数据文件名称
文件编码:读取数据文件时,采用的编码,该编码需要与文件名保持一致
变量名称(西文逗号间隔):读取数据时,接受数据的变量,按列来接受,多个用列用多个变量接受,每个变量之间用英文逗号做分隔符
忽略首行:不读取第一行的数据。一般CSV数据文件中的第一行都是标志数据的key,所以可以忽略
分隔符:按照数据文件的分隔符进行填写,主要用来分割每一列
是否允许带引号:默认选False,选True的时候,会自动去掉双引号
遇到文件结束符再次循环:文件所有数据加载完之后,是否从头再次读取
遇到文件结束符停止线程:文件读取完毕之后,是否停止当前运行的线程
线程共享模式:线程共享数据的模式
- 所有线程共享:所有线程都能共享访问CSV读取出来的数据
- 当前线程组:当前线程组中的所有线程,共享访问CSV读取出来的数据
- 当前线程:每个线程单独访问CSV读取出来的数据
- 编辑:自定义功能,目前无法使用
操作步骤(截图后续完善)
设置接口数据文件

进行CSV数据文件设置,关联CSV读取出来的变量username,phone
设置线程组,将线程数改成3,运行程序,查看结果
查看结果树,如三个请求都登录成功,说明使用jmeter的http请求,使用了外部文件的数据,实现了数据驱动
5、jmeter函数(未完成,后续完善)
作用:jmeter提供了内部的函数功能,可以生成特殊的测试数据。例如时间戳,随机数等。jmeter函数用法可以参考函数助手对话框,然后利用函数助手对话框中生成的函数,把数据填写到接口的请求中。
函数助手对话框打开方式:Tools-函数助手对话框

将生成的表达式放在HTTP请求中(截图后续完善)
jmeter生成HTML测试报告
1、安装ant
2、安装ant支持jmeter的jar包
3、配置ant的build.xml和jmeter-results-detail-report_21.xsl配置文件
4.生成HTML测试报告