负载测试 load testing
用于评估系统与软件在预期变化负载下的性能表现,负载通常位于低谷、典型和高峰使用的预期条件之间。
注:性能效率测试的一种。
压力测试stress testing
用干评估系统与软件在高干预期或指定容量负载需求,或低于最少需求资源的条件下的性能表现。
注:性能效率测试的一种。
峰值测试spike testing
用于评估系统与软件在短时间内负载大幅度超出通常负载时的性能表现。注:性能效率测试的一种。
扩展性测试scalability testing
用干评估系统与软件适应外部性能需求变化(如用户负载支持、事务数量、数据量等)的性能表现。
注:性能效率测试的一种。
容积测试volume testing
用于评估系统与软件在吞吐量、存储容量或两者兼考虑的情况下处理指定数据量(通常达到最大指定容量或接近最大值)的能力。
注:性能效率测试的一种。
疲劳强度测试endurance testing
用于评估系统与软件在指定的时间段内,能够持续维持所需的负载的能力。
注:性能效率测试的一种。
一、性能测试过程
性能测试过程包括性能测试需求分析、性能测试设计和实现、性能测试执行和性能测试总结四个过程。
1.性能测试需求分析
性能测试需求分析包括下列活动:
a)确定性能测试的准入准则,在系统构架确定后或冒烟测试通过后执行,测试介入越早越好。
b)确定待测系统与软件的性能需求。性能需求可来自合同、需求规格说明等文档中所明示的需求,或者由业务、数据、预期的用户和系统行为约定的隐含需求。性能需求宜依据性能需求模型来确定。
c)识别待测系统与软件相关的其他外部应用。
d)确定性能测试完成或终止准则。
2.性能测试设计和实现
性能测试设计和实现过程用于导出测试用例和测试规程,相关的活动包括:
a) 确定所需监测的指标、业务场景、被测业务的用户角色分布。
b) 确定采用的性能测试类刑。
c)依据历史运行情况或实际运行环境设计测试数据生成和读取规则。测试数据包括为待测系统
与软件准备的基础数据,以及运行所需要的数据。数据量应与测试环境的配置相适应或与未来扩展数据量一致,在实际环境中数据量应与实际规模相一致;在模拟环境中宜等比对数据规模进行调整。
d)确定负载生成方式,可采用工具或人工的方式加压。应根据制定的测试方案布置各测试场景,包括并发用户数执行时长以及需要监视的性能指标等。
e)针对所需测试的业务逻辑设计测试用例。
f)依据需求或实际运行环境确定测试用例顺序。
g)开发测试脚本。通过脚本对待测系统与软件的用户业务行为进行模拟,脚本的开发可采用录制、编写或定制开发等方式。完成测试脚本开发后,应进行功能验证,确保测试脚本已完成用户业务行为。
h) 确定暂停和恢复准则:
1) 暂停准则可包括:
--系统不可用;
--由于不确定原因导致服务器宕机或必要服务停止运行;
--应用程序在打开状态下具有阻塞程序/严重缺陷;
--所需的依赖项不可用。
2)恢复准则可包括:
--系统和/或服务器可用,启动并运行;
--解决阻塞和/或关键问题;
--应用程序功能已恢复;
---测试数据处理周期未完成时的恢复程度。
3.性能测试执行
性能测试执行过程包括下列活动:
a)执行前就绪检查,对性能测试所需环境和资源进行评估。
b)由人工或利用测试工具执行测试脚本,并监控执行过程中的性能指标,记录测试结果。
c)能测试通常需考察待测系统与软件在一段时间范围内的综合表现,按需取平均值、最大值或最小值作为测试结果。
d)若性能测试异常终止或不满足需求或预期,填写性能问题报告单。问题报告单应包括问题来源、场景配置、问题描述、问题等级等内容。
e)判断所执行的测试用例是否通过。如果测试不通过,分析具体情况,确定是由软件本身性能瓶颈所引起的,还是由测试环境所引起的。