基于Expert View的对象库编程
阶段要点:
手写代码的3种方式
TO 和 RO 的关系、区别
4种操作封装对象属性的方法
常见无法识别或者识别错误对象的原因
一、手写代码的3种方式
1.步骤生成器 Step Generator(快捷键 F7 )
可以生成3种类型的代码,一行代码就是一个步骤(Expert View中)
选择测试对象之后,Object下拉框默认显示该对象库的 父对象,
Operation下拉框默认为sync操作,两者根据需要自行改变下拉框内容
注:还可以参数化数据对象
2.Complete Word
会自动补全代码,但补充的对象必须是对象库具体存在的,使用率很高
3.对象拖动
把对象直接拖到Expert View,QTP 10.0以上版本支持
所有测试对象在Available KeyWords 窗口,包括Functions、外部调用、
脚本内部本身Function
可以右键点击测试对象Open Resource 进对象库定位对象位置
注:使用这种方法会默认生成sync方法,可手工修改
补充:
垂直分割选取:按住鼠标左键寻找区域,同时点击右键固定区域
定位Functiion位置:ALT + G (外部调用的不适合)
二、TO 和 RO (重点)
联系、区别:
TO : 被添加到对象库的对象
RO : 实际运行时的对象
两者都是QTP封装的对象、TO、RO都可以调用QTP封装的属性,但RO 还可以调用自身接口属性
识别对象过程:对象库添加测试对象
测试对象的鉴别属性和被测软件实际运行的对象的鉴别属性比较
结果一致,识别成功,反之识别错误
注:TO 为了识别 RO 存在
三、4种操作封装对象属性的方法
GetToProperty( ):获取某个对象的某个属性值
GetToProperties( ):获取某个对象的所有属性值
SetToProperty( ): 设置某个对象的某个属性值(脚本运行有效,结束失效,属性值还原)
GetRoPorperty( ):获取实际运行某个对象的某个属性值(常用于验证点)
RO的封装接口和自身接口属性
封装接口:对象的不完全属性;不能修改RO,只能获取属性值
自身接口:只支持RO;可以修改RO;
以下提供一个小案例帮助理解修改自身接口属性:
With Browser("51Testing软件测试网-中国软件测试人的精神家园")._
page("51Testing软件测试网-中国软件测试人的精神家园")
.WebButton("GO").Object.value="百度以一下"
.Image("logo").Object.src="https://www.baidu.com/img/bd_l".Link("注册").Object.innerText="百度注册"
.Link("51登录").Object.innerText="baidu_login"
End With
对象库:
原图:
效果图:
该效果一旦刷新网页就会消失的哦!
讲到这里你可能会问那怎么查看自身接口属性和封装属性呢?
这个时候就要借助spy: Identification Properties(封装接口)
Native Properties(自身接口)
注:相同属性在以上两种接口中会出现大小写不同,务必注意!
四、常见无法识别或者识别错误对象的原因
1.对象控件不能被识别,尤其是C/S架构的软件程序(较复杂不具体介绍)
2.可以被识别,但加载的插件错误(重新加载正确插件)
3.同一个页面,存在两个或以上属性相同的对象(设置INDEX)
4.运行时对象发生改变与对象库不匹配(GetRoPorperty( )获取值添加到对象库)
今天更新就到此为止了哦,下一篇为对象库(进阶篇2),喜欢就点赞评论哦