Jmeter使用之脚本录制回放
最近一直在用LoadRunner做测试,同时也不忘用Jmeter来实现比较复杂的场景。今天就把我使用中的一些小小技巧做一说明,以备忘。
1、启动。
刚才在家里的机器上下载安装了Jmeter2.02版,启动时总是提示“Error occurred during initialization of VM Could not reserve enough space for object heap”,完了,128M的内存跑不起来一个小小的Jmeter :(。怎么办?修改Jmeter的启动参数“set HEAP=-Xms256m -Xmx256m”“set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m”,改256->56,128->28。这里只是一个小小的插曲,实际使用时不要这么改哦。好了,可以启动了:)
2、下面说Jmeter中的脚本录制。
(1)选中Test Plan单击鼠标右键,在弹出菜单中选择Add->Thread Group;
(2)接下来选中WorkBench单击鼠标右键,在弹出菜单中选择Add->Non-Test Elements->HTTP Proxy Server;
(3)在“HTTP Proxy Server”窗口中Target Controller下拉框选择Test Plan > Thread Group(表示脚本生成在这个线程组下),Grouping下拉框选择Put each group in a new controller(表示把每组脚本放到一个新的组中,避免生成的脚本杂乱且无法组织);
(4)单击窗口最下方的Start;
(5)打开浏览器,设置代理服务器的设置为localhot,端口号为8080(在“HTTP Proxy Server”窗口中设置了使用8080端口进行侦听);
(6)在地址中键入要录制页面的URL对页面进行操作,Jmeter就会自动把所进行的操作录制成为脚本了,可以看到Thread Group节点下面多了许多的子节点就是录制生成的脚本;
(7)操作完毕后在Jmeter中单击Stop先停止录制,然后把浏览器的代理设置改为原来的设置即可。
3、运行及记录结果设置
(1)完成脚本的录制后还需要定义你所需的结果设置才算完成了Test Plan的设置,首先要设置Thread Group(相当于虚拟用户组)的属性,单击Thread Group,在右边的窗口中设置Number of Thread(相当于虚拟用户数)为5,Ramp-Up Period(in seconds)为1,Loop Cout选项取消选中Forever,在右边的框中输入2。以上设置表示共有5个虚拟用户,每隔1秒运行一个,迭代2次。
(2)要查看运行的结果还需要加入Listener,选中Thread Group单击鼠标右键选择Listener->View Results in Table,通过这个视图可以查看到每个链接的执行情况,包括执行时间和成功与否,再加入Aggregate Report,通过这个视图可以查看每个Thread Group组的最大、最小和平均响应时间。加入View Results Tree,通过这个视图可以查看每个链接的执行情况,包括发出的请求和服务器返回的详细内容。
(3)OK,所有的设置暂到此结束,接下载可以运行了。
(4)如果是用户登陆后执行权限的脚本录制,需要加入http cookie 管理器 . [我测试发现的]
4、运行及结果查看 (1)OK,运行看看吧,由于设置运行时间较短,所以先选择View Results in Table,然后按下Ctrl+r键开始运行脚本,就可以看到每个请求的运行结果了,还可以单击其他两个结果视图实时查看运行结果。 说了这么多相信读者已经对这个工具有些感性的认识了吧,简单、便捷、跨平台、随手拈来即可使用,是它最大的有点(占内存是Java无法避免的,出现最先一幕)。不过我的本意是想说说使用使用Jmeter进行查询内容参数化的,没想到就简单使用也花费了这么多篇幅,那只有下一节再叙了。总的感觉这个工具比较“爽”。 中文站点:http://www.bonoy.com/jmeter/ 本文原在我的另一个blog上,因为已经不用那个了,所以再次贴到这里来。这里再附上我使用的一段脚本――设置浏览器代理服务器的脚本,功能是设置代理服务器为localhost,端口为8080,并打开一个浏览器实例,关闭该实例则取消代理服务器的设置。注意:此脚本在我的机器上运行通过的,如果您要使用请自己修改,由于是对注册表的操作,所以请不熟悉的朋友慎用,或者使用其他有类似功能的软件。 ******************************************************************************* '脚本说明:使用本脚本可以设置代理为localhost:8080,关闭浏览器后自动取消代理设置。 '创 建 人:wyingquan at hotmail dot com '创建时间:2004-11-24 星期三 '******************************************************************************* 保存当前设置 Set reg=WScript.CreateObject("WScript.Shell") 设置浏览器使用代理,服务器名localhost,端口号8080 reg.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD" reg.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer","localhost:8080","REG_SZ" reg.regwrite "HKLM\SYSTEM\ControlSet001\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings",1,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings",1,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",1,"REG_DWORD" 获取浏览器执行文件的位置 RunMe=reg.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE\") 等待用户输入要打开的页面 sUrl=InputBox("请输入要打开的URL地址或者取消直接在浏览器地址栏中打开:","VBS For Jmeter","http://") 打开测试页面 Set oExec=Reg.Exec(RunMe & " " & sUrl) 一直等待关闭浏览器为止才继续运行脚本 Do While oExec.Status = 0 WScript.Sleep 100 Loop 撤销代理服务设置 reg.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable",ProxyEnable,"REG_DWORD" reg.regwrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer",ProxyServer,"REG_SZ" reg.regwrite "HKLM\SYSTEM\ControlSet001\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings",0,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings",0,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\0001\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",0,"REG_DWORD" reg.regwrite "HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable",0,"REG_DWORD" Set reg=nothing MsgBox "OK",,"VBS For Jmeter"
?