panxue 发表于 2023-11-15 17:36:52

优测云测试平台总结-压力测试核心性能指标及行业标准

在做压力测试时,新手测试人员常常在看报告时倍感压力:这么多性能测试指标分别是什么意思,应该达到什么标准?本文将结合实际压测报告,帮助您快速理解压测时的主要性能指标,了解如何解读该指标以及通常情况下应该达到的标准。
https://testerhome.com/uploads/photo/2023/ec7bf641-0a10-43c6-8ac0-9ac44f38db35.png!large

指标 1:响应时间

https://testerhome.com/uploads/photo/2023/ebb16f84-4855-4783-9b02-603c5d796961.png!large

性能测试过程是模拟用户真实视角的请求过程。一个请求的 “响应时间” 指的是从开始跟被测服务建立连接、发送请求内容、再等待服务响应、最后完整接收回包的整个时间长度。

https://testerhome.com/uploads/photo/2023/5f28177c-0749-4d4e-ab87-56049c9d87e9.png!large

这里需要注意的是,通常研发人员考量的接口响应时间,是从服务接收到请求后到发出请求的时间长度,这其实是性能测试报告内 “响应时间” 的 “子集”。
平均响应时间作为报告的重要的指标之一,计算方法是计算整个压测过程中全部请求的响应时间平均值。

https://testerhome.com/uploads/photo/2023/1fd268a1-84a7-429b-aa35-4d0784e12898.png!large

除了平均响应时间,压测人员通常还会关注最小、最大、90%、95%、99% 响应时间。计算方式是将所有请求的响应时间按从小到大排序,其中最小、90%、95%、99% 和最大分位的数据,即上述指标的值。例如,95% 响应时间,意味着整个压测过程中 95% 的请求的响应时间都小于该值。

https://testerhome.com/uploads/photo/2023/f701b6ee-468d-4703-8384-00efa2ddc8a6.png!large

响应时间应该如何分析,在实际业务中应该达到什么样的标准呢?

https://testerhome.com/uploads/photo/2023/c119e8d9-ec81-4296-bcfb-ec8ae2d13190.png!large

图片为腾讯某真实线上运营活动接口的压测报告截图,在模拟 5000 用户并发压测 5 分钟期间,平均响应时间为 48 毫秒,失败率低于 1%(该项指标符合该业务预期)。
压测人员需要就趋势图中偶发超长响应时间进行分析,联动开发人员根据 traceID 跟踪分析具体原因即可。响应时间与客户体验息息相关,有说法称,当页面的加载速度大于 1 秒时,搜索引擎 SEO 会对网站进行降权处理。虽然响应时间并没有严格的通用标准,但这里我们给一些行业通用的标准给大家做一个参考。
[*]对于大部分互联网行业业务来说,接口的平均响应时间普遍优于其他行业,核心接口响应时间通常小于 200 毫秒,普通接口小于 500 毫秒,部分特殊接口也以小于 1 秒为佳。当超出相应标准时,需研发人员对服务进行扩容或性能优化。
[*]** 对于非互联网行业来说,响应时间标准要放宽一些,但通常建议核心接口响应时间小于 500 毫秒,普通接口小于 1 秒,特殊接口也不要超过 3 秒为佳,否则将较大程度影响用户使用体验。

指标 2:吞吐量(TPS)
https://testerhome.com/uploads/photo/2023/50cc232f-ac9d-41d6-b53b-77f3660f8acf.png!large

吞吐量度量了单位时间内被测服务可以处理多少请求,所以是服务性能的重要指标。压测过程中吞吐量通常使用 TPS 进行度量.
什么是 TPS 呢?TPS 的全称是 Transaction Per Second,也就是被测服务每秒处理的事务数 TPS 的计算方式,是用压测时间段内的总事务数除以压测总时长秒数,即可得到每秒处理事务数。
在压测过程中,优测压测平台会每秒计算一次当前这一秒的 TPS,压测过程结束后,其中最小和最大的即最小和最大 TPS,求均值即可得出平均 TPS。这里需要注意的是,TPS 的指标必须结合压测时配置的并发线程数,即模拟用户数一起分析。在被测服务未达瓶颈的时候,线程数越大,TPS 越大。举一个例子,平均响应时间是 200 毫秒的某业务,假如仅模拟 1 用户数发压,那么 TPS 等于 5,显然并不代表服务的极限吞吐量水平。通常情况下,我们会通过不断增加线程数,在错误率符合预期的前提下,探索 TPS 的上限,作为当前部署配置下的服务吞吐量指标。那么报告内的 TPS 趋势图该如何分析?该达到什么样的标准呢?
https://testerhome.com/uploads/photo/2023/112ed466-8b27-4fc5-8629-b2566ca307c6.png!large

图片为某业务接口的压测报告截图,模式为梯度增压模式,也被称为 “摸高” 模式,即通过逐步增加并发量,探索被测服务吞吐量瓶颈。如图所示,在并发数第一次上升的过程中,TPS 吞吐量大幅提升,但在后续 “爬坡” 过程中,吞吐量基本保持平稳,这说明被测接口的吞吐量已达到瓶颈。
TPS 通常根据业务需求来进行设定,如分析该业务历史真实线上业务数据的峰值,乘以一定的 buffer 作为此次压测目标。或者对于暂未上线的活动或者功能,根据产品或运营人员预估的峰值请求数乘以一定的 buffer 作为此次压测目标。Buffer 值通常为 1.5-3 倍,视风险情况而定。这里我们也给出一些常见业务类型的 TPS 情况,仅供参考。电商或大规模的运营活动,如秒杀等场景,因为瞬间高峰值请求情况,TPS 通常能达到百万级别。普通的互联网业务,通常吞吐量根据业务重要程度不同,在 1 万至 10 万之间。对于非互联网行业产品或小规模系统,因为用户量不大,TPS 通常在 5 万以下。
指标 3:失败率
https://testerhome.com/uploads/photo/2023/c0351ae7-ec6e-48e4-8dad-30d260c4acd7.png!large

失败率是性能测试过程中最好理解也是最重要的指标。
失败率的计算方法,是用总失败请求数除以总请求数。通常标准为比较严格的要求 100% 成功,或者相对可接受的失败率低于 1%,也就是 100 次请求业务中,有一个用户会遭遇失败。需要注意的是,很多压测人员会简单的使用 http 响应码作为判断标准,200 即成功,其他即失败。在实际经验中,经常会出现响应码是 200,但响应结果不符合预期的情况。所以需要压测人员根据业务逻辑,配置详细错误断言和描述,精准评估失败率。
https://testerhome.com/uploads/photo/2023/a2113cc1-bf76-40ce-828b-0c9c7f19186a.png!large

总结:
不管是哪个指标,其实最重要的不是对指标本身是否达标的度量,而是通过指标评估被测系统是否达到预期,以及对具体问题的分析和定位。需尽可能通过查看日志、链路追踪等方法,定位问题根源并解决。
如下图实例,根据错误请求的具体请求和响应信息,分析具体原因。并通过链路追踪,精准定位问题。
https://testerhome.com/uploads/photo/2023/cee8a21a-355f-4b64-bfc9-61d14b8d4802.png!large


https://testerhome.com/uploads/photo/2023/20f157ec-ef03-4fad-b31f-4bb2fde3aa09.png!large

优测压力测试平台简介:优测压力测试是一款在线云原生全链路压测平台,百万级并发即召即用。兼容 JMeter 脚本,一键上传即可随时发压,免去压测工具搭建成本。除在线压测工具外,也支持私有化部署、定制化开发及专家压测服务。欢迎大家登录优测官网免费体验!
https://testerhome.com/uploads/photo/2023/37bfecef-7acf-4f4d-8a6c-3869abe7fff4.jpg!large


页: [1]
查看完整版本: 优测云测试平台总结-压力测试核心性能指标及行业标准