第二:LR中运行QTP脚本
1、运行准备:
1)勾选QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"
2)录制需要在lr中运行的QTP脚本,并且在QTP脚本中设置事务,Services.StartTransaction "start"与Services.EndTransaction "start"
2、运行QTP脚本
在LR中运行时选择QTP脚本,为QTP脚本存放目录下文件扩展名为.usr的文件。
注:LR中运行QTP脚本时,只能有一个Vuser,否则将报错:
The load generator is currently running the maximum number of Vusers of this type
3、可能报错:
1)如果LR运行时报"LR没有相关的license"错,可以在LR里增加一个1000个的global license,注册号码为:AEACFSJI-YASEKJJKEAHJD-BCLBR
2)运行测试时,需要先将QTP关闭;
3)LR执行大于1个以上的虚拟用户时会提示:The load generator is currently running the maximum number of Vusers of this type,
所以,QTP脚本在LR中运行一台计算机只能运行一个GUI Vuser,如果要同时运行多个用户,可以QTP脚本里设置循环,循环可通过QTP的datatable设置需要运行的用户,或是在QTP里通过FOR,NEXT语句来设置次数。或是在controller里同时开启多个相同的脚本,然后分散在不同的电脑上运行,注意:各终端一定要开启LR的LR Agent Process及QTP的TOOS-Remote Agent代理服务。
注1:设计供LR运行的测试用例应遵守以下规则:
LR不能运行嵌套操循环;
请勿包括对外部操作或其他外部资源(如外部数据表文件,环境变量文件,共享对象库等)的引用。
注2:设计供业务流程监视器使用的测试时,应遵守以下规则:
对应的StartTransaction和EndTransaction语句必然包含在同一个操作内。
业务流程监视器不使用QTP的setting-run中的循环设置,而是使用数据表中文件中的行数。
注3:在LR的controll中,Run-time Settings中只有常规类别与子类别有效,回放选项不起任何作用。
如以下脚本:
Services.StartTransaction "start"
For i=1 To DataTable.GetSheet(dtLocalSheet).GetRowCount
Window("Tencent Traveler").WinEdit("Edit").SetSelection 0,19
Window("Tencent Traveler").WinEdit("Edit").Set "www.diy.com"
Window("Tencent Traveler").WinEdit("Edit").Type micReturn
Window("Window").Page("产品介绍-建站易").Link("模板仓库").Click
Window("Window").Page("模板仓库-建站易").Link("在线帮助").Click
Window("Window").Page("在线帮助-建站易").Link("关于我们").Click
datatable.GetSheet("Action1").setnextrow
Next
Services.EndTransaction "start"