第二篇 Jmeter核心组件及实战演练
一. Jmeter 基础功能组件之线程组和Sampler
1. 测试计划:就是对被测对象的一个测试安排,比如安排多少个并发,压测多久,循环执行次数等等
2. 线程组:在测试计划下面可以创建不同的线程组
3. 线程属性:
1)线程数:就是并发用户数,当运行达到峰值的时候,就达到了计划的并发值,比如100个并发用户
2)Ramp-Up Period(in seconds):多少秒内跑完。比如上面是100个并发用户,这里填写的是5,就是5秒内跑完一百个并发。Jmeter这里会自动计算,100/5 = 20,即每秒跑20个并发
3)循环次数:一般不会用永远,而是会设置一个循环次数,即迭代。比如设置10,就是100个并发循环10次。
4. 调度器
如果勾选了调度器,则循环次数即使设置了也会无效,而是在设置的持续时间内一直循环,直到持续时间运行完毕。
持续时间(秒):
启动延时(秒):
二. Jmeter断言的基本用法
1、增加断言: 线程组 -> 添加 -> 断言 -> 响应断言
对一个api断言可以添加多个
2 .对界面的解释:
1. apply to(应用范围):
1)Main sample only: 仅对当前父取样器进行断言,一般就一个请求;
2)Main sample and sub-samples: 如果发一个请求会触发多个其他请求,用这个(比较少用)
2. 要测试的响应字段:
响应文本:即响应的数据,比如json等文本——常用
响应代码:http的响应状态码,比如200,302,404这些——常用
响应信息:http响应代码对应的响应信息,例如:OK, Found
Response Header: 响应头
3. 模式匹配规则:
包括:要检测的内容包含在要测试的响应字段里面就成功
匹配:响应内容完全匹配,不区分大小写
equals:完全匹配,区分大小写
4. 要测试的模式:需要根据 你勾选的要测试的字段来写,比如下面的例子是测试响应文本,响应文本里有个登录成功的文字返回,则 要测试的模式里就添加并手写入:登录成功, 见下图
5. Custom failure message:自定义失败信息,作用是当断言失败的时候,就返回你自己定义的失败信息,方便查看,见下图。
3. 断言结果监听器: 线程组-> 添加 -> 监听器 -> 断言结果
里面的内容是sampler采样器的名称
断言失败,查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录,可以看到错误信息)
4. 每个sample下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总
5. 具体的断言怎么写 及 测试结果展示
三. Jmeter实战演练压测结果聚合报告分析
看图识字
新增聚合报告:线程组->添加->监听器->聚合报告(Aggregate Report)
名词解释:
Lable: sampler的名称,可以直观清楚的知道具体是哪个接口
Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
Average: 平均响应时间
Median: 中位数,也就是 50% 用户的响应时间
90% Line : 90% 用户的响应不会超过该时间
95% Line : 95% 用户的响应不会超过该时间
99% Line : 99% 用户的响应不会超过该时间
Min : 最小响应时间
Max : 最大响应时间
Error%:错误的请求的数量/请求的总数
Throughput: 吞吐量,默认情况下表示每秒完成的请求数(Request per Second), 可类比为qps
KB/Sec: 每秒接收数据量
四. Jmeter 压测脚本之JMX
前面已经讲的内容已经基本可以启动在项目中进行应用了,但是Jmeter是如何通过配置来执行的,它的数据是存储在哪里的?
首先,Jmeter的配置和数据等都是存储在JMX的一个脚本文件里的,将来的测试都是通过JMX的脚本文件进行的,后续需要修改参数等也都是直接在JMX里操作的。
1. JMX文件其实是个XML文件
2. 拖拽到xml编辑器或者sublime里打开,就能清楚的看见,当然首先需要你有一点点xml基础知识
3. 所有在Jmeter GUI界面上的配置项和参数(用户自定义参数,提取的参数等)都存在JMX文件对应的节点下面
4. 将来在Linux上执行压测的时候,Http sampler,断言等一般就不要再进行配置了,因为前期你一定是经过调试好的脚本
5. 需要修改的配置项