由于临时接到一个性能测试任务,测试8个独立接口在实验室环境的TPS、响应时间以及服务器性能监控如CPU、内存、IO等,没有明确具体的响应时间与并发数,需求较模糊。
1.软件、硬件环境信息:JMeter5.1.1 、Ubuntu 16.04 LTS 260G+内存 2个CPU(24核 )、被测系统架构API+NGINX+FLASK+深度学习模型
2.性能需求:每个功能的TPS(笔/秒),响应时间(秒),不同并发数下服务器资源占用情况(IO,gpu,带宽等)
3.测试设计:XX线程数/秒 并发时间15分钟,记录系统的TPS 、90%响应时间、异常率, 并发十分钟后开始监测服务器性能指标数据
4.根据测试设计创建JMeter测试脚本(怎么添加线程组、断言、参数化请自行百度,本次仅涉及文件上传操作会有样例),运行十分钟后对服务器进行监测
(1)、创建测试计划与设置线程组
(2)、创建测试http请求并设置请求参数
(3)、对文件上传操作进行参数化,创建BeanShell预处理程序(主要用于随机上传图片)
(4)、设置文件上传请求参数,并添加响应断言与聚合报告,启动线程组(已经调试通过的接口测试)
(5)、聚合报告分析
样本:15分钟共发起多少个请求数
平均值到最大值:不同维度的请求响应时间,单位毫秒
异常%:异常数占样本数的百分比
吞吐量:每秒完成的请求数
接收 KB/sec:每秒从服务器端接收到的数据量,即:收到的千字节每秒的吞吐量测试
发送 KB/sec:每秒从客户端发送的请求的数量,即:发送的千字节每秒的吞吐量测试
(6)、常用服务器监测命令