复件 大型网站性能测试方案的制定与实践

Post on 18-Jul-2015

822 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

TRANSCRIPT

大型网站性能测试的制定与实施

什么是性能测试?

性能测试:

是指在某个特定的硬件、软件、网

络环境下通过自动化的测试工具模

拟多种正常、峰值以及异常负载条

件来对系统的各项性能指标进行测

试。

性能测试的目的

验证改进的性能效果,需要和以前的测试

结果进行比对。

新的业务上线,验证新系统能够满足系统

的上线指标。

验证系统稳定性

验证系统的架构是否存在瓶颈

性能测试环境搭建

性能测试环境:

硬件环境

软件环境

网络环境

最优的性能测试环境:

就是即将正式上线使用的生产环境

性能测试环境搭建

硬件环境搭建要参考实际的生产环境搭建,

并且要考虑自身的硬件成本

软件环境尽量要和生产环境使用的版本和

配置保持一致,并且尽可能采用最优配置

网络环境尽可能参考生产环境的网络结构

和搭建,尽可能不要跨多个网段

数据库中基础数据的准备

基础数据的内容和数据量:

需要参考具体系统的业务内容和使用规模

类似系统的数据量规模

尽可能多增加一定比例的冗余数据

基础数据准备方法:

数据库存储过程

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秒的请求个数

性能测试数据分析

分析系统性能瓶颈

验证是否数据满足性能测试完成条件

整理测试报告,汇总性能测试数据,整理

性能 测试结果,给出测试结论

和整个儿开发团队确认测试结果

经验和教训的总结

总结本次出现的性能问题的原因和问题解

决方法,作为团队的知识积累

总结测试过程中出现的流程、沟通、技术

等问题,并进行相关流程的优化。

谢谢大家

top related