前言
之前给一个客户做项目时,由于自己对性能测试了解并不深,搞不懂压力测试和负载测试的区别,导致后面还是由负责性能测试的同事来处理,他跟我说了很多关于压力测试和负载测试的区别,现在我总结如下。
压力测试
压力测试的目的是评估系统的稳定性,确定系统在面临极端情况下的表现,例如:系统承受的最大负载量,在系统极限条件下的稳定性,以及系统的可靠性等。压力测试的目的是在系统出现故障时,发现并修复问题,并为系统提供容错性和可靠性保障。
负载测试
负载测试的目的是评估系统在正常工作负载下的性能,例如:系统的响应时间、吞吐量、系统资源利用率等。负载测试的目的是证明系统在正常负载下是否能够满足用户的服务需求。
当然上述只是基本的解释,后面是完整的一个总结,希望能够帮到大家。
各类性能测试的概念与区别
测试类型 | 压力测试 | 负载测试 | 基准测试 | 配置测试 | 稳定性测试 |
---|---|---|---|---|---|
概念 | 在指定的较大的负荷下,检验系统的韧性,以及检测,响应,恢复能力 | 在一定的不超限的负荷下,系统的反应能力 | 验证环境正确性,脚本正确性,得到系统的性能基准 | 使用不同的配置做测试 | 将负荷大致控制在50%或70%,查看系统是否能够稳定运行 |
测试方法 | 使用一倍或者多倍系统容量的负荷对系统进行请求 | 在不超过系统容量(一倍容量)的情况下,选取多个负荷点,对系统进行请求 | 采用单场景,单用户方式执行脚本,并且多版本间保持一致 | 使用不同的配置,比如线程数,数据库连接数,JVM内存等配置类做对比测试 | 以指定的负荷对系统进行请求 |
观测点 | 检查系统在多倍负荷下的韧性,比如对流量的管控,进程等组件的恢复,以及成功处理业务数量能够达到一倍容量 | 系统的TPS,RT,资源(CPU,内存网络,磁盘) | TPS,RT,系统资源使用 | 不同配置下的系统反应,比如TPS,RT | CPU波动不超5%,内存波动不超5% |
目的 | 监测系统在极端环境下的交付能力和恢复能力 | 用于观察系统正常场景下,观察系统的能力随业务量变化的整体情况,并用于绘制曲线图;找出性能问题与风险,对系统定容定量,分析性能趋势,为性能调优提供依据 | 不同版本间性能对比 | 选取最优配置,用于性能调优 | 确认系统稳定,用于发布的确认 |
常用场景 | 发布前,交付场景 | 系统调优 | 性能初步了解与对比 | 性能调优 | 发布前,交付场景 |
以上,希望可以帮到大家。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取