QPS | 每秒完成请求的个数 |
---|---|
time | 每一个请求响应完成平均须要时间 |
线程数 = QPS * time;QPS * time就是全部请求完成响应所须要的总时长,若是须要在1s完成全部请求的响应,因此线程数须要等于总时间值。并发
在Jmeter压测中,一般会认为1s内100的并发量(即:QPS为100)
此时没有添加额外的控制器;上述参数解释:oop
Number of Threads(users):启用的并发线程个数
Ramp-Up Period(in seconds):在多少秒内把上述线程启动起来
Loop Count:控制循环次数性能
说明:
一个常见的误解,认为Number of Threads(users)设置为100,Ramp-Up Reriod(in seconds)设置为1,就是每秒发起100个请求(错误);上述的设置表示在1s内启动100个线程,以后jmeter便以最大限度的100个并发进行压测,不能保证1s内只有100个请求。发现:
在1s内,发起的请求都是100+,而且波动仍是比较大的;测试
添加定时器Constant Throughput Timer(常数吞吐量定时器),该定时器能够方便的控制发送请求的吞吐量。
arget throughput(in samples per minute):设置的值为6000(因为单位是一分钟,若是要求QPS为100,则该值设置为60*100=6000)线程
以后咱们再看结果就会发现每秒的线程数已经稳定了, 至于固定请求发送100个请求的配置,>至于固定请求发送100个请求的配置, 若是有人知道, 还但愿告知, 这里不甚感谢。
blog
jmeter提供了不少元件,帮助咱们更好的完成各类场景的性能测试,其中,定时器(timer)是很重要的一个元件,jemter提供了9种定时器,这里我们只讲解Constant Throughput Timer(常数吞吐量定时器)作用域
右键Thread Group / Http Request add Timer Constant Throughput Timerget
Target throughput(in samples per minute):目标吞吐量。注意这里是每分钟发送的请求数,所以,对应测试需求中所要求的20 QPS ,这里的值应该是1200 即 20 * 60;
Calculate Throughput based on:有5个选项,分别是
This thread only:控制每一个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以矣线程的数量;
All active threads:设置的target Throughput 将分配在每一个活跃线程上,每一个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程
All active threads in current thread group:设置的target Throughput将分配在当前线程组的每个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果彻底相同
All active threads (shared ):与All active threads 的选项基本相同,惟一的区别是,每一个活跃线程都会在全部活跃线程上一次运行结束后等待合理的时间后再次运行
All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,惟一的区别是,每一个活跃线程都会在全部活跃线程的上一次运行结束后等待合理的时间后再次运行io