性能测试
以下是对性能测试的一点看法,希望大家不吝赐教
性能测试
性能测试有以下几个比较重要的专用词汇
Response Time:从发起信号到响应完成所用时间
1. Load:测试系统的负载能力
2. Scalability:可测量性,Database的Size增加时,系统的response time应当呈线性上升。
3. Automation Testing Tools:自动化测试工具
4. Load Testing Tools: 负载测试工具
5. Profiler:在应用程序运行的时候,对它进行自动测试,例如某些代码锁定所花的时间,内存的占用,CPU的占用,等等
性能测试流程
Function Testing -> Load & Scalability Testing -> Interpreting the results -> Optimization
1. Function Testing: 大多数测试由完成功能点测试开始,确保Application完成所有的Use Case和Workflow
2. Load & Scalability Testing:两种形式
ü Database的Size增加时,系统的Response Time
ü User增加时,系统的Response Time
3. Interpreting the results:根据不同的Database Size和Load 程度来测试系统的响应时间。可以根据这些测试的平均响应时间以及测试中服务器资源使用率来进行分析。
4. Optimization:优化,在最后一步中找出问题所在,就可以分析问题以及跟踪问题。
在对功能点测试完之后开始进行性能测试,性能测试主要包括以下几个方面
1. Scalability Testing: 确保系统在Peak Usage的时候,对每个功能的完成时间或是响应时间符合要求。
不同的数据库Size,系统的Performance不同,开始的时候使用普通数据量的数据库,测量Response Time,接着用极大数据量的数据库(三年内将使用到的最大数据量的三到四倍)再次进行Performance Testing, 如果响应时间过长,一定存在问题。
2. Load Testing:当多用户使用一个数据库的时候,根据同步使用的用户数不同分成不同等级,以此来完成应用程序的Load Testing。
模拟低负载(1~5个用户)
模拟中等负载 (10~50个用户)
模拟高负载 (100个用户)
模拟峰值负载 (1000+用户)
完成不同等级的Load测试之后,可以通过比较Response Time来判断系统是否符合要求。
分析性能
1. 当Database的数据量过大时,Response Time是否过长。
数据库的大小从100行到50000行,系统的响应时间不该延长过多,Database中寻找到某一特定行的时间应该时毫秒极的。
2. 当Load增加时,Response Time指数级上升
如果同步用户数增加后,系统变得无法使用,原因很难判断。可能是硬件问题,配置问题,或别的原因。
在测试过程中注意以下几个问题:
注意内存的需求
注意CPU的占用
优化
数据库,架构,配置,硬件也许需要优化
结论
|