软件测试学习笔记丨性能测试体系
一、性能测试介绍
1、性能测试的价值
为研发、运维团队提供有效的容量规划能力
系统风险识别
系统瓶颈识别
性能调优指导
2、案例
2020 年 11 月 11 日,天猫双十一峰值处理订单 58.3 万笔/秒京东金融 618 战报,白条交易额 10 秒破亿若停摆 10 分钟~~~
3、性能测试场景
负载测试:关注系统满足性能前提下能够承受的最大压力
压力测试:测试在资源特别低的情况下的系统运行情况,同时找到系统在哪里失效以及如何失效
极限测试:在过量用户下的负载测试,避免攻击或爬虫
容量测试:确定系统可处理同时在线的最大用户量,关注点为 how much,不是 how fast
4、性能测试概念/指标
并发:虚拟并发用户数/同时在线用户数
TPS:每秒处理的事务数/交易数
QPS:每秒处理的请求数/接口查询次数
注意:
– 若某些业务有且仅有一个请求连接,则 TPS=QPS– 一般情况下,用 TPS 来衡量整个业务流程,用 QPS 来衡量接口查询/请求次数– 并发数=QPS*平均响应时间例如:一个接口耗时 100ms,QPS 为 1000(此处,1 个请求即 1 个接口,每秒能处理 1000 个接口请求),而每秒 1 个接口可以执行 10 次,所以并发数为 1w
RT(Response Time):响应时间
HPS(Hits Per Second):每秒点击数
PV(Page View):页面访问量
Throughput:吞吐量
指标分位
– Mean 平均– P90 表示 90%的用户/请求/事务对应的指标值– P95 表示 95%的用户/请求/事务对应的指标值– P99 表示 99%的用户/请求/事务对应的指标值
5、性能测试方法论(性能压力曲线图)
其中,第一个拐点为最优并发用户数(最佳并发),第二个拐点为系统能承载的最大并发
二、常用性能压测工具
1、Apache AB(Apache HTTP Server benchmarking tool)
小巧、便捷、灵活
只能做 HTTP 压测
不能跑复杂场景
-下载:搜索 Apache AB benchmarking–>在 Apache HTTP 官网下载
2、Apache JMeter
开源
纯 JAVA 客户端
支持所有协议
插件较多
3、nGrinder
jython 编写(基于 JVM 运行的 Python)
兼容 JAVA、Python
开源
下载:github 官网搜索 nGrinder
4、Locust
下载:github 官网搜索 Locust
三、常用性能监控工具
Prometheus
四、常用性能剖析工具
作用: 用于对所发现问题的排查、诊断和调试
Skywalking
五、性能测试流程与方法
1、性能测试流程
2、性能测试方法
并发模式:从客户端角度出发,模拟业务系统能同时承载的在线用户数
吞吐量模式:从服务端角度出发,更关注服务器端接受到的请求及系统的处理能力,直接设置每秒发出请求数,免去并发到 RPS 的繁琐转化
六、性能测试计划
1、需求分析与测试设计
一般情况下,根据业务、业务数据、行为日志或同类产品业务或 数据等来提取场景和指标
2、环境设计与搭建
3、测试数据准备
接口请求参数:自己构造、日志获取、上下关联
使用数据库中表的数据
若为多接口,需结合业务场景设计请求比例
4、性能指标预期设定
每秒请求数 QPS
请求响应时间(最大、最小、平均)(例如:0.2~1 秒)
错误率
机器性能,例如:CPU idle 45%、内存无剧烈抖动或飙升
压测过程中接口功能是否正常,例如:测高负载、稳定性时
5、压测工具配置及脚本编写
6、测试执行与跟踪
发压时间线
测试前环境检查
起压:根据被压情况,调节并发量到适合的情况
查看记录各项性能指标:
– ngix 日志查看每秒请求数– ngix 查看错误请求– 查看机器参数:CPU idle、memory– 查看 db、cache 等数据是否写入正常– 访问接口,查看功能是否正常
霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/9d95889c1c63a86a0e14d4630】。文章转载请联系作者。
评论