请教大家一个 jmeter 的线程组设定问题: 最近在做压测的时候,遇到一点疑惑,设置了 20/s 的并发,持续打压 300s,具体的线程组配置如下图: 该线程组执行完成后,个人理解的应该最多产生了 20*300=6000 个线程,但是在聚合报告里,最终产生了 15072 个线程数量,结果如下图:
请问是我理解有误吗?
你理解错了; 这个 15072 是这 300 秒的请求总数;之所以产生两个 15072 是因为聚合报告会汇总请求总数, 所以一个 是分结果,一个是总结果; 如果想确定一共是不是产生了 20 个线程,就在 http 请求中加一个: ${__threadNum} (应该是这个参数,如果不是你再网上查查去)
举例:设置 1 个线程,永久循环跑 300s ,不代表你这个线程 1 秒就跑一次, 而是根据你服务器的能力,如果它 1 秒可以处理 10 个请求,那么总请求数就是 1*10*300 等于 3000
如果要控制样本量,需要设置吞吐量控制器
应该是你说的这样子 那这样下来 实际的压力岂不是跟设定的不一致吗?
不一致是肯定的啊,服务器是有处理时间的,不可能你发 100w 个请求,他就能返回 100w 个结果,超过一定程度,服务端很可能就不处理了或者进入排队队列了
可以一样,也可以不一样,如果想一样就用 3 楼说的加上吞吐量控制器,但实际需要什么样的并发,看你实际需求了,按照正常来说模拟实际情况,谁也不能保证一秒钟就有 100 个用户请求进来,可能有多可能有少。另外你需要的是压测结果来验证你们的服务器是否满足需求。不用太在这里纠结,会陷入误区。
好的 谢谢各位大佬解惑!
Ramp-up Period 表示的是启动所有线程组的时间,你的配置中只是表示 1 秒内启动你需要的 20 个线程组 线程组启动后怎么运行,在没有控制器影响的情况下,都是由接口响应速度决定的
就比如你招聘了 20 个搬砖的 ,并且要求他们全部在 1 秒内进入搬砖状态 但是每个人搬砖效率不一样,有的人 0.1 秒搬 1 块,有的 1 秒搬 1 块 15072 就是最终 300S 中所有人搬砖的数量
比喻很形象了 谢谢哈