JMeter是开源软件,100%的使用Java语言来进行开发的,支持主流的协议(HTTP,HTTPS,WebService,gRPC)的API测试和性能测试,是一款非常优秀的测试工具软件。
二、JMeter的下载
JMeter的下载地址为:https://jmeter.apache.org/download_jmeter.cgi
下载后将压缩包放在安装目录解压,解压后的文件目录如下:
三、JMeter的运行方式
java 语言编写的程序,程序要运行,对外运行的程序有两种方式(基本一样):
1、.war
2、.jar 启动方式: java -jar .war java -jar .jar
四、JMeter的配置文件
五、JMeter的基本应用
在一个测试计划里面可以有很多的线程组
线程组可以等价为PostMan里面的Collections,也就是集合,那么在一个线程组里面可以有很多的API测试用例。
1、Text/xml
以获取手机号码归属地为例,接口协议如下:
1)在jmeter中创建如下图的线程组和http请求,并填写请求方法和请求地址。
2)执行下图操作,在Test Plan右键选择添加【查看结果树】
3)通过点击下图中的绿色箭头,执行线程组,在【查看结果数】中查看测试结果,如下图所示:
2、表单格式
以获取手机号码归属地为例,接口协议如下:
1)在jmeter中添加如下图的HTTP信息头管理器,并填写请求头。
2)在jmeter的表单方式获取手机号码线程组中添加http请求,并填写请求方法、请求地址和请求参数。
3)执行2)中的http请求,在查看结果树中查看测试结果,如下图所示:
3、xml格式
以获取手机号码归属地为例,接口协议如下:
1)在jmeter中添加如下图的HTTP信息头管理器,并填写请求头。
2)在jmeter的xml格式获取手机号码归属地线程组中添加http请求,并填写请求方法、请求地址和消息体数据。
3)执行2)中的http请求,在查看结果树中查看测试结果,如下图所示:
4、json格式
以风暴测试平台登录为例,通过浏览器的Network抓包得到以下接口数据
1)在jmeter中添加如下图的HTTP信息头管理器,并填写请求头。
2)在jmeter的登录线程组中添加http请求,并填写请求方法、请求地址和消息体数据。
3)执行2)中的http请求,在查看结果树中查看测试结果,如下图所示:
六、JMeter实战(以风暴测试平台为例)
创建以下目录结构:
1、HTTP信息头管理器
注释:jmeter中的变量是整个线程组的,所以先调用变量再定义变量不会出错。
2、HTTP请求默认值
1)通过如下图步骤,在测试平台线程组下添加HTTP请求默认值
2)HTTP请求默认值中填写请求的ip地址和端口号,以及内容编码,之后可以一劳永逸,在所有http请求的请求地址中的IP和端口号可以省略不写,只需在一个地方维护。
注释:HTTP信息头管理器与HTTP请求默认值属于全局变量,所以放在线程组下,http请求上。
1)登录的http请求如下图所示:
①如下图所示在通过添加【后置处理器】的【JSON提取器】,创建名为“获取Token”的JSON提取器;因为token是一个动态参数,所以要在JSON提取器中定义token。
②在JSON提取器中填写以下信息:
2)验证用户昵称
3)验证手机号码
4)验证用户状态
4、首页
5、产品管理
1)添加产品
①JSON提取器
如下图所示,因为产品id是变化的,所以产品id是一个动态参数,因此通过json提取器定义这个动态参数。
②验证新增产品名称
③验证产品id
2)查询产品
①默认查询
a.http请求
b.响应断言
②模糊查询
a.http请求
b.JSON断言
③精确查询
a.http请求
b.JSON断言
3)修改产品
①修改产品名称
a.http请求
b.JSON断言
②修改产品类型
a.http请求
b.JSON断言
③修改产品版本
a.http请求
b.JSON断言
④修改产品负责人
a.http请求
b.JSON断言
⑤修改产品描述
a.http请求
b.JSON断言
4)删除产品
①删除产品-状态码
a.http请求
b.响应断言(通过状态码验证)
②删除产品-删除后查询产品为空
a.http请求
b.响应断言(通过响应文本验证)
jmeter中如何处理动态参数?
以登录为例,登录请求返回的数据token就是一个动态参数,在登录测试用例下添加"后置处理器"的"JSON提取器",在请求头中添加Authorization,使用${token}进行动态参数的调用。