1. 性能测试最重要是搞清楚被测试的实体,也就是SUT (system under test),对应的性能指标和度量,以及期望的结果。在此基础上,规划测试。
性能指标主要有三个:服务响应时间,服务吞吐量和资源利用率。
这三个指标各有侧重,分别对应了终端客户,业务平台以及容量系统。
响应时间是用户关注的指标,吞吐量是业务关注的指标,资源利用率是系统关注的指标。
2.决定测试指标的度量
决定测试指标后,需要更加具体到统计上的度量。
比如,关注的是平均值,还是百分位数(P99)或者是某个置信区间。
3.决定性能测试的期望结果
比如,是为了确认SUT的性能满足一定的指标呢,还是只希望获取一些性能数据做参考。
假设SUT是一个互联网服务,测试指标是端到端的平均服务延迟。
我们活着已经知道可以接受的平均服务延迟的最大值,比如500ms,如果性能测试结果显示平均延迟为600ms,那么测试结果显然是负面的。如果只是想获取性能数据,那么这个600ms就是测试结果。
4. 压力测试
1)需尽量使用正式的环境和数据;
2)压测流量需要增加标记,这样可通过Mock第三方依赖服务和影子库方式来实现压测数据和正式数据的隔离。
3)压测时应实时对系统性能指标做监控和告警,及时扩容,避免对线上环境产生影响。