Upload
sharetojsl
View
812
Download
7
Embed Size (px)
Citation preview
大型网站性能测试的制定与实施
什么是性能测试?
性能测试:
是指在某个特定的硬件、软件、网
络环境下通过自动化的测试工具模
拟多种正常、峰值以及异常负载条
件来对系统的各项性能指标进行测
试。
性能测试的目的
验证改进的性能效果,需要和以前的测试
结果进行比对。
新的业务上线,验证新系统能够满足系统
的上线指标。
验证系统稳定性
验证系统的架构是否存在瓶颈
性能测试环境搭建
性能测试环境:
硬件环境
软件环境
网络环境
最优的性能测试环境:
就是即将正式上线使用的生产环境
性能测试环境搭建
硬件环境搭建要参考实际的生产环境搭建,
并且要考虑自身的硬件成本
软件环境尽量要和生产环境使用的版本和
配置保持一致,并且尽可能采用最优配置
网络环境尽可能参考生产环境的网络结构
和搭建,尽可能不要跨多个网段
数据库中基础数据的准备
基础数据的内容和数据量:
需要参考具体系统的业务内容和使用规模
类似系统的数据量规模
尽可能多增加一定比例的冗余数据
基础数据准备方法:
数据库存储过程
Lr、selenium等自动化测试工具
性能测试工具的选择
强大的Loadrunner
自写的多线程压力测试程序
其他的第三方测试工具:webload、jemeter等
选择的标准:
能完成特定要求的性能测试要求即可,优先
考虑使用强大图表和控制功能的loadrunner
性能测试范围的定义
和整个儿开发团队一起确认性能测试的范
围
系统中被频繁使用的功能、调用的接口等
系统中涉及到大量数据库读、写的功能
大量读写系统缓存部分的功能
性能测试的完成目标(1)
新上线的测试系统没有明确的数字标准比对情况下,被测试系统已经被测试到了系统极限(系统的某些资源已经耗尽,cpu,句柄、内存,数据库出现大量的slow query,系统有些处理已经变慢),并且系统证明是可以水平扩展的,则可以上线。
性能测试的完成目标(2)
有以往测试结果进行比对,只要证明类似的测试条件下,此次的结果比以往的测试结果更好即可(每秒处理个数更多、单次请求的处理速度更快)
性能测试的完成目标(3)
没有可以比较的测试结果,但是产品已经上线一段时间(至少3个月),有一些运营数据,则需要分析运营的数据来作为比对的基准,只要被测系统达到3个月内系统并发峰值的4倍就可以认为是可以接受的。(如果是接口为测试对象,则需要混合主要的接口来进行性能测试)
性能测试的完成目标(4)
开发人员提供经验值作为比对的基准,则被测对象只要证明满足开发人员提出的经验值即可。
如果选择以上的某一种策略,则必须明确系统的每秒处理个数和每次请求的平均时间的具体数值,并出具最终的性能测试报告。
性能测试的脚本调试
录制或者编写性能测试脚本
修改测试脚本、使用随机化策略
调试和运行脚本,查看log和数据库内容等
方式验证脚本正确性
性能测试脚本的执行
设计好特定的性能测试场景
初始的压力线程数
逐步加压的策略
测试执行结束条件
结束时的停止多线程的方式
注意:加压的压力测试机器和被测试对象最好在一个局域网段。
性能测试的数据收集(1)
测试用例编号
测试时间
并发数
成功请求数
失败请求数
平均每秒处理个数
平均每个请求处理时间
方差 备注
性能测试的数据收集(2)
响应时间小于1秒的请求个数
响应时间超过1秒小于2秒的请求个数
响应时间超过2秒小于3秒的请求个数
响应时间超过3秒小于4秒的请求个数
响应时间超过4秒小于5秒的请求个数
响应时间超过5秒的请求个数
性能测试数据分析
分析系统性能瓶颈
验证是否数据满足性能测试完成条件
整理测试报告,汇总性能测试数据,整理
性能 测试结果,给出测试结论
和整个儿开发团队确认测试结果
经验和教训的总结
总结本次出现的性能问题的原因和问题解
决方法,作为团队的知识积累
总结测试过程中出现的流程、沟通、技术
等问题,并进行相关流程的优化。
谢谢大家