说明:
1、以下为基于某业务单登陆场景并发测试实战过程,仅供参考;
2、本文为本站首发,转载及他用请注明出处,谢谢。
通过对某业务用户登录接口进行并发测试,模拟用户真实场景,发现服务器存在的服务瓶颈,辅助提升产品稳定性。
根据产品要求,系统必须支持150用户同时在线(具体参考名词解释内容)。本次测试只测试单登录场景,不任何带业务。
工具 | 版本 | 说明 |
---|---|---|
LoadRunner | V11 | 服务端压测工具 |
Nmon | X86_64_centos7 | 服务器指标监控工具 |
Python | V3.7.0 | 脚本设计语言 |
Pycharm | V2021.2 | 脚本编写工具 |
Postman | V7.34.0 | http接口调试工具 |
Fiddler | V5.0 | http接口抓包工具 |
Proxifier | V3.42 | 代理工具辅助抓取接口数据 |
Xshell | V6.0 | ssh客户端连,接服务器工具 |
Xftp | V6.0 | 服务器文件传输工具 |
Navicat Premium具 | V11.1.8(64bit) | 数据库脚本导入工 |
测试环境 | 配置项 | 说明 |
---|---|---|
客户端 | 数量 | 1台 |
CPU | 6核心3GHz | |
内存 | 16G | |
操作系统 | Windows10专业版 64位 | |
安装所有测试工具 | 版本见测试工具说明表 | |
服务端 | 内存 | 8G |
CPU | 2核心2.1Ghz | |
操作系统 | CentOS Linux release7.8.2003 | |
安装监控工具 | 版本见测试工具说明表 | |
测试软件 | xx测试软件(测试对象) | 客户端在windows上,服务端在linux上 |
登录接口并发150,不带任何业务,使用LoadRunner进行虚拟用户并发压测,使用Nmon监控服务端性能指标,分析测试结果,给出优化建议。
http://192.168.1.5:8001/user/login
web_add_header("Accept","*/*;");
web_add_header("signature","abcdefg");
web_add_header("trace","abcdefg");
web_add_header("Content-Type","application/json");
{\"name\":\"{name}\",\"password\":\"c4ca4238a0b923820dcc509a6f75849b\"}"
其中用户名已被参数化,其中{name}是取得已经提前创建好的用户名,通过dat进行参数化
Action()
{
lr_start_transaction("login");
web_add_header("Accept", "*/*");
web_add_header("signature", "abcdefg");
web_add_header("trace", "abcdefg");
web_add_header("Content-Type", "application/json");
//web_add_header("EnablingCompression", "0");
//web_add_header("Expect", "100-continue");
web_custom_request(
"URL = http://192.168.1.5:8001/user/login",
"Method" = POST,
"TargetFrame = "
"Resource = 0",
"RecContentType = text/html",
"Referer = ",
"Snapshot = t3.inf",
"Mode = HTML",
"Body = {\"name\":\"{name}\",\"password\":\"c4ca4238a0b923820dcc509a6f75849b\"}",
LAST);
lr_think_time(1);
lr_end_transaction("login", LR_AUTO);
return 0;
}
性能指标 | 预期值 | 实际值 | 结论 |
---|---|---|---|
虚拟用户并发情况 | 150 | 150 | PASS |
事物响应时间 | 1s | 1s | PASS |
每秒点击次数 | 150 | 144 | PASS |
平均每秒点击次数 | 150 | 143 | PASS |
事物平均响应时间 | <1s | 0.032s | PASS |
磁盘IO | <80% | 81% | FAILED |
CPU使用率 | <80% | 40% | PASS |
内存使用率 | <80% | 68% | PASS |
通过前边的图标数据,我们整理出以上的测试数据,通过分析,除了磁盘IO有瓶颈外,其他指标全部OK。
登录接口+业务并发测试,满足客户真实的使用场景。