定义
性能测试:使用自动化测试工具对产品按一定的性能指标进行测试,解决性能瓶颈,给用户最好的体验
性能测试基本流程
性能测试有关指标
响应时间(Response time)
响应时间就是用户感受软件系统未其服务器所耗费的时间,对于网站系统来讲,响应时间就是从点击了一个页面计时开始,到这个页面完全在浏览器里展现计时结束的这段时间间隔。2-5-8原则
- 当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以
- 当用户在5-8秒以内道道响应时,会感觉系统的响应速度很慢,但是还可以接受;
- 而当用户在超高8秒仍然无法得到响应时,会感觉网站很慢。
吞吐量(Throughput)
在单位时间内客户端和服务器成功传送数据的数量(越大越快)
资源使用率(Resource utillization)
常见的资源有:CPU占用率、内存使用率、硬盘I/O、网络I/O
每秒点击数(Hits per second)
指客户端每秒向服务器端提交的请求数量,如果客户端发出的请求数量越多,与之相对的平均吞吐量也应该越来越大
并发用户数
客户端的一批用户同时执行一个操作的数量。并发数反应了软件系统的并发处理能力。两种错误理解:
- 使用系统的全部用户数
- 用户在线数量
QPS每秒查询率(Query Per Second)
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 (看来是类似于TPS,只是应用于特定场景的吞吐量)
相关指标计算
QPS = req/sec = 请求数/秒
【QPS计算PV和机器的方式】
QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数
单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8
服务器计算
服务器数量 = ceil( 每天总PV / 单台服务器每天总PV )
【峰值QPS和机器计算公式】
原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间
公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
问:每天300w PV 的在单台机器上,这台机器需要多少QPS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139 / 58 = 3
什么是并发连接数、请求数、并发用户数?
性能测试场景:
性能测试分两种场景:
单个脚本运行
交叉会话运行
思路:
初创项目
1、分析性能需求
2、了解服务器情况
2.1 获取服务器IP地址
2.2 服务器系统配置:windows、llinux, 根据系统配置确定监控工具
2.3 服务器数量:根据需求确定是否需要对单个服务器进行压力测试,还是整体效果测试。
2.4 服务器硬件配置(CPU,内存等)
3、编写测试用例
见测试用例设计https://blog.csdn.net/Mwyldnje2003/article/details/104365788
4、录制性能测试脚本
4.1 录制脚本
4.2 增强脚本:设置检查点、设置关联、设置集合点、事务、参数化
4.3 开始设计场景
4.4 执行场景、监控指标
4.5 分析指标、找出问题点
4.6 出性能测试报告
编写性能测试用例实践:
指标实例:
- 访问数量:5000人访问 每个接口可以达到500人并发
- 响应时间不能超过7s钟(3,5,7原则,3s响应优秀,5s以内良好,7s以内合格,7s以上不合格)
- CPU占用率70% 内
- 存占用率不能大于75%
- 最大并发数量:100
编写测试用例
以访问数量为例:
1、用例名称
验证服务器是否满足500人同时访问
2、基本业务流程
脚本1
进入首页面
跳转到供应大厅页面
随机选择一个商品
进入商品的详情页面
脚本2
进入首页面
登录进入会员中心,查看购买商品的页面
脚本3
进入首页面
登录会员中心,进入优惠券页面
查看优惠券使用情况。
指标(预期结果)
负载500人的情况下,不能有人报错
CPU占用率不能大于70%
服务器内存占用率,不能大于75%
吞吐量随着用户的增加,不能出现明显下降趋势
场景设计
设置500人虚拟用户,
设计每隔2s进入5个用户
设置用户在场景中执行15分钟
每隔2s退出10个用户