首页 > 代码库 > JMeter基础--录制脚本
JMeter基础--录制脚本
JMeter官方站点:http://jmeter.apache.org/
JMeter是一款在国外非常流行和受欢迎的开源性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细;但它的优点也有很多:
- 开源,他是一款开源的免费软件,使用它你不需要支付任何费用,
- 小巧,相比LR的庞大(最新LR11将近4GB),它非常小巧,不需要安装,但需要JDK环境,因为它是使用java开发的工具。
- 功能强大,jmeter设计之初只是一个简单的web性能测试工具,但经过不断的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。
我觉得它更像一个瑞士军刀,小巧,且功能齐全。像LoadRunner 一样,它也提供了一个利用本地Proxy Server(代理服务器)来录制生成测试脚本的功能,但是这个功能并不好用。所以在本文中介绍一个更为常用的方法——使用Badboy录制生成 JMeter 脚本。
简单的介绍以下Badboy。Badboy是一款不错的Web自动化测试工具,如果你将它用于非商业用途,或者用于商业用途但是安装Badboy 的机器数量不超过5台,你是不需要为它支付任何费用的。也许是一种推广策略,Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,也非常简单。你可以跟着下面的试验步骤来迈出你在开源世界的第一步。
----------------------我的环境------------
Badboy version 2.1.1
Apache JMeter-2.3.4 (需要JDK环境来运行)
--------------------------------------------
第一种方法:通过badboy来录制脚本。
1. 打开badboy工具,点击工具栏上的红色圆形按钮,在地址栏(图中红色方框标注的部分)中输入你需要录制的Web应用的URL,并点击Go按钮开始录制。
2. 开始录制后,你可以直接在Badboy内嵌的浏览器(主界面的右侧)中对被测应用进行操作,所有的操作都会被记录在主界面左侧的编辑窗口中——在这个试验中,我们在Yahoo的搜索引擎中输入 JMeter 进行搜索。不过你将看到,录制下来的脚本并不是一行行的代码,而是一个个Web对象——这就有点像LoadRunner的VuGen中的Tree View视图;
3. 录制完成后,点击工具栏旁边黑色按钮,结束录制。
4. 选择“File -> Export to JMeter...”菜单,填写文件名“login.jmx”,将录制好脚本导出为JMeter脚本格式。也可以选择“File -> Save”菜单保存为Badboy脚本;
5. 打开Jmeter工具,选择“文件”--“打开”选择刚才保存的文件(.jmx类型),将文件导入进来了。
第二种方法:通过JMeter自身设置来录制脚本。
Jmeter也有自己的代理,录制脚本前,我们只要启动好代理,手动通过IE或者火狐来录制,录制完毕停止代理。
1. 打开JMeter工具
创建一个线程组(右键点击“测试计划”--->“添加”---->“线程组”)
再添加http默认请求(右键单击“线程租”---->“添加”---->“配置元件”---->“HTTP Request Defaults”):设置“服务器名称或IP”
创建一个http代理服务器(右键点击“工作台”--->“添加”--->“非测试元件”--->“http代理服务器”)
端口:代理服务器的默认端口为8080,也可以随意修改,修改前尽量通过netstat –ano命令查看一下本机正在使用的端口,不要重复使用,否则录制不到jmeter脚本
目标控制器:选择录制到的请求放置位置“测试计划->线程组”
分组:选择“每个组放入一个新的控制器”
包含模式/排除模式:过滤掉我们不要录制的内容或者只录制的内容,正则表达式: .*\.gif
完整的设置参照下图:
所有设置完毕,启动jmeter代理
2. 打开IE浏览器设置本机的代理
IE--->“工具”---->“internet属性”--->“连接”--->“局域网设置”
设置为本机IP就可以了,如果是其他机器,修改IP地址。注意端口号要与Jmeter上的端口号一致。默认都是8080端口。
通过IE浏览器手动录制一个登陆页面,登陆成功后,手动停止代理,查看录制后的脚本。
3. 现在点击jmeter上的“启动”按钮,打开浏览器输入需要录制web项目地址,jmeter会自动记录你IE所访问的页面,录制完成后,手动停止代理。
PS:第二方法有通过IE浏览器辅助的,我想可能只要IE能打开的,它都能记录,但它录制的脚本看上去比较乱(感觉上)还是http代理服务器的设置,(比如:分组:每一个组放入一个新的服务器---只有这一个选项才能正常录制)。