过去长期用loadrunner做性能測试。可是渐渐认为有些麻烦了:
1.仅仅能执行在windows环境下,而生产环境差点儿清一色的linux。为了在同一网段做性能或压力測试,还须要单独部署一套windowsserver,比較浪费。
2.loadrunner和浏览器版本号绑定太严格了,比方loadrunner 11。最高就支持到ie9,有时候系统打补丁自己主动把浏览器版本号升上去了。就无法录制脚本了。
3.版权问题也不容忽视,crack带来的各种风险也是存在的。
于是尝试了一下JMeter,发现还是相当好用的。在多数web性能測试中。功能也足够了。
总结一下最经常使用的操作,帮助刚開始学习的人高速上手。
安装:
Jmeter的安装实在是太省心了,就是解压缩就可以。Windows版本号一般是zip包,linux版本号一般是tar包,仅仅要系统上有JDK,直接解开就能够启动了。
(injmeter.bat、injmeter.sh),启动后是这个界面:
录制脚本:
和loadrunner的主动启动被录制应用不同,Jmeter是启动一个代理server,由浏览器设置去使用这个代理server。以完毕web请求的监控和录制。
所以须要在工作台右键、加入——非測试元件——http代理server。
重点是为代理server设置一个和现有应用不冲突的port。然后在浏览器里设置使用代理server,port就是上述设定好的port。
点击启动button,代理server就開始工作了。
此时通过浏览器訪问web网站,所发出的请求就会被记录下来。
可是假设如今就開始录制的话,会在上面的列表中列出一大堆。显得非常杂乱。所以先在測试计划中加入一个线程组。
加入线程组不仅仅为了看着方便,还有几个作用:
线程组相当于loadrunner中的一个独立脚本。多个脚本能够组成一个測试场景。
模拟多用户时。也是以线程组为单位进行数量设定和调度设定的。
如上图中,对这个线程组採用模拟10个并发用户循环5次运行性能測试。
运行结果要能看到反馈才行。所以在測试计划中加入监听器。经常使用的监听器有SummaryReport、聚合报告(这两个很接近。用一个就可以)、察看结果树等。
也有一些图形化的监听器用于各自须要的场合。
这样,一个主要的測试流程(录制、測试、报告)就完毕了。再介绍一下參数化。这也是在性能測试中最经常使用的,比方各种查询。所谓參数化就是希望模拟用户操作的时候採用不同的參数数值。如模拟用户检索就希望每一个虚拟用户发出不同的检索请求。这样才更能模拟实际情况。
此时须要先准备一个检索词列表到一个csv文件里。然后加入一个配置元件——CSVData Set Config,然后指定这个文件路径,并给每列数据指定一个名称。
命名之后,就能够在须要的地方。用变量名替换原有的固定字符串了。
当模拟多用户时。系统会用csv文件中的内容替换这个变量。
有些时候系统须要session信息来验证某些状态,假设没有发出的话会导致一些错误。这个时候加入——配置元件——HTTPCookie管理器就能够了。
常见步骤就是这些,通过调节參数设置。能够更精细地完毕多种測试任务。这就须要在实践中逐步积累经验了。