使用工具搞定B/S系统,琢磨了一个多礼拜,几乎问题都是对象识别引起的,顺手写了点笔记
QTP几个常用方法:
方法1:调用FireEvent"ondblclick",界面操作为点击界面一个图标,然后弹出选择框,针对选中对象双击以完成选择操作。脚本录制过程中,仅抛出一个Image("Distract_2").Click,而针对弹出的选择窗体及鼠标双击选中事件均未触发。实现方法:捕获弹出对象,调用该对应的FireEvent"ondblclick"完成脚本录制
方法2:使用drag,drop完成webedit属性修改,测试过程中需要验证非法输入给程序造成的影响,如果某步骤无法完成,需重复验证,调用Webedit.drag和Webedit.drop和适当循环来完成针对某个字段的失败测试
方法3:获取参数化列表行数和当前参数行数
rowcount = DataTable.GetSheet("Global").GetRowCount
datatable.SetCurrentRow(curent_line)跳转取参行数
方法4:结果中生成对应信息,针对非法结果的打印,而不是QTP报错后异常退出
Reporter.ReportEvent 2, "There are " &rowcount, "rows in the data sheet."其中&rowcount为要输出到报表中的参数
方法5:针对Jquery模块,QTP无法识别抛出一个webelement,我们系统中这块是一个树状目录的字典表,QTP录制过程仅记录一个图标,脚本编辑过程中,解决最下一级的目录使用问题才是这个模块自动化的前提,同样是手动添加对象到对象仓库,然后考虑如果展开树形目录,.Click就可以,然后继续添加下级对象,继续.click,
是否可以遍历说有子节点,然后递归调用是个待解决问题
方法6:添加调用对象,使用对象仓库寻找要添加的对应对象
方法7:参数化对应实例
方法8:完成对下拉列表框的参数化
测试过程中下拉列表框不可能是唯一值,测试过程中如何使其不断的变化满足测试需求,想到使用随机函数
随机函数里面取值情况取决于下拉列表框的长度
Browser("Browser").Page("Page").Frame("Frame").WebList("WebList").Click
itemlenth=browser("").Page("").Frame(" ").WebList("").GetROProperty("items count")
UnitNum=randomnumber(0,itemlenth-1)
Msgbox unitNum
Browser("Browser").Page("Page").Frame("Frame").WebList("WebList").Select"#"&UnitNum
Wait 1
方法9:
Browser("Browser").Page("Page").Frame("TB_iframeContent413").WebRadioGroup("display").Select "OptionA"
Select属性包含默认值:default,A-Z
方法10:获取下拉列表框的长度
itemlenth=browser("").Page("").Frame(" ").WebList("").GetROProperty("items count")
random=randomnumber(0,itemlenth)
方法11:如果10中调用了ITEMS count则需要在对象识别中加入,否则对象无法唯一
Items count给出的是个数,而取值时候从零开始,所以调用时候应减1
方法12:对象与赋值
这是对异常的一种处理方法,异常要求,1固定长度,如果长度不够给出提示
2.判断重复,如果数据重复也要给出提示
这里给出一种重复的解决方法
num=11111110000002********变量赋一个初始值
For i=0 to 5********循环次数
Browser("").Page("").Frame("").WebButton("添加").Click
flag=true
Browser("").Page("").Frame("").WebEdit("").Set num
While flag
If Browser("").Page("").Frame("").WebElement("重复").Exist Then
num=num+1
Browser("").Page("").Frame("").WebEdit("").Set num
else
flag=false
End If
Wend
Next
方法13:变长下拉列表的对象识别
测试过程中下拉列表每取一次值,就自动去掉你所取的值,针对这种下拉列表的识别,应该在对应定义里面去掉ITEMS COUNT属性