文章目录
压力测试的定义与目标
压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。
压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。
常见的两种不容易在测试阶段发现的错误:
- 内存泄漏
- 并发与同步
压力测试的应用场景
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误,尤其是内存泄漏和并发与同步问题。
有效的压力测试系统将应用以下关键条件:
- 重复性
- 并发性
- 量级
- 随机变化性
关键性能指标
在进行压力测试时,以下性能指标是关注的重点:
1. 响应时间(Response Time, RT)
响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。
2. HPS(Hits Per Second)
每秒点击次数,单位是次/秒,衡量系统每秒能接受的用户点击请求次数。在实际压测过程中,这个指标不如下面两个指标重要。
3. TPS(Transaction per Second)
系统每秒处理交易数,单位是笔/秒。在互联网业务中,如果某些业务有且仅有一个请求连接,则TPS是衡量整个业务流程的关键指标。
4. QPS(Query per Second)
系统每秒处理查询次数,单位是次/秒。通常用来衡量接口查询次数。
5. 行业TPS标准
不同行业的TPS标准不同,以下是一些经验值:
- 金融行业:1000TPS~50000TPS
- 保险行业:100TPS~100000TPS
- 制造行业:10TPS~5000TPS
- 互联网电子商务:10000TPS~1000000TPS
- 互联网中型网站:1000TPS~50000TPS
- 互联网小型网站:500TPS~10000TPS
6. 最大响应时间(Max Response Time)
指用户发出请求或者指令到系统做出反应的最大时间。
7. 最少响应时间(Minimum Response Time)
指用户发出请求或者指令到系统做出反应的最少时间。
8. 90%响应时间(90% Response Time)
指所有用户的响应时间进行排序后,第90%的响应时间,这是一个特别重要的性能指标。
性能测试的外部关注点
从外部看,性能测试主要关注以下三个指标:
- 吞吐量:每秒钟系统能够处理的请求数或任务数。
- 响应时间:服务处理一个请求或一个任务的耗时。
- 错误率:一批请求中结果出错的请求所占的比例。
结论
压力测试是确保软件系统,尤其是微服务架构下系统稳定性和性能的重要环节。通过关注上述关键性能指标,我们可以更准确地评估系统在高负载下的表现,并采取相应的优化措施。这不仅有助于提升用户体验,也是保障业务连续性和可靠性的关键。
在后续的课程,将详细介绍如何使用专业工具进行压力测试,分享实际案例分析。