Jmeter经验总结
- Jmeter如何让线程组独立运行
在测试计划页面设置:勾选独立运行每个线程组(例如在一个组运行结束后启动下一个)
执行之后的效果如下截图
如果不勾选独立运行每个线程组,运行的结果如下图
- 如果想让请求2用请求的响应参数,即执行完请求1,接着执行请求2,需要把请求1和请求2放在同一个线程组下面(两个请求完成一次,算一个线程)
- 登录接口请求,参数化用户名和密码---可以用CSV数据文件设置
①先把用户名和密码放在csv文件里(本次的密码都一样)
②添加配置元件-CSV数据文件设置
③请求body里引用变量
④可以根据变量的参数数量,设置线程组的线程数,进行测试
⑤200个真实用户的话,设置线程数是200,循环1次和1个真实的用户,设置了200个线程的区别
A.参数化了200个用户,设置了200个线程,就是jmeter运行时,有200个线程使用200个用户名去访问-------一次并发200
B.参数化了200个用户,设置了1个线程(用户),那就是同时只有一个线程执行你的脚本,然后根据你参数化的方式,每次迭代用不同用户名,但是同时只有一个线程在执行请求。---一次并发1个
C.设置了200个线程,如果脚本里只有一个用户名,那就是同时有200个线程使用同一个用户名去访问。--一次并发200
- 下个线程的请求参数用上一个线程的响应结果
(如导航栏查询接口请求时,需要拿登录接口的响应的jwt-token)
引用变量的格式为:${变量名}
优先级:
线程组下的用户自定义变量 优先级高于 测试计划里的用户定义的变量
HTTP 请求下的用户自定义变量 优先级高于 线程组下的用户定义的变量
①对于登录接口使用token提取器
变量格式:$.result.jwt_token
- 集结点
可参考如下链接JMeter集合点_jmeter集合点设置-CSDN博客
①需要在http请求之前添加集合点,对集合点进行配置,进行并发同步
添加集合点位置在:“添加”-“定时器”-Synchronizing Timer(同步定时器)
②添加了集合点之后,需要对Synchronizing Timer(同步定时器)进行配置
模拟用户组的数量:当模拟用户组数到达设定的数量时开始发起请求
超时时间以毫秒为单位:从第一个并发用户到第二个并发用户到达之间的间隔时间,若超过这个时间,就不会继续等待。
注意:jmeter的间隔超时时间是按照毫秒为单位,LoadRunner的间隔超时时间是按照秒为单位,1秒=1000毫秒。
③执行发送请求
当并发用户到达30个用户时才能开始并发发送请求;
但当间隔时间超过1000毫秒(1秒)时,不需要等够30个用户就可以开始执行并发。
- 如何使用Jmeter,找到系统的最大并发量发
指导书链接:如何使用Jmeter,找到系统的最大并发量发。_jmeter逐步增加并发数-CSDN博客
在区间中逐步增加步长,出现以下任意现象时,即是最大并发用户数:
①出现连续报错
②平均响应时间超过1.5秒(1.5秒是行业标准)
③tps出现下降趋势
负载测试概念:简单来说:逐步增加并发用户数,找出被测系统的最大可接受的并发用户数,并考察系统性能的变化。
A.安装jmeter 管理插件:jdbc - Standard Set
下载地址:https://jmeter-plugins.org/install/Install/,将下载下来的jar包放到jmeter文件夹下的lib/ext路径下,然后重启jmeter。
在Available Plugins中找到Custom Thread Groups,jdbc - Standard Set安装
- 开始测试
(1)右键”测试计划“》添加》线程,选择”jp@gc - Stepping Thread Group“,插件。
- jp@gc - Stepping Thread Group填写数据,场景为在5秒内增加10个并发用户数,并运行30秒,再继续在5秒内增加10个并发用户数,重复循环,直至并发用户数达到50个后运行脚本60秒。然后在每1秒内减少5个并发用户数,直到减为0,结束脚本的运行
- 添加http请求,就不写了
- 添加监听器
E.测试分析结果
从两张图可以分析出,当线程36-48之间的时候出现错误事务,最大应该在36-48之间,然后通过调节线程组的最大线程数反复测试得到最终结果。
F.最终调试参数结果:
从四张图看出,当线程数30时,吞吐量最高,且整个过程无错误事务,响应时常正常,所以结果并发30最佳。