手工进行性能测试存在诸多困难,如图 16-1 所示。 消耗大量的测试资源(主要包括测试人员和测试机器的成本)。 如何保证并发测试? 如何收集测试结果? 如何重复执行该测试?
需要使用性能测试工具来代替手工测试,即性能测试自动化的过程,自动化性能测试是利用人 员、流程和技术来减少应用程序部署、升级或补丁部署过程中的风险的方法。自动化性能测试的核 心是将生产工作量应用到部署前的系统,同时测量系统性能和最终用户体验。 自动化性能测试解决方案应该能够解决以下问题:
模拟成百上千个用户与系统交互,而无需过多的硬件需求。 测量最终用户响应时间。 监控负载系统组件。 高效的自动化测试解决方案(即性能测试工具)通常使用四个主要组件来构建并运行测试: 虚拟用户生成程序,用于将最终用户业务流程捕获到自动化脚本中。 监视器,用于组织、驱动、管理和监控负载。 负载生成程序,用于在执行时运行虚拟用户。 分析引擎,用于查看、剖析和比较结果。 结构完善的性能测试应该能够回答以下问题: 应用程序对目标用户响应是否够迅速? 应用程序是否能够处理预期的用户负载以及更多的负载? 应用程序是否能够处理业务所需要的大量交易? 应用程序在预期或非预期的用户负载下是否稳定? 在投入使用时用户是否具有积极的体验(即快速响应时间)?