UML软件工程组织

Jmeter使用之脚本录制回放
发表人:snappyboy
  最近一直在用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、运行及结果查看

  (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"

版权所有:UML软件工程组织