Jmeter性能测试脚本搭建与测试步骤流程


一、测试目标

1)测试目标网站是http://127.0.0.1:1080/WebTours/
2)测试目的是得到该网站在100和500个虚拟用户并发登录网站
“http://127.0.0.1:1080/WebTours/”的平均响应时间,错误率,吞吐量,程序所在机器的CPU运行效率,memory占用大小

二、使用badboy工具录制登录脚本

badboy下载链接地址
打开badboy工具,点击工具栏上的红色圆形按钮,在地址栏中输入被测试项目的地址“http://127.0.0.1:1080/WebTours/”,录制登录过程
在这里插入图片描述
点击“跳转”后

在这里插入图片描述
进入登录页面
在这里插入图片描述
登录成功后
在这里插入图片描述
此时录制完成,点击工具栏上的红色圆形按钮结束录制。
选择"文件"–Export to Jmeter…
得到Jmeter脚本Login.jmx
具体使用详情可参考此篇博客
可能遇到的问题解决方法可参考此篇博客

三、Jmeter导入Login.jmx脚本

Jmeter中打开Login.jmx脚本,得到如下目录树
在这里插入图片描述

四、用户名的参数化

参数化方式:添加–前置处理器–用户参数(勾选上每次迭代更新一次)
在这里插入图片描述
单击"http://127.0.0.1/WebTours/login.pl",将username的值改为${user}
在这里插入图片描述

五、关联

在“http://127.0.0.1/WebTours/nav.pl”请求下右击,选择添加–后置处理器–正则表达式提取器
在这里插入图片描述
正则表达式提取器的设置如下图显示:
在这里插入图片描述
单击"http://127.0.0.1/WebTours/login.pl",将userSession的值改为${session}
在这里插入图片描述

六、添加监听器(Listener)

脚本的主要部分设置完成后,需要通过某种方式获得性能测试中的测试结果,在本例中,我们关心的是请求的响应时间。

Jmeter 中使用监听器元件收集取样器记录的数据并以可视化的方式来呈现。Jmeter有各种不同的监听器类型,因为上HTTP请求,我们可在添加聚合报告,更为直观的查看测试结果。

添加聚合报告,右键点击Step1,在弹的菜单(添加—>监听器—>聚合报告)中选择聚合报告。

类似方式即可添加“察看结果树”和“jp@gc - PerfMon Metrics Collector”

七、运行脚本

添加完成聚合报告后,我们来运行脚本,稍后介绍聚合报告的参数。
  1)线程组:
  线程数:100
  准备时长:20
  循环次数:1
  100个虚拟用户下聚合报告的运行结果:
  在这里插入图片描述
  100个虚拟用户下察看结果树的运行结果:
  在这里插入图片描述
在这里插入图片描述
可以看到聚合报告中错误率是0.00%,察看结果树中返回的数据也是正确的,但是系统所在服务器CPU占有率过高,机器性能待提升
2)线程组:
  线程数:500
  准备时长:20
  循环次数:1
  500个虚拟用户运行了一段时间后程序直接报错
  在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
500个虚拟用户并发登录下,出现了很高的错误率,CPU消耗率几乎达到100%,鼠标都移动缓慢。
500个虚拟用户在并发时,察看结果树中,在高并发中间时间段,错误率几乎达到100%。

在这里插入图片描述

八、结果分析

500个虚拟用户并发登录时错误率较高,该网站需要在1000人同时登录成功。软件的性能明显不满足要求,需要提高。

聚合报告各字段说明:

Samples 样本 发送到服务器的样本数目
Average 平均值 总运行时间除以发送到服务器的请求数
Median 中值,一组数值中居于中间的数值 代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值
90%Line 一组数由小到大进行排列,找到他第90%个数(假如是12),那么这组数据中有90%的数将小于12
95%Line 一组数由小到大进行排列,找到他第95%个数(假如是12),那么这组数据中有95%的数将小于12
99%Line 一组数由小到大进行排列,找到他第99%个数(假如是12),那么这组数据中有99%的数将小于12
Min 最小值 服务器响应的最短时间
Max 最大值 服务器响应的最长时间
Error% 错误率 请求的错误百分比
Throughput 吞吐量(是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量))
服务器每单位时间处理的请求数,注意查看是秒或是分钟。 请求数/时间
Received KB/sec 接受的每秒字节数
Send KB/sec 发送的每秒字节数

九、JMeter ServerAgent服务器资源监控插件

本文介绍对Linux服务器的服务进行压测时,使用jmeter serverAgent插件监控服务器资源。

1.插件准备

所需插件:

JMeterPlugins-Extras.jar

JMeterPlugins-Standard.jar

ServerAgent-2.2.1

插件下载地址:https://jmeter-plugins.org/install/Install/

下载后分别解压

将JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar 放到jmeter安装路径 apache-jmeter-5.1.1\lib\ext目录下

将ServerAgent-2.2.1解压包放到linux服务器opt目录下

2.环境准备:

2.1Linux服务器启动监控服务
运行命令./startAgent.sh 或 sh startAgent.sh 即可启动ServerAgent服务

注:ServerAgent服务端口号默认为4444,如若遇到端口被占用,则需关闭占用该端口的进程,或者改变ServerAgent服务的默认端口:
在这里插入图片描述
A:关闭占用4444端口的进程

关闭占用4444端口的8260进程后,再次启动ServerAgent服务,成功。
在这里插入图片描述
B:使用命令改变ServerAgent服务的默认端口
进入ServerAgent的目录,此时可以看到ServerAgent.jar

输入以下命令:
java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 7777 --tcp-port 7777
同样的,7777端口也要设置防火墙规则以及使用telnet本地测试下是否可以访问
如若是阿里云服务器,需去官网特定开设一个端口号,否则会报错拦截
在这里插入图片描述
2.2本地测试是否能正常访问:
在cmd中运行 telnet ip 4444 也就等同于在浏览器中输入ip:4444
在这里插入图片描述
注:如若提示 “telnet不是内部或外部命令,也不是可运行的程序”
则需启动Telnet功能,参考:win10 解决telnet不是内部或外部命令的方案

3.资源监听
将jar包放到lib下后,jmeter的监听器就会多出一些监控插件,选择添加即可
在这里插入图片描述

添加监控项中的细项,如CPU、memory、磁盘I/O等信息在这里插入图片描述
举个例子:现在有个需求,平均每秒有30个用户登录,设置持续请求接口,需要监控服务器的资源使用情况

Number of Threads:30
Ramp-up Period : 1
Loop Count:Forever
在这里插入图片描述

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_43627169/article/details/121797849
Recommended