基于jmeter+perfmon的稳定性测试记录!

1113 篇文章 1 订阅
1088 篇文章 3 订阅

最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来。

说起来性能测试算是软件测试行业内,有些特殊的部分。这部分的测试活动,与传统的测试任务差别是比较大的,也比较依赖工具,一定程度上性能测试被认为是测试中的“高阶”部分,跟自动化测试、安全测试等并称。

01、任务情况

1、任务总览

本次平台稳定性测试的目的在于:在服务器压力处于较饱和(达到80%系统最大TPS)压力之下,在较长时间(>8小时)之内观测服务器稳定性问题,以及资源使用情况和异常。

2、接口情况

本次测试不调用上下游接口,只压测创建订单接口。订单表存量数据19万,接口请求方式为PUT

3、服务器配置

网关服务器 16核CPU、内存16G

应用服务器 16核CPU、内存16G

02、测试过程

1、测试机及工具选择

由于在前序的测试过程中,可以确定本机jmeter运行可以驱动200线程数,达到接近系统极限吞吐量的情况。因此本次稳定性测试决定延续使用本地PC使用jmeter仍以200线程进行测试,测试重点在于较长时间段内的稳定情况。

涉及到服务器资源的监控,将决定使用Jmeter插件perfmon配合serverAgent进行采集,以nmon作为实时监控工具。

具体工具选择如下:

图片

2、工具安装配置

由于在前序的测试过程中,可以确定本机jmeter运行可以驱动200线程数,达到接近系统极限吞吐量的情况。

  • Jmeter

下载地址:建议使用3系列版本,原因后面说明

安装配置:JDK以及环境配置等网上有大量教程,本文不再复述

  • ServerAgent

ServerAgent需要部署在服务器上,他会以service的形式将服务器资源使用信息进行收集和发送。

安装配置:将工具包解压至服务器,赋予755权限,直接使用./startAgent.sh启动服务。

启动成功后应该看到如下信息:

图片

默认绑定端口为4444

  • Perfmon

Perfmon是Jmeter插件,配合ServerAgent进行服务器资源监听。

安装配置:需要下载Jmeter plugin manager:

将jar包放至JMeter安装目录下的lib/ext子目录下,重启jmeter即可生效。

同样将perfMon jar包放至相同路径即可启用perfmon插件。

也可以通过GUI界面中的plugin manager 搜索安装,如下图所示:

图片

  • nmon

下载地址:找支持服务器系统的版本下载,或者通过wget下载

安装配置:将压缩包解压至自选目录,赋予755权限,直接运行相应系统的.sh文件运行。(如果下载的文件不是.sh格式,可以直接更改后缀名)

本例中运行的就是如下脚本文件:

图片

运行成功后可以看到如下界面:

图片

可以通过键入c/m/d/n等调出相关资源监控,如下图,分别列出了CPU,Memory及磁盘IO:

图片

Perfmon插件配置

在jmeter测试计划中添加perfmon监听器:

图片

在配置界面中,添加所需要的监控项,如本例中监听了CPU/Memory/磁盘IO三项:

图片

注意箭头标出的按钮,为监听具体度量的选择,本例中选择的分别是:

  • CPU:combined :综合CPU使用情况

  • Memory:usedperc:内存使用比例

  • DIsk IO:usedperc:磁盘IO占用比例

保持ServerAgent开启,那么在线程组运行开始,perfmon插件就将按照配置开始采集服务器资源数据。

03、测试结果

1、聚合报告

图片

总体样本数达到68676639个,平均响应时间299,吞吐量667.5/s,错误率0,总体比较稳定。

2、TPS及资源对比

TPS:

图片

CPU:

图片

内存:

图片

可以看到:

TPS稳定在700-800之间,偶有波动,与实验室网络环境有关。CPU在TPS峰值时处于高占用状态,基本维持在70%左右。内存占用稳定在20%。

3、结论

经过本轮初步测试,在系统TPS保持在700以上的条件下,系统表现稳定,事务成功率达100%。测试过程中,CPU保持高位占用,其它系统资源未见明显瓶颈。

04、问题

在测试的过程中发现了部分明显的问题,在此进行记录

Q:压测过程中曾遇系统内存被大量缓存并无法自动释放的情况?

A:建立定时任务,定时清理内存缓存。

Q:压测过程中曾遇系统磁盘被占100%情况,导致TPS降至200左右,经查是由于应用日志写入导致。

A:建立定时任务,定时清理应用日志。

Q:测试中曾遇jmeter报错address already in use,经查是由于jmeter5本机环境过度占用系统端口导致,尝试增加开放端口数但是并未解决。改用jmeter3.3以后解决!

A:(这块作者仍不确定问题所在,有知道的朋友可以留言交流!)

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是(jmeter+Prometheus+Grafana+Mysql)性能测试环境部署步骤: 1. 安装JMeter 首先,需要安装JMeter,可以从JMeter官网下载安装包,下载完毕后,解压缩到指定目录即可。 2. 安装Prometheus Prometheus是一款开源的监控系统,需要从官网下载对应的安装包,安装完成后,需要进行相关配置,如指定数据存储路径、配置Prometheus的抓取目标等。 3. 安装Grafana Grafana是一款开源的数据可视化工具,需要从官网下载对应的安装包,安装完成后,需要进行相关配置,如指定数据存储路径、配置Grafana的数据源等。 4. 安装Mysql Mysql是一款开源的关系型数据库,需要从官网下载对应的安装包,安装完成后,需要进行相关配置,如指定数据存储路径、创建测试数据表等。 5. 配置JMeterJMeter中,需要对测试计划进行配置,如添加线程组、添加HTTP请求等。同时,需要配置JMeter将测试结果输出到JTL文件中。 6. 配置Prometheus 在Prometheus中,需要配置Prometheus的抓取目标,如指定JMeter测试结果的JTL文件路径,以及定义Prometheus的查询语句。 7. 配置Grafana 在Grafana中,需要配置数据源,将Prometheus作为数据源,并创建对应的仪表盘,展示测试结果。 8. 运行测试 在完成上述环境配置后,可以运行JMeter进行性能测试,并查看测试结果是否正确输出到Prometheus中,同时,可以通过Grafana进行数据可视化,方便进行性能分析。 以上就是(jmeter+Prometheus+Grafana+Mysql)性能测试环境部署步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值