性能测试-其二
-
不同角色对性能测试的关注点不同
- 用户:软件对用户操作的使用时间
- 管理员:服务器的资源利用率,系统的可扩展性,系统容量(可支持多少用户同时访问),系统稳定性等
- 开发人员:架构设计是否合理,数据库设计是否存在问题,代码是否存在性能问题,代码中是否有不合理的内存使用问题,是否存在不合理的资源竞争,是否存在不合理的线程同步问题
-
术语解释:
-
响应时间:对请求作出响应所需要的时间
-
并发用户数:相同时间内,有多用户在相同时间内作出相同操作
为什么要关注并发用户数:用排球击打墙面,越多的球同时击打墙面,墙面承受的压力就越大
-
吞吐量:单位时间内,系统处理请求的数量
吞吐量在虚拟用户数增长到一定程度后产生了性能瓶颈
-
思考时间:用户在进行操作时,每个请求之间的间隔时间
-
-
性能测试的方法:
-
负载测试:在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已达饱和状态。
可以找到系统的处理极限,为系统调优系统数据。
通常需要考虑系统的业务压力量和典型场景,使测试结果具有业务上的意义
-
压力测试:测试系统在一定饱和的状态下,系统处理会话的能力,以及系统是否会出现错误
通过增加压力,使系统的资源使用保持在一定的水平,验证此时应用的表现,重点在于是否有错误信息产生,系统对应用的响应时间等。
-
配置测试:通过对被测系统软硬件环境的调整,了解各种不同环境对性能影响的程度,从而判断出最需要进行的调优操作。
-
并发测试:通过模拟用户的并发访问,测试多用户并发访问同一应用时,是否出现死锁或其他性能问题,比如,内存泄露,是否有太多临时对象,数据库死锁,长事务,进程/线程同步失败,资源征用导致的死锁。
-
可靠性测试:通过给系统加载一定的业务压力(例如资源利用率在70%-90%的使用率),让应用持续运行一段时间,测试系统在这种条件下是否稳定运行。
如果CPU处于较大压力下运行一段时间,则“等同”于让系统在压力小的情况下运行较长时间。
-
失效恢复测试:针对冗余备份和负载均衡的系统设计的。主要验证在局部故障的情况下,系统能否正常使用。
-
-
性能测试过程模型
-
测试前期准备阶段
- 系统基础功能验证,基础功能不能有bug
- 测试工具需求确认(是否能支持本次测试)
-
测试工具引入
确定工具的应用过程(哪些工作需要使用工具完成,脚本如何管理等)
-
测试计划
- 根据性能测试的目的确定需要重点观察和分析的指标
- 用户活动剖析和业务建模(业务建模是对业务系统的行为及实现方式和方法建模)
- 确定性能目标
- 制定测试时间计划
-
测试设计与开发
- 测试环境设计
- 测试场景设计
- 测试用例设计
-
测试执行与管理
- 建立测试环境
- 部署脚本
- 执行测试,记录结果
-
测试分析
测试分析的通用方法之一就是拐点法。
-

浙公网安备 33010602011771号