软件性能测试
- 什么是性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件对系统的各项性能指标进行测试。验证软件系统是否可以满足用的性能指标、发现系统存在的性能瓶颈,进而进行优化。
验证系统在用户给定的条件下处理性能是否达到设计目标与用户要求
测试系统在给定条件下极限处理能力
通过对系统参数的调整,测试系统的最佳性能配置
发现功能测试难以发现的缺陷
性能测试过程包括性能测试需求分析、性能测试设计与实现、信工测试执行和性能测试总结四个过程。
需求分析:
确定性能测试的准入准则,在系统架构确定后或冒烟通过后执行
确定待测系统的性能需求(合同、需求说明、业务、数据、预期的系统和系统行为约定的隐含需求)
识别系统相关的外部应用,如硬件环境等
确定测试完成或终止准则
设计与实现:
确定检测的指标、业务场景、被测业务的用户角色分布
确定采用的性能测试类型
依据历史运行情况或实际情况设计测试数据和读取规则
确定负载生成方式,可采用工具或人工加压
针对测试业务逻辑设计用例
根据需求或实际业务确定用例执行顺序
开发脚本
确定暂停和恢复准则(暂停准则:系统不可用、不确定原因导致服务器宕机或服务停止运行、应用程序具有阻塞程序或严重缺陷;恢复准则:系统服务可用、解决阻塞问题、程序功能恢复)
性能测试需求模型应考虑环境、数据、业务流程、用户分布、请求时序分布和网络状态等因素。
环境(推荐使用实际生产环境) | |
---|---|
稳定性 | 相同条件下多次测试结果一致或在可接受误差范围内 |
独立性 | 与其他在用系统或软件保持隔离 |
可控性 | 设备和资源可被监控或控制 |
数据 |
---|
数据类型和业务匹配 |
数据量和业务需求匹配 |
数据分布和业务匹配 |
业务流程 |
---|
资源占用情况 |
业务使用频率 |
业务重要性 |
用户分布 |
---|
不同角色预期的用户数量和参与业务的不同 |
功能种类、数量、每种功能执行的人数 |
并发时若无特定约定,应根据在线用户数进行估算 |
请求时序分布 |
---|
定义系统的典型使用方式,考虑用户使用系统的典型业务、时间段和用户数量 |
网络状态 |
---|
保障网络传输速度 |
网络背景流量应减少(不要再有其他的请求占用大量的网络带宽,造成请求阻塞) |
-
性能测试的类型
验收性能测试:通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产要求
验证系统是否具有宣称的能力
事先了解被测系统运行的典型场景,明确系统性能目标
在已明确的环境下运行
负载测试:用于评估系统在预期编号负载下的表现,负载通常位于低谷、典型和高峰使用的预期条件之间
压力测试:用于评估软件与系统在高于预期或指定容量负载要求、或低于最少需求资源条件下的性能表现
峰值测试:用于评估系统与软件在短时间内负载大幅度超出通常负载时的性能表现
配置测试:通过对系统软硬件环境的调整,了解不同配置对系统性能的影响程度,从而找到系统各项资源的最优分配原则
疲劳强度测试:用于评估系统与软件在指定时间段内、能够持续维持所需负载的能力 -
性能测试指标
用户并发数:反应系统负载压力的大小
响应时间:反应系统的处理效率
吞吐率(TPS)反应系统的处理能力,是单位时间内完成的事务数
资源使用:反应系统的处理能力 -
jmeter性能测试