孙子说:不知彼不知己,每战必败。
性能测试涵盖了广泛的工程评估,重点是衡量最终性能的特点
性能测试的目标是识别、记录和消除系统中的瓶颈
负载测试是性能测试中的一个过程。
负载测试在系统中加载用户需求以测量其响应时间和稳定性。
负载测试的目的是验证应用能够满足预期的性能目标,通常是在服务水平协议中指定的。(如:响应时间、吞吐量、资源利用率等指标,目标不是确定系统的失效点)
负载和性能测试并不是正确架构的替代品。
性能测试的七个步骤:
1、确定应用的标准
2、建立适当的测试环境
3、选择合适的测试服务(帕累托,80/20法则,20%的测试将提供所需要信息的80%)
4、执行测试
5、分析数据(是否触及阈值)
6、向工程师报告,如果他们没有组成敏捷团队
7、必要的重复
压力测试是一个试图确定应用在高于正常负载情况下稳定性的过程。
相对于负载测试,压力测试施加的压力远远超出正常流量,直至达到应用的失败点,我们观察应用在失败过程中发生的行为。
压力测试的8个步骤:
1、确定测试的目标
2、选择要测试的关键服务
3、确定需要产生多少负载
4、建立适当的测试环境
5、确定必需的监视点(服务行为或结果、响应时间、CPU负载、内存使用率、磁盘使用情况、线程死锁、SQL数量、失败交易数等等)
6、产生施加的测试负载
7、执行测试
8、分析数据
性能测试和压力测试对可扩展性的影响可通过预留空间、变更控制以及风险管理实现。
压力测试的目的是确定在应用超过正常负载时的稳定性,负载测试中的负载量是指定的,而压力测试的负载量远远超越这一水平,直到系统的失败点,来观察故障和验证服务或应用的恢复情况。