Jmeter接口测试
Jmeter接口测试基本步骤
使用Jmeter进行接口测试的基本步骤如下:
1.测试计划
2.线程组
3.HTTP Cookie管理器
4.Http请求默认值
5.Sampler(HTTP请求)
6.断言
7.监听器(查看结果树、图形结果、聚合报告等)
使用教程
1.创建测试计划
双击bin目录下的jmeter.bat文件,打开Jmeter,在菜单左侧出现 “测试计划”。在这里测试计划我们可以把它理解成新建的空白项目:
2、添加线程组
添加方法:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组;
元件描述:一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。
(1)线程数:即虚拟用户数。设置多少个线程数也就是设置多少虚拟用户数
(2)Ramp-Up时间(秒):设置虚拟用户数全部启动的时长。如果线程数为20,准备时长为10秒,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。
(3)循环次数:每个线程发送请求的个数。如果线程数为20,循环次数为10,那么每个线程发送10次请求。总请求数为20*10=200。如果勾选了“永远”, 那么所有线程会一直发送请求,直到手动点击工具栏上的停止按钮,或者设置的线程时间结束。
注意:接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。
3、添加HTTP Cookie管理器
添加方法:右键线程组->添加->配置元件->HTTP Cookie管理器。
元件描述:HTTP Cookie管理器可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。
4.添加Http请求默认值
添加方法:右键点击线程组,添加->取样器->HTTP请求;
元件描述:HTTP请求默认值是为了方便填写后续内容而设置。主要填写[服务器名称或IP]和[端口号],后续的HTTP请求中就不用每次都填写IP地址和端口号了。
5、添加HTTP请求
添加方法:右键线程组->添加->取样器->HTTP请求。
元件描述:HTTP请求包括接口请求方法、请求路径和请求参数等。
HTTP请求详解
(1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
(2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
(3)服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
(4)端口号:目标服务器的端口号,默认值为80 。
(5)协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http
(6)方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、TRACE、OPTIONS、DELETE等。
(7)路径:目标URL路径(不包括服务器地址和端口)
(8)内容编码:内容的编码方式,默认值为iso8859
(9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。
(10)使用keep Alive :保持jmeter 和目标服务器之间的活跃状态,默认选中
(11)对Post使用multipart/from-data:当发送POST 请求时,使用multipart/from-data方法发送,默认不选中。
(12)同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)
6、添加响应断言
添加方法:右键HTTP请求->添加->断言->响应断言。
元件描述:检查接口是否访问成功。如果检查失败的话会提示找不到断言的内容,没提示的话就代表成功了。
断言配置参数详解
Apply to
指断言作用范围,通常发出一个请求只触发一个请求,所以勾选“main sample only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了。
(1)Main sample and sub-samples:作用于主请求和子请求
(2)Main sample only:仅仅只作用于主请求
(3)Sub-samples only:仅仅只作用于子请求
(4)Jmeter Variable:作用于jmeter变量(输入框内输入jmeter变量名称)
测试字段
响应文本(匹配返回的json数据)、响应代码(匹配返回码:如200, 404,500等)、响应信息(匹配响应信息如“OK”字样)、响应头(匹配响应头)、请求头(匹配请求头)、URL样本(匹配请求的url链接,如果有重定向则包含请求url 和 重定向url)、[文档(文本)](匹配响应数据的文本形式)、忽略状态(一个请求有多个响应断言,第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的)、请求数据(匹配请求数据)
模式匹配规则
包括:响应内容包含需要匹配的内容即代表响应成功,支持正则表达式。
匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
字符串:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
相等:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
否:相当于取反,如果结果为true,勾上否就是false
或者:如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)
测试模式
其实就是断言的数据。点击“添加”按钮,输入要断言的数据。
7.添加监听器(查看结果树、图形结果、聚合报告等)
一并添加图形结果、聚合报告。
添加方法:HTTP请求->添加 ->监听器 ->察看结果树。
添加方法:HTTP请求->添加->监听器->聚合报告。
元件描述:树状形式显示接口的访问结果,包括请求结果、请求内容、服务器的响应内容。
配置参数
1.配置线程组
设置线程数,Ramp-up与循环次数为1
比如线程数填10,Ramp-up时间填5,循环次数填1,就表示在5秒内发送10次请求,执行一次。
2.配置HTTP请求数据
- 设置协议,默认是http;
- 设置服务器地址,可以填IP,也可以填域名;
- 设置HTTP请求方法;
- 设置请求url路径,注意:GET请求的参数可以直接带在路径上。
测试
点击界面工具栏的绿色三角按钮开始压测。
等待测试结束后,我们可以选择左侧的察看结果树,就可以看到本轮测试的请求情况
解释一下这份报告:
- 样本:请求的次数,计算公式是线程数*循环次数,如果线程组配置勾选了永远,那么就是你停止测试时实际发送的请求数
- 平均值:响应时间的平均用时,单位是毫秒。比如这里的平均响应时间是38毫秒
- 中位数:响应时间的中位数,单位是毫秒。
- 90%百分位:90%的响应时间小于该数值,单位是毫秒。这里有90%的响应时间小于22毫秒
- 95%百分位:含义和90%类似
- 99%百分位:含义和90%类似
- 最小值:本轮测试最小响应时间,单位是毫秒。
- 最大值:本轮测试最大响应时间,单位是毫秒。
- 异常%:本轮测试出现异常的请求比例。
- 吞吐量:可以理解为QPS,即是我们测试的接口处理请求的能力。比如这里是平均每秒可以处理2.2次请求。
- 接收KB/Sec:响应数据的接收速率。
- 发送KB/Sec:请求数据的发送速率。
保存测试计划为jmx,在非GUI下运行
选择左侧的Test Plan,然后点击 文件->保存测试计划为,然后选择存放目录,可以得到一个jmx格式的文件。
请查看:https://www.cnblogs.com/-wenli/p/14163523.html