jmeter集合点实战

  • jmeter集合点实战
  • 集合点简介
  • 创建集合点
  • 集合点使用

集合点简介

小时候早上到操场集合做早操

  • 我们怎么实现真正的并发?
  • 并发:指的是系统中正在操作业务的用户,在jmeter中,称为线程数。
  • jmeter中的各个线程(用户)在进行业务操作中的顺序存在一定的随机性。
  • 不能保证用户同一时间做同一操作,所以需要集合点
  • 集合点目的
  • 让各个线程(用户)步调一致,对系统进行加压
  • 达到模拟真实并发访问的效果
  • 比如抢购,公务员报名,抢票,只能在那个时间点可以操作

创建集合点

jmeter里面的使用的是同步定时器

setTheme在onResume中生效 setmetered_Group

注意:在jmeter中一定要注意,元件和作用域的概念
错误演示:同步定时器放在线程组中--全局范围

setTheme在onResume中生效 setmetered_线程组_02


原计划只并发课程操作,结果全部集合并发了,5个一起,5个5个一起了

setTheme在onResume中生效 setmetered_线程组_03

正确示范:

5个用户,一秒启动一个用户

setTheme在onResume中生效 setmetered_Group_04

调整位置,放到课程签到操作的请求中,同步定时器相当于前置

setTheme在onResume中生效 setmetered_Group_05


同一时间,集合完毕,点击课程签到按钮

集合点使用

  • 参数设置
  • Number of Simulated Users to Group by
  • a.每集合够多少个模拟用户(线程)后发起一次测试请求;
  • b.如果设置为0,等同于设置为线程组中的线程数
  • c.确保设置的值不大于它所在的线程组包含的用户数(线程数)
    一直集结线程而不发出测试请求,直到超时(如果设置了的话)
  • Time out in millisecs--所有用户的集合超时
  • a.超时时间,即多少毫秒后同时释放已集结的线程,发送测试请求
  • b.设置为0,Timer将等待线程数达到了“Number of Simulated Users to Group by”中设置的值才释放
  • c.大于0,那么如果超过Time out in millisecs中设置的最大等待时间后还没有达到“Number of Simulated Users to Group by”中设置的值,Timer将不再等待,释放已到达的线程
    场景1:
    线程组为5,集合用户数为6

    一直不发出签到请求,一直等待

场景2:

线程组为5,集合组用户数为2,落单一个,最后一个找不到伴,一直等

两个为一组并发,但是最后一组,找不到伴,一直等

setTheme在onResume中生效 setmetered_线程组_06

场景3:

线程组为5,集合用户数为6,超时时间为5秒

setTheme在onResume中生效 setmetered_Group_07


超时后直接并发场景4:

线程组为5,集合组用户数为2,超时时间为5秒

setTheme在onResume中生效 setmetered_线程组_08


最后一组(落单一个)等待超时5秒后释放请求

  • 参数--注意事项:
  • 如果设置Time out in millisecs为0,且线程数无法达到“Number of Simulated Users to Group by”中设置的值,那么Test将无限等待,除非手动终止
  • 这个无法达到的情况有如下几种:
  • a.设置的值大于线程数量,这样就永远无法达到了;
  • b.最后一批线程数不够集合点数目;