相对于LoadRunner跟SilkPerformer来说,Jmeter确实有差距,但毕竟前两者太贵,Jmeter胜在免费开源。
先看下LoadRunner录制的脚本如下,美如画,结构清晰,易于修改编辑,比如做关联等。当然目前LoadRunner已经支持自动关联了,这样花在做脚本的时间会大幅减少
web_url("his",
"URL=http://www.baidu.com/his?wd=&from=pc_web&rf=3&hisdata=&json=1&p=3&sid=***&req=2&csor=0&cb=jQuery***",
"Resource=0",
"RecContentType=text/html",
"Referer=http://www.baidu.com/",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
下面我们来看Jmeter....
方法一: Jmeter自带组件录制
需要在test plan下面加两个组件,如下图
Recording Controller:
虽然叫Controller,但是你基本可以把它理解为一个接收器,不需要配置什么,你开始录制以后,所有录到的内容都会被它接收到。
HTTP(S) Test Script Recorder:
Jmeter自带帮助里,关于这个组件说了一大堆,我总结了一下
首先这是一个代理服务器,与Fiddler类似。所以当你用Jmeter录制的时候,需要设置你的浏览器代理。
然后你的Jmeter的代理也要设置相应的端口号,其他值默认即可开始录制
当你点击开始按钮之后,Jmeter会提示你生成了一个certificate文件在bin目录下面,你只要安装即可
录制完成结果如下,诸如百度这些命名都是我录制完成之后重命名的,Jmeter录制的时候只会生成类似637这种自增数列的命名
一共试了三个网站,百度,公司内部项目,还有公司内网
需要说明的是,公司内部项目录制失败了,我看了下,Jmeter无法将该项目的hostname加到Jmeter自动生产的certificate文件的trust root下。
方法二: Badboy录制后导入Jmeter
只录制一个公司内部项目,只是为了证明Badboy更好用
做的操作是1.打开主页;2.登录;3.登出
导入到Jmeter之后:
可以看出Badboy录制出来一共是三个step,而到了Jmeter里面成了6个。Jmeter里面录制的脚本是基于Request请求的,而badboy是基于page的,基于page的更容易被理解。
而且badboy录制完成之后是可以加验证点的,推荐。
方法三: Chrome自带开发工具
点击录制之后,即可捕获所有的请求,然后右键另存为HAR文件
然后登录https://flood.io/har2jmx,将保存的数据转换成Jmx文件,再在Jmeter里面打开
只是做了个百度登录,然后截取了一部分,很长,包含了所有的图片以及css,js等,当然你可以手动的将所有session排列之后,过滤掉不需要的图片以及css,js等
方法四: Chrome插件BlazeMeter
点击录制,完成后可以导出为.jmx文件,然后导入Jmeter即可
暂时我只知道这四种方式录制Jmeter脚本,具体选择什么方式看个人喜好,我比较推荐Badboy。
最后,发现Jmeter录制的脚本不能做关联,这么一来这个页面脚本录制功能就很鸡肋了。