一、安装及基本使用
Mac下Jmeter基本使用_jmeter mac-CSDN博客
windows直接下载官网安装包安装、配置环境变量即可,其他使用是一样的。
二、简单应用,测试单个接口
- 线程组
- HTTP请求
- HTTP信息头管理器
- 响应断言
- 查看结果树
- 聚合报告
三、参数化
1、csv导入
“取样器”右键-->添加-->配置元件-->CSV Data Set Config
2、用户参数
“取样器”右键-->添加-->前置处理器-->用户参数
作用:用户参数可以作用于某个线程组或者作用于某个取样器下,无法跨线程组使用;每次执行只取一次。(用户自定义变量是可以跨线程组使用的,其他使用方式等两个相同)
3、用户自定义变量
“取样器”右键-->添加-->配置元件-->用户定义的变量
作用:用户定义变量也称作全局变量,作用于整个测试计划,可以支持跨线程组使用变量
4、内置函数
如函数助手,例:随机数、UUID等
5、json提取器
6、正则表达式提取器
7、beanShell脚本
直接编写java代码或导入jar包
Jmeter的beanshell应该怎么写?_beanshell 取样器 写脚本时必须写main函数嘛-CSDN博客
四、定时器简单介绍
jmeter 定时器详解_jmeter固定定时器是干嘛的-CSDN博客
路径:添加>定时器>
1、固定定时器
- 用法(场景):更真实的模拟用户场景,需要设置等待时间,或是等待上一个请求的时间才执行,给 sampler 之间的思考时间;
- 备注:如果需要每个步骤均延迟,则将定时器放在与请求持平的位置,若只针对一个请求延迟,则将定时器放在该请求子节点中。
全部延迟:
针对某个sampler延迟:
2、同步定时器
同步定时器类似LoadRunner的集合点,作用是阻塞线程,达到指定的线程数量后,再一起释放。
添加>定时器>同步定时器(Synchronizing Timer)
1、模拟用户组的数量:每次释放的线程数量,即并发数。默认为0
设置为0则并发数等于线程租中的线程数;设置大于0则等待达到这个数量再并发执行。
2、超过时间以毫秒为单位:默认为0
如果设置为0,该定时器将会等待线程数达到了"模拟用户组的数量"中设置的值才释放;设置大于0,超过设置的时间但是没达到"模拟用户组的数量"的线程数,将不再等待,释放当前的线程数。
一般超时时间要么是0,要么超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)
可以添加一个用表格察看结果查看请求的情况:这里我的线程组线程数是6,定时器的模拟用户组数量是2,超时时间设置为0,可以看到是每两个请求并发请求的。
3、吞吐量定时器
如常数吞吐量定时器Constant Throughput Timer:
- 一般性能测试中用到,原因:默认情况下,Jmeter线程在发送请求之间没有间歇,Jmeter可能会在短时间内产生大量访问请求,导致服务器被大量请求所淹没。所以在10秒的情况下究竟发送了多少请求,要看接口处理能力。有些接口可能TPS比较高,有些接口TPS会比较低。这种情况可以压测出一个接口实际TPS是多少,但是如果要测实际并发情况,需要设置其他定时器或引入变量暂停。
- Constant Throughput Timer常数吞吐量定时器可以让JMeter以指定数字的吞吐量(即指定TPS,只是这里要求指定每分钟的执行数,而不是每秒)执行。吞吐量计算的范围可以为指定为当前线程、当前线程组、所有线程组,并且计算吞吐量的依据可以是最近一次线程的执行时延。
如将接口tps控制在20左右:
五、控制器
jmeter逻辑控制器使用_jmeter逻辑控制器的作用-CSDN博客
思考:多个接口并发的时候,如果对接口请求顺序有要求(如必须接口1接口2/接口1接口2),jmeter不用控制器能够满足需求么?
路径:添加>逻辑控制器>
例:循环控制器
接口请求顺序如预期:
ps:其他控制器根据所需可了解使用。
六、简单并发测试
应用:幂等、并发锁、性能测试等验证
1、设置线程数并发
2、持续时间并发
查看聚合报告: