一、前言
1、首先,JMeter提供了三个基本的线程组,分别为:
Thread Group
setUp Thread Group
tearDown Thread Group
2、其他线程组可以通过集成插件的方式使用,包括:
bzm - Arrivals Thread Group
bzm - Concurrency Thread Group
bzm - Free-Form Arrivals Thread Group
jp@gc - Stepping Thread Group
jp@gc - Ultimate Thread Group
以上,可以通过右键测试计划->添加->Threads(Users),选择对应的线程组进行添加
二、集成插件下载安装
1、下载地址:jmeter-plugins.org
2、安装:下载后文件为plugins-manager.jar格式,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。
3、启动jemter,点击选项,最下面的一栏,如下图所示:
打开后界面如下:
Installed Plugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来使用这些插件;
Available Plugins(可下载的插件):即该插件扩展的一些插件,可以通过选中勾选框,来下载你所需要的插件;
Upgrades(可更新的插件):即可以更新到最新版本的一些插件,一般显示为加粗斜体,可以通过点击截图右下角的Apply Changes and Restart Jmeter按钮来下载更新;
PS:一般不建议进行更新操作,因为最新的插件都有一些兼容问题,而且很可能导致jmeter无法使用(经常报加载类异常)!!!
建议使用jmeter最新的3.2版本来尝试更新这些插件。。。
二、Transactions per Second
即TPS:每秒事务数,性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现
————比如整体趋势、实时平均值走向、稳定性等。
三、Response Times Over Time
即TRT:事务响应时间,性能测试中,最重要的两个指标的另外一个。
该插件的主要作用是在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等。
四、Thread Group、setUp Thread Group和tearDown Thread Group
Thread Group是我们通常使用的线程,模拟用户数,每一个线程就相当于一个虚拟的用户;
setUp Thread Group是一个特殊的线程组,用于执行测试之前的初始化操作;
tearDown Thread Group是一个特殊的线程组,用于执行测试结束之后的回收工作;
五、阶梯加压线程组1
—bzm - Concurrency Thread Group,jp@gc - Stepping Thread Group,jp@gc - Ultimate Thread Group
1、主要功能:阶梯控制线程数并发
2、简述:上面3个都可用于阶梯式加压测试,但是由于Stepping Thread Group已经不再被官方推荐使用了,我们对Concurrency Thread Group进行简单介绍。
target concurrency:目标并发数
ramp up time(min):加速时间
ramp-up steps count:加速步骤计数
hold target rate time(min):保持目标费率时间
thread iterations limit:线程迭代次数限制
log threads status into file:将线程状态记录到文件
以上,以图形的方式展示了线程加压的过程,例如:
100个线程组,加速时间为5分钟,10个加速步骤,保持目标费率10分钟:
10个加速步骤,每步10个线程组;
5分钟/10步=0.5,每步0.5分钟;即每0.5分钟加载十个线程组,直到达到100个;
达到100个线程组之后,所有这些线程组将继续运行,加压十分钟。
3、监控:jp@gc - Active Threads Over Time
阶梯加压线程组需要和 Active Threads Over Time(不同时间活动数量展示)结合起来,这样能看到动态的阶梯加压效果
六、阶梯加压线程组2
—bzm - Arrivals Thread Group,bzm - Free-Form Arrivals Thread Group
1、主要功能:阶梯控制 每秒/每分钟 请求数
2、简述:Arrivals Thread Group适合负载测试,Free-Form Arrivals跟Arrivals Thread Group差不多
target rate:目标费率,每秒钟多少个请求数
ramp up time(sec):达到目标费率需要的时间
ramp-up steps count:达到目标费率需要多少步
hold target rate time(sec):保持目标费率时间
thread iterations limit:线程迭代次数限制
log threads status into file:将线程状态记录到文件
concurrency limit:最大并发数限制
例如:
目标费率为100,加速时间为10秒钟,5个加速步骤,保持目标费率10秒钟:
5个加速步骤,每步20增加个费率;
10s/5步=2,每步2秒钟;即每2秒钟加载20个费率,直到达到100;
达到100个费率之后,按照这个标准进行加压10秒钟;
以上,前十秒钟按照设置不断增加费率,请求数为(20+40+60+80+100)*2=600个;后十秒钟,按照每秒100个费率计算,请求数为100*10=1000个;共计1600个请求数。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。