QTP针对对象的参数化实例

     参考文章地址:http://www.51testing.com/?26649/action_viewspace_itemid_608.html

    在自动化测试当中,有时为了模拟真实效果,或者为了达到某种操作效果,那么势必要把脚本参数化.那么一般的针对输入值的参数化或者select选择值的参数化,操作也比较容易,这里也不多说了,直接把固定值换成变量就可以.鉴于上个星期有两个朋友都问到了针对某个对象的参数化,那么就来探讨一下针对对象的参数化.

例:
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "李阳疯狂英语"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").Link("北京李阳疯狂英语培训中心").Click
Browser("北京李阳疯狂英语培训中心").Page("北京李阳疯狂英语培训中心").Sync
Browser("北京李阳疯狂英语培训中心").Close
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").Sync
Browser("百度一下,你就知道").Close

    在这个例子中,我们的目的是把这个link对象给参数化掉.这里直接把对象名参数化掉,肯定是不行的.因为我们知道QTP识别对象依靠是这个对象在对象库中的属性和属性值.而如果我们这里参数化成一个新的对象名,那么这个对象名是不存在于对象库中的,那么势必会造成在回放过程中不通过,报对象库中没有这个对象的错误.所以我第一个想到的是先让这个link对象脱离对象库,让它不用通过对象库就能识别这个link对象,那么接下来只要直接换成变量就成功了.相信大家都看到过帮助里对描述性编程的说明,通过把脚本改写成描述性编程的形式,可以让QTP在执行脚本时不要再去依赖对象库.直接把一些付有特征的属性和属性值放到脚本中,就能执行相应的操作.所以我们可以先把上面脚本改写成:


Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "李阳疯狂英语"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").
Link("text:=北京李阳疯狂英语培训中心","html tag:=A").Click
Browser("北京李阳疯狂英语培训中心").Page("北京李阳疯狂英语培训中心").Sync
Browser("北京李阳疯狂英语培训中心").Close
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").Sync
Browser("百度一下,你就知道").Close

    这样表示后,再把这个对象(link)在对象库中的记录给删掉.重新运行脚本后,脚本依旧能正确执行.那么接下来的操作就方便了,直接把相应的固值换成一个变量即可.我们来这么操作:

Dim i
i="北京李阳疯狂英语培训中心"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "李阳疯狂英语"
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").
Link("text:="&i,"html tag:=A").Click
Browser("北京李阳疯狂英语培训中心").Page("北京李阳疯狂英语培训中心").Sync
Browser("北京李阳疯狂英语培训中心").Close
Browser("百度一下,你就知道").Page("百度搜索_李阳疯狂英语").Sync
Browser("百度一下,你就知道").Close

    到这里整个操作过程就完成了.其实这只是一个方法,相信大家肯定还有其他方法,希望大家能留言说说自己的看法.当然如果这个对象的对象名有一定规律的话,我们还可以考虑运用正则表达式的方法,也可以达到预期的效果.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值