性能测试的基本过程
方框区域为可能存在多次进行操作的区域
详细解释:
一、性能测试需求分析
目的:把客户的真正需求搞清楚,这是性能测试的最关键的过程
有没有见过这样的需求,误区?
1)我们需要贵单位对所有的功能都进行性能测试
1.1 全部功能模块都进行性能测试需要非常长的时间
1.2 根据80-20原则,通常系统用户经常使用的功能模块大概占用系统整个功能模块数量的20%
1.3 测试内容结合客户真实的应用场景,客户应用最多,使用最频繁的功能
2)系统用户登录响应时间小于3秒钟
2.1 没有指明是在多少用户访问
2.2 必须清楚客户的真实需求,消除不明确的因素
3)系统支持10万用户并发访问
3.1 在进行系统测试时,系统的可扩展性是需要我们考虑的一个重要内容
3.2 需要对未来两三年内系统应用用户有一个初步预期
3.3 搞清楚10万级用户的典型应用场景,以及不同操作的人员比例,这样性能测试才有意义
二、性能测试计划
三、性能测试用例
四、测试脚本编写
1)协议的正确选用
2)录制或编写脚本以后,要去除脚本不必要的冗余代码,对脚本进行改善(集合点,检查点,事务,对一些数据进行参数化,关联等处理)
3)脚本之间的前后依赖性
4)注意编码的规范和代码编写的质量
5)历史脚本的维护 建议:将脚本一定要纳入到配置管理,配置管理工具有很多 如 Visual Source Safe、Firefly、PVCS、CVS、Havest
五、测试场景设计
六、测试场景运行
1.1 性能测试工具都是用进程或者线程来模拟多个虚拟用户,每个进程和线程之间都是需要占用一定的内存的,要保证负载的测试机足够跑设定的虚拟用户数,如果内存不够,请用多台负载机分担进行负载
1.2 先将应用服务器“预热”,先运行一下应用服务器的功能 编译&解释
1.3 在有条件的情况下,尽量模拟用户的真实环境
1.4 部门成员相互配合
1.5 性能测试的执行,在时间充裕的情况下,最好同样一个性能测试用例执行3次,然后分析结果,如果结果相接近才可以证明此次测试是成功的
七、场景运行监控
应用性能测试工具的重要目的:可以提取到本次测试关心的数据指标内容
性能测试工具利用应用服务器、操作系统、数据库等提供的接口,取得在负载过程中相关计数器的性能指标
注意:
1、性能测试负载机可能有多台,负载机的时钟要一致,保证在监控过程中的数据是同步的
八、运行结果分析
可以用工具,也可以编写脚本
被大家应用的性能分析方法:拐点分析:利用性能计数器曲线图上的拐点进行性能分析的方法,基本思想:性能产生瓶颈的主要原因:因为某个资源的使用达到了极限,此时表现为随着压力的增大,系统性能出现急剧下降,产生了拐点现象。当得到“拐点”附近的资源使用情况时,就能定位出系统的性能瓶颈。
九、系统性能调优
系统调优由易到难的先后顺序
1)硬件问题
2)网络问题
3)应用服务器、数据库等配置问题
4)源代码、数据库脚本问题
5)系统构架问题
十、性能测试总结
了解到如下内容:
1、性能测试需求覆盖情况
2、性能测试过程中出现的问题
3、如何去分析、调优、解决的
4、测试人员、进度控制与实际执行的偏差
5、测试过程中风险是如何控制的
6、经验教训等