谢谢打开这篇文章的每个你
关注我们 点击右上角 ··· 设为星标
最近承接了项目中一些性能测试的任务,因此决定记录一下,将测试的过程和一些心得收录下来。
说起来性能测试算是软件测试行业内,有些特殊的部分。这部分的测试活动,与传统的测试任务差别是比较大的,也比较依赖工具,一定程度上性能测试被认为是测试中的“高阶”部分,跟自动化测试、安全测试等并称。
ServerAgent需要部署在服务器上,他会以service的形式将服务器资源使用信息进行收集和发送。
链接:http://985.so/nE3T
提取码:uto0
任 务 情 况
2.1 任务总览
本次平台稳定性测试的目的在于:在服务器压力处于较饱和(达到80%系统最大TPS)压力之下,在较长时间(>8小时)之内观测服务器稳定性问题,以及资源使用情况和异常。2.2 接口情况
本次测试不调用上下游接口,只压测创建订单接口。订单表存量数据19万,接口请求方式为PUT。2.3 服务器配置
- 网关服务器 16核CPU、内存16G
- 应用服务器 16核CPU、内存16G
测 试 过 程
3.1 测试机及工具选择
由于在前序的测试过程中,可以确定本机jmeter运行可以驱动200线程数,达到接近系统极限吞吐量的情况。 因此本次稳定性测试决定延续使用本地PC使用jmeter仍以200线程进行测试,测试重点在于较长时间段内的稳定情况。 涉及到服务器资源的监控,将决定使用Jmeter插件perfmon配合serverAgent进行采集,以nmon作为实时监控工具。 具体工具选择如下:3.2 工具安装配置
由于在前序的测试过程中,可以确定本机jmeter运行可以驱动200线程数,达到接近系统极限吞吐量的情况。3.2.1 Jmeter
- 下载地址:http://985.so/mryV现在的最近版本为5.11,需要JDK 8+。建议使用3系列版本,原因后面说明。
- 安装配置:JDK以及环境配置等网上有大量教程,本文不再复述
3.2.2 ServerAgent
这个东西真是难找,从官网下载下来中断了很多次,好在最后还是下好了。ServerAgent需要部署在服务器上,他会以service的形式将服务器资源使用信息进行收集和发送。
- 下载地址: http://985.so/mr5B
- 安装配置:将工具包解压至服务器,赋予755权限,直接使用./startAgent.sh启动服务。
- 下载地址: http://985.so/nEzk
- 安装配置:需要下载Jmeter plugin manager:http://985.so/nEzu将jar包放至JMeter安装目录下的lib/ext子目录下,重启jmeter即可生效。同样将perfMon jar包放至相同路径即可启用perfmon插件。也可以通过GUI界面中的plugin manager 搜索安装,如下图所示:
3.2.5 Perfmon插件配置
在jmeter测试计划中添加perfmon监听器: 在配置界面中,添加所需要的监控项,如本例中监听了CPU/Memory/磁盘IO三项: 注意箭头标出的按钮,为监听具体度量的选择,本例中选择的分别是:- CPU:combined :综合CPU使用情况
- Memory:usedperc:内存使用比例
- DIsk IO:usedperc:磁盘IO占用比例
链接:http://985.so/nE3T
提取码:uto0
测 试 结 果
4.1 聚合报告
总体样本数达到68676639个,平均响应时间299,吞吐量667.5/s,错误率0,总体比较稳定。 4.2 TPS及资源对比 TPS: CPU: 内存: 可以看到: TPS稳定在700-800之间,偶有波动,与实验室网络环境有关。CPU在TPS峰值时处于高占用状态,基本维持在70%左右。内存占用稳定在20%。 4.3 结论 经过本轮初步测试,在系统TPS保持在700以上的条件下,系统表现稳定,事务成功率达100%。测试过程中,CPU保持高位占用,其它系统资源未见明显瓶颈。问 题
在测试的过程中发现了部分明显的问题,在此进行记录:Q:
压测过程中曾遇系统内存被大量缓存并无法自动释放的情况?
A:
建立定时任务,定时清理内存缓存。
Q:
压测过程中曾遇系统磁盘被占100%情况,导致TPS降至200左右,经查是由于应用日志写入导致。
A:
建立定时任务,定时清理应用日志。
Q:
测试中曾遇jmeter报错address already in use,经查是由于jmeter5本机环境过度占用系统端口导致,尝试增加开放端口数但是并未解决。改用jmeter3.3以后解决!
A:
(这块作者仍不确定问题所在,有知道的朋友可以留言交流!)
转载自:https://w.url.cn/s/A6bqPYZ 如有侵权,可联系删。 Bye~ -------------- Testfan精选 -------------- 挑战年薪50万,你只需... 接口测试--官方requests库 Jmeter接口测试数据库断言的实现与设计我就知道你“在看”