快捷搜索:  test  as

loadrunner调用QTP脚本来实现性能测试实例

临近春节过年回家之际,现场又出问题,并发环境下流标报错。一封邮件让我周末不得不加班钻研若何来模拟实际临盆情况。大年夜致需求是根据抄表段编号和电费年月来查询该抄表段下的用户的缴费环境,一个抄表段有几百到两千的用户。必要并发的查询不合抄表段下用户的缴费环境,并依次打印该抄表段下每个用户的缴费环境。

对付这样的问题,开始我想挺好办理的,只要在脚本中加个轮回节制语句就好了,但实际测试才知道,loadrunner在向办事器提交数据的时刻有一个ID是没有规律的,立时闷了一下,之前的设法主见就这样扫兴了。颠末仔细斟酌,打印发票是每台电脑直连一台打印机的,也便是说不能经由过程一个脚原先模拟,必要使脚本有散播式的感念,脚本必要节制在每台机械上运行。这样每个脚本是相对自力的。这样我就想到了QTP,应用QTP来编写脚本,用loadrunner来节制脚本履行,这样就可以满意现场需求了。

附:QTP脚本如下:

SystemUtil.CloseProcessByName "iexplore.exe"

SystemUtil.Run "iexplore.exe","http://172.19.201.188:7001/web/" set ChildObjects = CreateObject("Scripting.Dictionary")

With ChildObjects.Add "Browser", Browser("CreationTime:=0")

.Add "Page", .Item("Browser").Page("index:=0").Add "Username", .item("Page").WebEdit("name:=username")

.Add "Password", .item("Page").WebEdit("name:=password").Add "Submit", .item("Page").Image("index:=0")

.Add "Frame", .Item("Page").Frame("name:=barFrame").Add "LinkMenu", .Item("Frame").Link("text:=电费收缴及营销账务治理")

.Add "Linkitem", .Item("Frame").Link("text:=客户缴费治理","index:=0").Add "TreeMenuFrame",.Item("Page").Frame("name:=TreeMenuFrame")

.Add "WebTable", .Item("TreeMenuFrame").WebTable("text:=我的桌面支持.*","index:=0").Add "PageFrame",.Item("Page").Frame("name:=PageFrame","index:=1")

.Add "mrSectNo",.Item("PageFrame").WebEdit("name:=mrSectNo").Add "rcvblYm",.Item("PageFrame").WebEdit("name:=rcvblYm")

.Add "WebButton",.Item("PageFrame").WebButton("name:=查询")End With

ChildObjects.item("Username").Set "YYY"

ChildObjects.item("Password").Set "1"ChildObjects.item("Submit").click

ChildObjects.item("LinkMenu").clickChildObjects.item("Linkitem").click

ChildObjects.item("WebTable").ChildItem(1,2,"Image",192).click ChildObjects.item("mrSectNo").Set "0000006511"

ChildObjects.item("rcvblYm").Set "201211"ChildObjects.item("WebButton").click

Services.StartTransaction "start"

With Browser("CreationTime:=0").Page("index:=0")For N= 1 To .Frame("name:=PageFrame","index:=1").WebEdit("name:=tatolRecord").GetROProperty("value")

.Frame("name:=PageFrame","index:=1").WebCheckBox("index:="&N).Set "ON".Frame("name:=PageFrame","index:=1").WebButton("name:=打印发票").click

Set Wsh=CreateObject("WScript.Shell")Wsh.SendKeys "^+{F4}"

.Frame("name:=PageFrame","index:=1").WebCheckBox("index:="&N).Set "OFF"Next

End With Services.EndTransaction "start"

留意:在loadrunner中运行QTP脚本,必要在QTP脚本中设置事务,如:Services.StartTransaction "start"与Services.EndTransaction "start"

在loadrunner中调用QTP脚本步骤如下:

1、在每台机械上安装loadrunner、QTP对象。

2、每台机械上的QTP,勾选Tools--Options--Run的"Alow other Mercury products to run tests and components"设置。

3、每台终端必然要开启loadrunner的LR Agent Process及QTP的TOOS-Remote Agent代理办事。

4、启动loadrunner后,在LR中运行时选择QTP脚本,为QTP脚本寄放目录下文件扩展名为.usr的文件。注:loadrunner中运行QTP脚本时,只能有一个GUI Vuser

5、添加不合的组,每个组的脚本分别由远程机械来履行。

完成以上步骤及场景设置后,就可以在loadrunner节制台运行场景了,这样就可以看到每个终端都邑调用QTP脚本,来并发履行自动化测试,这样也达到了我们并发并轮回测试的一个目的。

您可能还会对下面的文章感兴趣: