性能测试价值
想想某宝双十一瘫痪,又想起某次双十二,说是所有商品半价,和室友排了一上午队,排到了 ,支付宝又崩溃,不能用了,何其悲壮。
那么性能测试能带来什么好处呢?
核心价值:保障系统新呢过,提供良好的用户体验,尽可能找出系统新呢过薄弱的环节,帮助进行性能优化。
性能测试流程
- 分析需求:分析系统非功能需求,圈定性能测试范围,了解系统性能指标
- 工作评估: 需要投入多少人力,多少工作日
- 设计模型: 圈定性能测试范围后,将业务模型映射成测试模型,即性能测试用例设计加性能测试实现方案,用例关注任务,模型还关注如何实现,是否具有可操作性
- 计划编写:计划测试工作,在文档中明确列出测试范围,人力投入,持续时间,工作内容,风险评估,风险应对策略
- 脚本开发: 录制或编写性能测试脚本,开发测试挡板程序,开发测试程序
- 测试环境准备:包括服务器和负载机两部分,服务器是被测系统的运行平台,负载机是我们用来产生负责的机器,用来安装负载工具,运行测试脚本
- 测试数据准备:准备主数据和业务数据
性能测试难点
- 需求分析:不能准确预估用户行为;在场景上不能复现用户操作;无法把需求体现在脚本和场景设计上;无法模拟真实的系统负载
- 场景设计
- 性能诊断调优
- 环境搭建和模拟
性能测试工具
- Loadrunner
- JMeter
- Grinder
- QALoad
- WAS
- WebLoad
- RPT
- OPENSTA
性能测试相关术语
- 负载: 模拟业务操作对服务器造成压力的过程
- 性能测试(performance Testing):模拟用户负载来测试系统在负载的情况下,系统的响应时间,吞吐量等是否满足性能要求
+负载测试(Load Testing):在一定软硬件环境下,通过不断加大负载来确定在满足性能指标情况下能承受的最大用户数 - 配置测试(Configuration Testing):为了合理的调配资源,提高系统运行效率,通过测试手段来获取,验证,调配配置信息的过程
- 压力/强度测试(Stress Testing):在一定的软硬件环境下,通过高负载的手段来使服务器资源处于极限状态,测试系统在极限状态下长时间运行是否稳定
- 稳定性测试(Endurance Testing):在一定的软硬件环境下,长时间运行一定的负载,确定系统在满足性能指标的前提下是否运行稳定
- TPS((Transaction Per second):每秒完成的事务数,通常指每秒成功的事务数
- RT/ART(Response Time/average Response Time ):响应时间/平均响应时间,指一个事务花费多长时间完成
- PV (Page View): 每秒用户访问页面的次数,此数据用来分析平均每秒有多少用户访问页面
- Vuser(Virtual user): 虚拟用户,模拟真实业务逻辑步骤的虚拟用户
- Cocurrency:并发,所有用户在同一时间做同样的操作
- Scenario :场景,基于事务,脚本,虚拟用户,运行设置,运行计划,监控,分析等一系列的动作的集合,称之为性能测试脚本
- Think Time:思考时间,模拟正式用户在实际操作时的停顿间隔时间
- Std. Deviation:标准差,标准差越小,说明波动越小,系统越稳定,反之,标准差越大,波动越大,系统越不稳定