用jmeter测试高并发,老大要求是在0秒内1000个用户同时登录
想到了2种方法
1.在线程组里直接设置
2.设置集合点
简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,每到输入用户名和密码登录时,所有的虚拟用户都相互之间等一等,然后,一起访问。
注意:
1.JMeter里面的集合点通过添加定时器来完成。
2.Synchronizing timer仅作用于同一个JVM中的线程。
集合点的用法:
Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数)
注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。
Timeout in milliseconds:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)
注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。
线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将无限等待,除非手动终止。
如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入,如下图
关于集合点的概念大神写过(https://blog.csdn.net/zjq001x/article/details/53107159)
关于这两点的区别以及好坏,研究了一下午总结了以下几点
并发:其实是一个理想状态下的概念而已,一般是指在一段时间内到达的访问量
集合点:是将到达集合点函数的线程Hold住,等到符合集合点数量时再释放,但是,你的CPU是有限的,所以不可能真正做到同时释放,另外线程间切换也需要时间
总的来说:使用集合点,能大致达到真实并发情况,使用线程组也可以将等待时间设置0,只不过对测试机器性能消耗较大。(个人理解,仅供参考)
注意:线程等待时间为0的条件下,随机性更大一些,不像设置集合点那样规律明显
每天进步一点点,一点点