线程Threads:场景设置,模拟并发用户发送请求,设置并发策略。即以线程的方式来模拟多用户并发的。常用线程包括:线程组、 jp@gc-Stepping Thread Group、bzm-Arrivals Thread Group。

一、线程组

【线程数】:虚拟用户数,控制多少用户并发

【Ramp-Up时间】:启动所有线程需要的时间;

1. 若是线程数过多,则会>该值启动完所有线程。

2. 为0代表立即启动所有线程;一般不这么设置,因为在测试的开始就建立全部线程并立即发送访问请求,会引起不正常的初始访问峰值。

3. 设置为T,N个线程时,JMeter将每隔T/N秒建立一个线程。T过大会降低访问峰值的负载:后面的线程还没启动,前面启动的部分线程已经结束了。

4. 网上提到设置合理的启动时间的方法:让初始吞吐量接近平均吞吐量,避免启动时间过小,同时最后一个线程启动时,第一个线程还未结束,避免启动时间过大。

【循环】:每个线程的循环次数。用来延长单个线程的运行时间,从而保证当最后一个线程启动时,所有线程都在运行中,达到压测效果。

1.若不勾选永远,设置为固定值。为达到最后一个线程启动时第一个线程还未结束,循环次数的计算方法为:

(1)假设线程数:5,ramp-up:10s,rt:0.2s

(2)最后一个线程启动开始时间 S = 10 - 10/5 = 8s

(3)第一个线程运行时间应该 > 8s

(4)循环次数 a > 8/0.2 = 40,即循环次数最少为40次,此时整个测试理论运行时间 = 40*0.2 + 8 = 16s

【same user on each iteration】迭代使用相同的用户,即使循环时参数化提取不同用户名,请求时使用的是同样的session,不是真正的并发。

【延迟创建线程直到需要】:

  1. JMeter 所有的线程是一开始就创建完成的,只是递增的时候会按照上面的规则递增;
  2. 如果选择了这个选项,则不会在一开始创建所有线程,只有在需要时才会创建。这样CPU 消耗会更平均,但是这时会有另一个隐患:稍微影响正在跑的线程;
  3. 如果不选择,在启动场景时,JMeter 会用更多的 CPU 来创建线程,它会影响前面的一些请求的响应时间,因为压力机的 CPU 在做其他事情。

【调度器】:循环次数中勾选永远,持续时间是就是并发的时间。

举例:

  1. 设置 线程数:100,Ramp-Up:1s, 循环:2。

    表示1秒内启动100线程并循环2次。

  2. 设置 线程数:3,Ramp-Up:1s, 循环:永远,持续时间:5s。

    1s内启动3个线程,持续循环5s。

二、阶梯加压线程组 jp@gc-Stepping Thread Group

  1. 模拟用户并发逐渐增长的场景,可以测试在不断加压过程中观察不同梯度下的Error、Respose Time和TPS的数值变换情况
  2. 一般用来测试每秒最大并发数,平衡状态下,并发用户数n = rps*rt
  3. 一般结合监听器 Active Threads Over Time 使用
  4. 适用于单客户端进行阶梯式压测,但不适合分布式压测。因为当用于分布式压测时,管控机的控制台只能显示单个客户端的测试结果,而不是汇总起来。
  5. Stepping Thread Group插件相对来说比较旧,在plugins插件组中,还有一个类似的优化过的插件,叫做:Concurrency Thread Group

最新文章

  1. jquery validate minlength rule is not working
  2. LeetCode之404. Sum of Left Leaves
  3. 利用iframe实现无刷新上传处理
  4. kdbchk: the amount of space used is not equal to block size
  5. POJ1061 青蛙的约会 扩展欧几里得
  6. Jenkins corbertura问题
  7. 实现C++模板类头文件和实现文件分离的方法
  8. 【完全背包】HDU 4508 湫湫系列故事——减肥记I
  9. Java动态数组
  10. Jmeter正则提取list中相同key的value和出现的次数
  11. pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现
  12. spring4新特性-泛型依赖注入
  13. Emit方式调用方法
  14. python 函数指动态形参,作用域
  15. usb-cam (2)摄像机标定
  16. tomcat加载web项目报错:bad major version at offset=6
  17. [Web 前端] Jquery 复制元素,并修改属性, 追加到另一个元素后面
  18. html固定宽度下拉框内容显示不全问题解决方法
  19. python排序(插入排序) 从小到大顺序
  20. python之路之函数03

热门文章

  1. mac os 11 Big Sur 根目录无法写入解决办法
  2. python使用SAP GUI操作SAP的几个坑
  3. 2021年RT-Thread开发者大会
  4. 嵌入式Qt中实现串口读取的事件驱动方法
  5. Python接口测试request
  6. ASPNET Core ActionFilterAttribute中断后续请求
  7. zabbix(历史数据保留时长和趋势存储时间的区别)
  8. deployment.yml参考
  9. Docker--搭建 Gitlab 容器并上传本地项目代码
  10. java 是值传递还是引用传递