写点什么

软件测试学习笔记丨性能测试体系

作者:测试人
  • 2024-01-25
    北京
  • 本文字数:1446 字

    阅读完需:约 5 分钟

一、性能测试介绍

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 级别的测试管理大咖量身打造职业规划。


发布于: 刚刚阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试学习笔记丨性能测试体系_软件测试_测试人_InfoQ写作社区