第四章:性能测试
2020/3/30 20:06:00
性能测试的概念
- 概念:是指通过性能测试工具模拟正常、峰值、异常负载状态下,对系统的各项性能指标进行测试的活动。
- 目的:
1.验证系统性能是否满足预期的性能需求,包括系统的执行效率、稳定性、安全性、可靠性等。</br>
2.分析软件系统在各种负载下的运行状态,提高性能和效率。</br>
3.识别系统缺陷,寻找系统中可能存在的性能问题,定位系统瓶颈并解决问题。</br>
4.系统调优,探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。</br>
性能测试的指标
- 响应时间:指系统对用户的请求做出响应所需要的时间,响应时间需要与用户的具体需求相结合。
- 吞吐量: 衡量的是系统服务器的处理能力;
- 并发用户量:同一时间请求和访问的用户的数量。
- TPS:(Transaction per Second)事务数/秒,指系统每秒能够处理的事务和交易的数量。 TPS = 并发用户数/平均响应时间;
- 点击率:每秒选服务器提交的Http请求数。它只是一个参考指标,帮助衡量服务器的性能。
- 资源利用率:包括CPU,内存,磁盘等;
性能测试的种类
- 负载测试:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统性能指标的情况下,系统所能承受的最大负载量;
- 压力测试:逐步给系统增加压力,测试系统性能的变化,是系统某些资源达到饱和或系统崩溃的边缘,从而确定系统所能承受的最大压力;(系统达到极限)
- 并发测试:通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者记录是是否存在死锁或者其他性能问题;
- 配置测试:调整软件系统的软硬件环境,测试各种环境对系统性能的影响,从而找到系统各项资源的最优分配原则;(配置测试不改变代码,只改变软硬件配置、配置性能更好的CPU、内存等)
- 可靠性测试:给系统加载一定的业务压力,使其持续运行一段时间,测试系统在这种情况下是否能够稳定运行(Linux更稳定);
- 容量测试:在一定的软硬件及网络环境下,测试系统所支持的最大用户数、最大存储量;(通常与数据库、系统资源有关,用于规划将来的需求增长时,对数据库和系统资源的优化)
性能测试的流程
1.分析性能测试的需求
- 测试人员需要收集有关项目的各项资料,并与开发人员沟通。对整个项目有一定的了解,针对需要进行性能测试的部分进行分析,确定测试目标。
2.制定性能测试计划
- 确定测试环境:包括物理环境、生存环境、测试团队可利用的工具和资源。
- 确定性能测试验收标准:确定响应时间、吞吐量和系统资源利用总目标和限制。
- 设计测试场景:对产品业务、用户使用场景进行设计,设计符合用户使用习惯的场景,准备出一个业务场景表,为编写测试脚本提供依据。
- 准备测试数据:性能测试是模拟现实的使用场景,例如模拟用户高并发,则需要准备用户数量、工作时间、测试时间等数据。
3.设计测试用例
- 根据测试场景准备测试用例。
4.编写性能测试脚本
- 正确选择协议;
- 根据工具的支持情况和测试人员熟悉程度选取脚本语言;
- 编写测试脚本时,要遵循代码编写规范,保证代码的质量;
- 做好脚本的维护管理工作;
5.测试执行及监控
- 性能指标:本次性能测试需要测试的性能指标的变化;
- 资源占用率与释放情况:资源的使用情况,性能测试停止后,各项资源是否能正常释放以供后续业务使用;
- 警告信息:系统出现问题时会发出警告信息,要及时查看;
- 日志检查:系统日志(操作系统,数据库等日志)。
性能测试所用的工具
1.LoadRunner
简介:
LoadRunner是一款适用于各种体系架构的性能测试工具,它能预测系统行为并优化系统性能,其工作原理是通过模拟多个用户(虚拟用户)并行工作的环境来对应用程序进行负载测试。
在进行负载测试时,LoadRunner能够使用最少的硬件资源为模拟出来的虚拟用户提供一致的,可重复并可度量的负载,在测试过程中监控用户想要的数据和参数。测试完成,LoadRunner可以自动生成分析报告,给用户提供软件产品所需要的的性能信息。
优点:
- 广泛支持业界标准协议;
- 支持多种平台开发的脚本;
- 可创建真实的系统负载;
- 具有强大的实时监控和数据采集功能;
- 可以精确分析结果,定位软件问题;
组成:
- VuGen(Virtual User Generator):用来创建虚拟用户脚本的工具,因此被称为虚拟脚本生成器。 VuGen会监控虚拟用户进行的操作,并以代码的形式将操作记录下来,生成一个VBScript脚本文件。当执行该脚本文件时,可以自动执行上述操作。在录制期间,VuGen会监控虚拟用户的行为,为跟踪用户发到服务器的所有请求以及从服务器接收到的所有应答。
- Controller:用于创建和控制LoadRunner场景,场景负责定义每次测试中发生的场景,包括模拟的用户数、用户执行的操作以及要监控的性能指标等;
- Analysis:LoadRunner的数据分析工具,它可以收集性能测试中的各种数据,对其进行分析并生成图表和报告,供测试人员查看;