测试开发之性能篇-性能测试设计(草稿)
很多朋友接触性能测试是从工具开始的,比如流行的JMeter、Loadrunner等。熟悉一个测试工具,有助于对性能测试的运作机制、指标采集和统计分析等过程和机制,有个直观的理解。
我们知道,工具始终是为解决特定问题而服务的。无论是什么类型的测试,其目标不外乎两个,一是为了证明系统满足当初的设想(Requirement);二是尽可能早、尽可能多地发现潜在的问题(Defect)。为了更好地完成这两个目标,工具的使用是相对容易和可控的,而性能测试方案、过程的优劣和有效性则显得尤为重要。
通常,我们在做性能测试方案设计时,会从以下几个角度来思考问题。
编号 | 名称 | 描述 |
---|---|---|
1 | 性能指标 | 系统在常规的工作负荷下,各项性能指标是否满足当初设计要求。 |
2 | 数据容量 | 可预期的未来业务增长情况下,大数据量可能引发的性能瓶颈。 |
3 | 能力评估 | 单位资源、时间内,系统可处理的业务量。可用于仿真环境到生产环境的软硬件资源估算。 |
4 | 压力测试 | 验证系统在超出正常负载情况下的性能表现。可据此评估生存环境中,不同类型软件硬件资源的配比。 |
5 | 疲劳测试 | 长时间施加一定量的负载,验证系统是否会出现诸如内存泄漏、网络拥堵等方面的问题。 |
6 | 强度测试 | 验证系统在高强度、资源匮乏的情况下,依然可以正常工作,未发生系统崩溃、重启,处理能力急剧下降,以及数据不一致等问题。 |
讲到性能测试场景的设计,就离不开业务上的分析,一般可以考虑:
- 系统的用户规模有多大?
- 在可预期的未来某个时间点,数据量会到达多少?
- 各个子系统、功能模块,分别需承受多大访问量?
- 在特定的日期或时间,是否存在某个业务的峰值?
- 按照现有的架构设计和资源配比,可能的瓶颈在哪?
- 确定测试系统中的注册用户和同时在线用户数;
- 选择测试的接口,确定所需要支持的每秒访问量;
- 设计综合业务场景,包括其中各个接口请求量的占比;
- 针对资源消耗大的,如AI训练、文件读写、网络传输,重点进行测试;
- 评估容易出问题的地方,单独设计测试场景;
- 确定各场景下的测试参数,如思考时间、运行时长、加压策略;
- 确定服务环境,如硬件资源、网络带宽、(微)服务配比、负载均衡;
- 确定测试工具和环境,如加压节点数量、测试工具配置等。
- 吞吐量(Throughput)
- 每秒查询率(QPS)
- 响应时间(RT),包括平均、最大、最小、正态分布
- 请求失败或业务错误率
- 系统指标,如CPU、内存、网络的方面
推荐阅读
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 流转