一、场景
测试场景:需要在一定时间内分几步不断增加压力,直至达到某个值,然后持续运行一段时间。
二、举例说明
比如,我们需要在30秒内分成5步,每一步启动600个线程,当达到3000个线程后,再持续运行150秒。
三、Jmeter实现
我们可以使用JMeter的插件Stepping Thread Group 来实现:

四、执行步骤
1、首先,安装插件,插件下载地址是:https://jmeter-plugins.org/downloads/old/

2、下载后ZIP包后进行解压,然后将 解压后的JMeterPlugins-Standard.jar 包放在Jmeter安装目录\lib\ext 路径下,重新启动Jmeter:

3、重启Jmeter后,打开Jmeter,在测试计划新增线程组,选择如下:

4、设置相关参数如下:

术语说明:
pv:是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次;tps:是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加;qps:是指每秒内查询次数,比如执行了select操作,相应的qps会增加。
QPS = req/sec = 请求数/秒
【QPS计算PV和机器的方式】
QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8
服务器计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )
【峰值QPS和机器计算公式】
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3
不同的应用系统tps,qps是没有可对比性的。例如:应用A,每个select查询需要1ms, 一个connection的话,一直不停的执行,1S内 可执行1000次,也就是1000qps应用B,每个select查询需要100ms, 一个connection的话,一直不停的执行,1S内 可执行10次,也就是10qps上面不同系统的两个qps是无法对比的,不能说哪个好哪个坏。满足业务要求才是王道。

网友评论