真的理解Jmeter线程数、Ramp-Up、循环次数吗?

并非原创,摘抄自:这里

Jmeter平时做API接口的吞吐量测试,几个配置项很好上手没有去深入思考。

有几个疑问:

1 Ramp-Up配置时间实际作用?

2 循环是在哪个时间点开始执行的?与线程组的关系是怎样的?

3 配置10/s个并发如何实现?

有疑问就实践,读别人博客难免找不到自己想要的内容。

实践疑问1:

Ramp-UP time的实际作用,图一为例解释:有5个线程需要5秒发送完成,也就是1个/s请求。(如果线程数是10,ramp-up time是5,又是什么意思?)

注:线程数抽象实例化后就是用户数,Ramp-up time是规定所有用户在时间段内把请求发送完(前提条件循环次数是1),而且请求的时间间隔是固定的=Ramp-Up time/线程数。

看执行结果统计:从结果中可以看出,总计时耗时5s,请求数是5个,时间间隔是固定的1秒(这个总时耗和时间间隔就是Ramp-Up time实际作用)。

疑问二: 循环是在哪个时间点开始执行的?与线程组的关系是怎样的?

解答:循环开始时间几乎与启动时间并行,

如下图解释:a循环数为1的解释是1个/s请求发5次请求。

b循环数为2时解释是(1个/s请求发5次)执行2遍(循环数),循环开始执行时间几乎与第一遍执行时间并行。(仔细观察Thread Name的时间点)

疑问三:配置10/s个并发如何实现?是否可以通过(线程数,Ramp-Up time、循环数)配合来实现?

方法一: 通过(线程数,Ramp-Up time、循环数)配合来实现

组合有很多种,我列了几个

方法二:用Jmeter自带Constant Throughput Timer插件实现,实际测试这样配置要达到10/s的效果不可行。(原因:评估这个配置限制TPS值的最小单位是minute,所有对数量小的请求统计测试不准是可以理解的。)具体是什么原因该以后工作留个疑问,多阅读多思考。

对上minute级别的大并发测试这个配置项应该是准的。

划重点:

总请求数 = 线程数 * 循环次数 每秒请求数 = 总请求数 / ramp-up

加一些自己的理解:

其实循环次数并不是说,执行完第一轮之后再执行第二轮。拿循环次数为10来说,不是1到10一遍一遍的执行(执行完1遍再执行第2遍、第3遍...第10遍),理解成1到10同时进行就可以了。在啰嗦点,就是开启了10个线程来执行

你可能感兴趣的:(真的理解Jmeter线程数、Ramp-Up、循环次数吗?)