老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
来源:互联网 发布:新房装修全包 知乎 编辑:程序博客网 时间:2024/06/05 17:44
这几天自学QTP,所以总结一下自己的知识。
首先,什么是RO和TO?
RO:run-time object,运行时的被测实际对象;
TO:test object,对象库中存储的测试对象。
什么是Get和Set?
顾名思义,Get是取得对象,这个可以从运行的对象中取,也可以从已有的被测对象库中去取;Set是进行设置,正如如果遇到实际测试对象和对象库中的对象不一致时,为了省去重新录制的工作量,我们就可以把正在运行的某个对象加入到对象库中。
运行时,QTP就是以对象库中对象的属性描述,寻找匹配该属性的对象,从而进行操作,仓库中的对象不仅可以在录制时进行自动添加,也可以人工spy添加,同时还支持运行时从实际对象中动态添加。
相关的函数:
GetTOProperty():取得仓库对象的某个属性的值
GetTOProperties():取得仓库对象的所有属性的值
SetTOProperty():设置仓库对象的某个属性的值
GetROProperty():取得实际对象的某个属性的值
仍旧拿计算器来举例:
如果我们想从datatable中取出一个数字,然后对其点击,当前,为了满足能对任意键进行点击,已经在对象库中添加了一个对象名叫AnyButton,属性为text,属性值为任意字符的正则表达式/*。
然后使用如下两句即可完成任何满足text属性的按键的点击,这里我貌似遇到一个问题,不用"text:="+cstr(a)用Anybutton的话会报错,提示匹配到多个。
window("计算器").WinButton("Anybutton").SetTOProperty "text",a
window("计算器").WinButton("text:="+cstr(a)).Click
再比如,要进行结果比较,从datatable中的值和实际对象属性的值的比较结果得出是否通过,就可以用如下的脚本:
If datatable.Value("Result",dtglobalsheet)=window("计算器").WinEdit("Edit").GetRoProperty("text") then
reporter.ReportEvent micPass,"pass","pass"
end if
关于datatable,reporter,Set/GetToProperty,GetRoproperty的更多的用法,请参考QTP Help。
调试版本是QTP10.0,并附上部分脚本:
systemutil.Run "calc"
'从高位取得一个整数的值,循环点击
Sub NumGet(Num)
Dim i,j
i=len(Num)
ReDim a(i-1)
For j=0 to i-1
a(j)=int (Num / 10 ^ (i-j-1) )
Num=Num mod (10 ^ (i-j-1 ))
ButtonSelect(a(j))
Next
End Sub
'操作满足属性的的对象
Sub ButtonSelect(Butt)
Window("计算器").WinButton("anybutton").SetTOProperty "text",Butt
Window("计算器").WinButton("text:="+cstr(Butt)).Click
End Sub
Dim Divisor,Dividend
Adda=datatable("Divisor",dtGlobalSheet)
Addb=datatable( "Dividend",dtGlobalSheet)
NumGet Divisor
Window("计算器").WinButton("/").Click
NumGet Dividend
Window("计算器").WinButton("=").Click
If datatable.Value("Result",dtglobalsheet)=window("计算器").WinEdit("Edit").GetRoProperty("text") then
reporter.ReportEvent micPass,"pass","pass"
end if
Window("计算器").Close
- 老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
- 老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
- GetTOProperty、getROProperty、SetTOProperty的用法
- GetROProperty,GetTOProperties,GetTOProperty的区别
- GetROProperty,GetTOProperties,GetTOProperty区别
- SetToProperty & GetToProperty
- 通过“警察局罪犯档案库与通缉犯”来理解GetTOProperty()、SetTOProperty()、GetROProperty()
- GetRoProperty与GetToProperty函数
- 老生常谈:name和id的区别
- 老生常谈session,cookie的区别,安全性
- 老生常谈session,cookie的区别,安全性
- 116 老生常谈session,cookie的区别,安全性
- 老生常谈session,cookie的区别,安全性
- 老生常谈session、cookie的区别、安全性
- 老生常谈:==与equals的区别
- 老生常谈——post和get的区别
- 一些老生常谈的问题
- 老生常谈的“总结”
- PKU1611--并查集Kruskar算法实现最小生成树源码
- 第一次发文
- Dell1464笔记本安装Win7旗舰版和XP经历
- 网页打开速度慢的原因及N种解决方法
- ref 和 out关键字的用法
- 老生常谈--GetROProperty,GetTOProperty,SetTOProperty的区别
- 联发科的turn key模式
- linux的进程树
- 没人相信程序员
- Android培训班(18)
- PC-Lint 静态代码检查工具
- Ubuntu10.04开机没有动态画面(plymouth)
- 我的第一个网站
- c工程的组织