5.1.9 性能测试工具
目前,性能测试工具主要有。
商用:LoadRunner。
开源:Jmeter、Fitnesse。
LoadRunner在第9.1节“LoadRunner工具介绍”中会进行详细介绍。开源工具JMeter和Fitnesse在本书不做介绍。这里来介绍一家通信公司是如何利用自己开发的工具进行性能测试的。
案例5-12:某通信公司产品的性能测试工具使用简介。
- 硬件:服务器、客户机。
- 操作系统:Suse Linux。
- 测试工具:安装在客户机,通过模拟从客户机向服务器发送/接受符合国际通信标准协议的通信数据包。
- 模拟器:安装在服务器上,随时监视服务器CPU、Memory等状态。
(1)运行在客户机上的测试命令如下:
./可执行文件名 -d dic -f QueryFile_s1_n20000akafull–R/tmp/test.log -q -T -K Ki -r 1 -t 600 -S secret -s 192.168.0.158 auth -n 100 -l600 >Traffic_EAP_AKA_100tps.log,其中:
Ø QueryFile_s1_n20000akafull:性能测试读取的配置文件。
Ø -fQueryFile_s1_n20000akafull:性能测试读取的参数文件。
Ø -R/tmp/test.log:测试Log日志。
Ø -t600:持续运行600s。
Ø -s192.168.0.158:服务器的IP地址。
Ø -n100:并发用户为100。
Ø >Traffic_EAP_AKA_100tps.log:测试结果输出文件,通过“>”定向输出。
(2)模拟器启动命令:
./模拟器文件(运行在服务器上) -t 600>Test_QPS100.log,其中:
Ø -t600:持续运行600s,与测试命令-t相同。
Ø >Test_QPS100.log:监视结果输出文件,通过“>”定向输出。
测试命令与模拟器命令同时启动。
测试完毕:在客户端查看Traffic_EAP_AKA_100tps.log,检查测试功能是否正常后,再去分析服务器端监视文件Test_QPS100.log,用专用工具转化成统计图,查看有无性能异常。
5.1.10 性能测试流程
性能测试流程可以包括以下几个阶段:
(1)性能测试计划。
主要工作为分析哪些地方需要性能测试?执行哪种类型的性能测试?事务点加在哪些地方?以及录制、修改、回放脚本。
(2)软件测试场景设计。
主要工作为设置脚本的运行场景,包括需要模拟多少虚拟用户?虚拟用户如何在场景中进入、持续和退出,如何设置集合点等。
(3)软件测试执行及监控。
包括运行性能测试以及运行时监测各种计数器变化。
(4)软件测试结果分析。
指性能测试完毕,对测试结果进行分析,如果测试结果表明存在缺陷,就与开发工程师沟通,协助解决。
(5)软件测试报告撰写。
当本轮所有性能测试完毕,书写并提交测试报告。
更多性能测试的资料参见参考文献【3】[J1] 。
扩展阅读:软件性能测试需要关注的6个方面 一、性能测试提前准备关注点 (1)性能测试的环境配置需要能够尽可能地模拟用户的现场使用,包括外网的设备、软件网元、各种硬件平台、操作系统和软件平台。 (2)性能测试需要准备合适的模拟脚本来尽可能全真地模拟用户可能的操作,比如同时并行网页操作,同时进行socket连接等。而且要超出用户的真实可能情况。 二、性能测试需要出两类数据 (1)基准测试对比数据:比较本版本和前一版本的性能指标的情况。用以发现本版本的功能合入是否影响了基准的性能。基准测试的情况下,本版本的新增功能和特性默认都是不打开的,保持和前一版本一致。 (2)单个功能的性能对比数据:验证本版本中,新增的功能和特性打开的时候,此功能对于版本的性能的影响。 三、性能测试过程关注点 (1)资源的占用情况:查看资源的使用情况。包括CPU、内存、硬盘等。 (2)资源的释放情况:查询系统在业务处理停止后是否可以正常释放资源,以供后续业务使用。按道理业务停止,资源应该及时释放。常见问题:内存泄露、资源吊死、导致系统不能正常释放资源、严重情况导致宕机。可以用很多工具来检测资源 情况。 (3)异常测试:性能测试的情况在一定的话务(一般是模拟现场的用户)的情况下,进行硬件倒换,双机倒换,业务切换等。包括破坏性地输入来验证系统在高负荷情况下的容错性。 (4)查询警告等信息:一般系统都会在出问题的时候,进行通知和警告,这些信息是暴露问题的最好手段,性能测试需要及时查看。 (5)长时间运行:性能测试需要模拟设备长时间的运行,这是检查版本在外场测试的手段。可以检查出很多与时间、定时器等相关的积累效应的故障。 (6)日志检查:性能测试需要经常分析系统的日志,包括操作系统、数据库、软件版本的日志。 (7)查看业务响应时间:长时间的测试后,查看业务响应的时间是否在客户可以接受的范围内。比如网页的响应时间,终端登录时长等。 四、性能测试的人员要求 (1)性能测试的人员必须是骨干,不能使用新人进行性能测试。 (2)性能测试的人员必须对全系统非常熟悉,对于问题定位手段使用熟练,能够牵头带领开发人员进行性能相关的问题排查。
|
五、性能[J2] 测试报告 (1)性能测试报告要体现基准性能数据,单个功能的性能数据。用于评估版本是否可以在原有的硬件环境下保持同样的处理能力。 (2)性能测试报告需要满足各个测试利益相关者的要求。所以性能测试进行前需要获得测试利益相关者的要求,做成明细表,然后再开始性能测试。 六、性能测试的工具要求 (1)性能测试必须有一定的工具准备,包括LoadRunner等。很多产品的性能测试需要自研性能测试工具,工具的最高境界是可以全真地模拟用户的操作。特别说明,LoadRunner仅仅是一种工具,而性能测试是一套理论和方法。 (2)性能测试工具使用过程中,需要加入手工操作。比如模拟用户购物的网购动作。工具和手工需要有效结合,用以弥补工具的某些不可预知的不足。 |
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。