记一次性能测试中,因为自己设置问题,导致测试结果偏差

前言

这个性能测试真的感觉做了好久,一直都没有一个好的结果。

为什么要记录,因为想让自己以后不再犯类似错误!

要知道的几个知识点

你看完,肯定会感谢我的,建议收藏!

关于系统支持并发数计算:

1、使用系统用户数量*(5%~20%):

比如用户数为200人,平均取最大用户数为80用户左右,参考维基百科,可以自行查找

2、按照经典公式计算:

平均每天大约200人使用系统8小时,从登录到退出平均时间为4小时,那么

平均并发用户数为:C = 2004/8 = 100 并发用户数峰值为:C' = 100 + 3根号100 =130

参考自网络,感兴趣自己去查即可。

关于测试策略调整:

  • 连接及相应超时设置为3分钟
  • submitsave取样器之间间隔30秒
  • 取消设置KeepAlive

测试过程

因为测试结果一直很不理想,导致整体进度很慢,多方尝试,现把尝试方案及测试过程记录如下,以便他人参考和自己学习记录,尝试方案如下:

1、客户端设置keep-alive,默认连接、响应超时,单服务

得出结论:

经常出现数据库死锁、service not started,页面无法登陆

2、客户端设置keep-alive,默认连接、响应超时设置3分钟,单服务

经常出现数据库死锁、service not started,页面无法登陆

3、客户端取消设置keep-alive,默认连接、响应超时设置3分钟,submit与save取样器间隔1分钟,3服务

0报错,吞吐量6.1/sec,成功率100%。

4、客户端取消设置keep-alive,默认连接、响应超时设置3分钟,submit与save取样器间隔1分钟,单服务

0报错,吞吐量5.5/sec,成功率100%。

整个过程很曲折,好在遇到比较有耐心和超强的技术解决问题,也让我在这次测试中学习很多。

总结:

关于Keep-Alive设置对结果影响:

  1. 设置Keep-Alive可以避免连接建立和释放的开销,但Tcp连接容易导致系统资源无效占用,浪费系统资源。
  2. 去掉 KeepAlive可以模拟多用户访问时每次请求是从不同源端新建请求连接,能更有效模拟真实测试压力,适用于真实用户直接访问的服务接口和页面压测。
  3. 在HTTP 1.1版本后,默认开启Keep-Alive模式,可以加入 Connection: close才关闭连接,当然也可以设置Keep-Alive模式的属性,例如 Keep-Alive: timeout=5, max=100,表示这个TCP通道可以保持5秒,max=100,表示这个长连接最多接收100次请求就断开。(来自网络参考)
相关推荐
0和1的舞者1 天前
接口自动化(四):logging 日志配置 + Allure 测试报告从安装到使用
测试开发·自动化·接口·接口自动化·测试·知识
0和1的舞者2 天前
接口自动化测试详解(二):requests 请求封装与 Pytest 框架全实战
开发语言·自动化测试·python·测试开发·接口·测试
大千AI助手4 天前
Web 接口性能测试最佳实践:从“压一压”到“压明白”
python·api·性能测试·测试·性能·压测·大千ai助手
weixin_413063215 天前
测试 focus stacking
opencv·测试·focus stacking
_OP_CHEN7 天前
【测试理论与实践】(四)测试用例篇(上):从概念到万能思路,解锁测试设计核心密码
运维·测试开发·测试用例·bug·压力测试·测试·网络测试
请为小H留灯8 天前
Windows 系统启用 Telnet 客户端:图文详细教程
网络·windows·测试·telnet
Apifox8 天前
Apifox 12 月更新| AI 生成用例同步生成测试数据、接口文档完整性检测、设计 SSE 流式接口、从 Git 仓库导入数据
前端·后端·测试
_OP_CHEN9 天前
【测试理论与实践】(三)测试BUG篇:从 BUG 本质到实战博弈,带你吃透软件测试的核心逻辑
运维·测试开发·产品运营·bug·压力测试·测试
以己之10 天前
初识测试(详细篇)
单元测试·压力测试·测试
零基础的修炼11 天前
[测开项目]问卷系统测试---测试用例
测试