JMeter性能测试实例

  • 一、测试目标
  • 二、使用badboy工具录制登录脚本
  • 三、Jmeter导入Login.jmx脚本
  • 四、用户名的参数化
  • 五、关联
  • 六、添加监听器(Listener)
  • 七、运行脚本
  • 八、结果分析
  • 九、JMeter ServerAgent服务器资源监控插件

一、测试目标

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

Jmeter性能测试脚本搭建与测试步骤流程相关推荐

  1. MQTT服务器搭建和测试步骤及遇见的问题

    MQTT服务器搭建和测试步骤及遇见的问题 前言:MQTT服务器有好多种,查看:Servers/Brokers Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持ST ...

  2. Jmeter性能测试脚本实战

    charles抓包经验分享 1.设置过滤 2.对于抓包操作进行备注 3.去掉资源文件(js/css/imgs/wav等) 其他去除资源文件方法,在过滤中设置exclude中添加正则 Charles抓H ...

  3. 性能测试 性能测试实战(六)Jmeter + prometheus-plugin + Prometheus Jmeter性能测试环境搭建 普罗米修斯插件 性能监控 性能数据可视化平台 性能测试平台搭建

    文章目录 一.前言 二.Jmeter 性能测试持续可视化环境搭建 1.Jmeter

  4. Badboy录制jmeter性能测试脚本

    1.下载和安装Badboy 下载路径:Badboy: All versions - Software Informer ​ 点击相应版本,进入下载页面,点击[download]皆可完成安装包下载 . ...

  5. jmeter性能测试脚本录制不了的几种情况

    1.未设置代理服务器 jmeter录制的原理:用户的请求通过jmeter脚本录制器然后再发送到所请求的服务器,这样才jmeter脚本录制器就录制了一份请求. 如果没有设置代理服务器,自然就录制不了脚本 ...

  6. Jmeter性能测试环境搭建

    一.安装文件下载 1. jmeter安装包版本 5.4.3下载地址: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip ...

  7. JMeter性能测试,完整入门篇(自己做测试了)

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...

  8. (一)JMeter性能测试,完整入门篇:性能测试操作步骤

    原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测 ...

  9. jmeter性能测试步骤实战教程

    1. Jmeter是什么? 2. Jmeter安装 2.1 JDK安装 由于Jmeter是基于java开发,首先需要下载安装JDK (目前JMeter只支持到Java 8,尚不支持 Java 9) 1 ...

  10. jmeter性能测试入门简介

    Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工 ...

最新文章

  1. 地理坐标xy表示什么_建筑测量xy坐标的区别
  2. 加速SaaS规模化演进,餐道基于K8s的云上创新底座
  3. 笔记本怎么桌面显示计算机,笔记本电脑桌面不显示了如何解决
  4. [一道搜狗输入法的面试题]C++转换构造函数和类型转换函数
  5. Light-Head R-CNN相关资料
  6. 怎么求星期几的后几天C语言,计算任何一天是星期几的C语言源代码.
  7. android输入流,android – 获取图像输入流的大小
  8. pybamm库学习-tutorial
  9. CCF201512-5 矩阵【矩阵快速幂】(募集解题代码)
  10. 前加加 后加加 ++ 详解
  11. Digester简介和使用
  12. CSS运用中所体会到的方法
  13. GEE引擎架设好之后进游戏时白屏的解决方法——gee引擎白屏修复
  14. arcgis for Android 100.4 面积测量
  15. 在本地存储中存入和取出对象
  16. Tableau desktop(二)--数据连接及数据字段
  17. 虫师python appium自动化测试书_Selenium3自动化测试实战(基于Python语言)
  18. 聊一聊 InnoDB 引擎中的索引类型
  19. 初中人教版计算机具体课程,构建信息技术支持下的中学数学课程
  20. win10虚拟机hyper-v下安装群晖(NAS)

热门文章

  1. C++中fftw库二维傅里叶变换笔记
  2. Java工作流有哪些?如何快速掌握Java技术
  3. .NetCore对接各大财务软件凭证API——用友系列(1)
  4. R语言从github安装recharts包
  5. Ribbon界面制作
  6. robbin界面 java_使用JAVA和C#开发Ribbon界面
  7. JS之 解决fakepath问题,并实现base64图片上传(单图上传)
  8. Windows环境搭建Web自动化测试框架Watir(基于Ruby)
  9. python爬虫:获取12306网站火车站对应三字码
  10. 57、弱电网络管理入门与基础技术