最近在做循环时,有点教头烂额,后来经别人指导,才明白global和local表是不一样的,惭愧,基础知识太差了,从网上查了下资料,感觉不错,复制如下:
global 是全局的!有几行数据程序就要回放几次!不能重新设置!!
local 是局部的!有几行数据action 就要回访几次!
设置action的循环类型:点击keyword view下的需要操作的action,右键-->action call property,即可进行选择.
下面有几种情况:
1.当global 有不止一行的数据,action call property->Run On all Rows
程序每次运行时,action中的每行都要执行
2.当global 有不止一行的数据,action call property->Run one iteration
only
而且global的行数>action的行数,当action执行到最后一行后,不管此时global
的行数为几,下次回放时action都执行最后一行!
如果global的行数<action的行数,action就执行不到最后一行
另, 设置global中的循环类型,需要在filed--> setting-->run里面设置。
今天写了输入错误的电话号码,拨号时,检测提示内容的正确与否的脚本,拨号按钮有三处,所以把检测方法写成函数,方便分别调用。具体实现方法如下:
Function check
If Dialog("Lemon").Dialog("Lemon").Static("呼叫失败!" ).GetROProperty("text")=DataTable("提示框内容", dtGlobalSheet) Then
Reporter.ReportEvent micPass,"拨号弹出提示框测试成功","预期结果,与结果一致;实际结果,与结果一致。"
else
Reporter.ReportEvent micFail,"拨号弹出提示框测试失败","预期结果,与结果一致;实际结果,与结果不一致。"
End If
Dialog("Lemon").Dialog("Lemon").WinButton("确定").Click
End Function
rowcount=datatable.GetSheet(dtGlobalSheet).GetRowCount
For i=1 to rowcount
datatable.GetSheet(dtGlobalSheet).SetCurrentRow(i)
Dialog("Lemon").WinEdit("Edit").Set DataTable("号码输入", dtGlobalSheet)
Dialog("Lemon").WinButton("Dial").Click
Check
Dialog("Lemon").WinButton("offhook").Click
Check
Dialog("Lemon").WinButton("VideoDial").Click
Check
Dialog("Lemon").WinEdit("Edit").Set ""
Next
刚开始的脚本无for语句,数据也放在global表中,在运行时,每执行一条datatable例的数据,就把整个脚本全部重复运行一次,即4个数据,就执行4遍脚本;
后加入for语句,由于当时不清楚global和loacal表的关系,所以设置循环类型只循环一次时,是在keyword中的action处设置,设置完毕,运行时,仍然每条数据都执行全部脚本一次,然后没执行一次脚本就通过for再调用一遍所有语句,即数据总共被执行4*4次;
最后,在filed-->setting处修改了循环类型,解决问题。脚本只执行一次,调用数据时,只循环检测部分。