QTP脚本常用代码(不断更新)

本文介绍了如何使用QTP进行自动化测试,包括程序重启、Action调用、参数化、DOM技术应用及手工编写脚本等内容。文章详细展示了各种操作的具体实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.重新打开某个程序

SystemUtil.Run "iexplore.exe"  重新打开IE

browser("Browser").Navigate "www.baidu.com" 转入百度网站
browser("Browser").Sync  加载当前导航信息

 

2.QTP调用Action有三种方式:

a)call to new Action,在当前test中创建一个新的Action;
b)call to Copy of Action;以嵌套方式调用
c)call to existing action,调用一个re-usable action,如果这个re-usable action来自另外一个test,将以只读的方式插入到当前test中。

 

3.参数化

Object.WebEdit("username").Set DataTable("agentname", dtLocalSheet)

Object.WebEdit("password").Set DataTable("password", dtLocalSheet)
Object.Image("login").Click


 

4.DOM技术的应用

1.最普通的方法
  Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "helloworld"

2.描述性编程
  Browser("百度一下,你就知道").Page("百度一下,你就知道").webedit("name:=wd").Set "123"

3.对象自身接口
  Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Object.value="helloworld"

4.DOM技术
  Browser("百度一下,你就知道").Page("百度一下,你就知道").Object.getElementById("kw").value="helloworld"

5.childobject结合描述性编程循环遍历获取对象
  '描述对象 
  Set Desc = Description.Create() 
  oDesc("micclass").Value = "WebEdit"
  '获取webedit的数量 
  edit_count=Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc).count 
 '获取子对象集合 
  set editobjects=Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc) 
  For i=0 to edit_count-1 
    If editobjects(i).GetROProperty("name")="wd" then 
        editobjects(i).set "helloworld"
    End If
  Next

6.getElementsByName和getElementsByTagName返回的都是一个集合对象
  getElementsByName:
  '*****************************
  Set pageOjbect=Browser("百度一下,你就知道").Page("百度一下,你就知道")
  set editObjs= pageOjbect.Object.getElementsByName("wd")
  For each obj in editObjs
    obj.value="helloworld"
  Next
  '*****************************

  getElementsByTagName:
  '*****************************
  Set pageOjbect=Browser("百度一下,你就知道").Page("百度一下,你就知道")
  set editObjs= pageOjbect.Object.getElementsByTagName("input") 
  For i=0 to editObjs.length
    If editObjs.item(i).name="wd" Then
      editObjs.item(i).value="helloworld"
      Exit for
    End If
  Next
  Set editObjs=nothing
  Set pageObject=nothing
  '*****************************

5.手工编写QTP脚本

编写QTP脚本其实是比较简单、快速的。我们首先创建一个Test,然后把所有相关对象仓库的tsr文件和vbs文件添加到这个Test里面,下面就可以开始写了。写脚本大致会遇到这么几种情况:
1、调用vbs函数
2、调用其他Test
3、打开指定的URL
4、操作页面Page上的控件
5、添加CheckPoint
6、其他逻辑运算
 
我们分别讲一下。调用vbs函数比较简单,直接Call [函数名]。如果要调用其他的Test,那么首先点击Call to Existing Test,然后在QC中选择一个可以复用的Test,例如登录。如果登录的Test有参数,那么可以这样写:
RunAction "Action1 [login]", oneIteration , "张三"
 
下面的脚本要操作对象仓库了。我们先写出“Browser(”,这时就会发现,对象仓库里面的Browser对象都列了出来,然后我们选择需要的那个B对象就好。我们先从打开指定URL的脚本开始讲,打开指定的URL使用的机会比较多,特别是在Test的开始。一般我们这样写
Browser("登录").Navigate "指定的URL"
 
这里的“登录”是一个Browser对象,一般我们要选业务上符合的B对象。写完这句以后要再写:
Browser("登录").Page("登录首页").Sync
 
这句的意思是等待“登录首页”这个Page加载完毕,注意不要用Wait几秒这种方式来等待页面加载结束。
 
操作Page的对象是比较简单的,由于控件的类型太多,比如下拉菜单WebList、文本输入框WebEdit、按钮WebButton,这里就不一一说明了,大家看下面的一些例子吧:
Browser("购买直充").Page("购买直充").WebList("游戏区").Select 1
Browser("购买直充").Page("购买直充").WebEdit("PlayerName").Set "abc"
Browser("购买直充").Page("购买直充").WebEdit("PlayerNameAgain").Set "abc"
Browser("购买直充").Page("购买直充").WebEdit("CheckCode").Set "8888"
Browser("购买直充").Page("购买直充").Image("Submit").Click
 
如果遇到问题,不知道怎么写,可以先用录制的方式,生成一些脚本,然后仿照脚本写就可以了。另外在Page下面有可能会有对象,这个没关系,就像这样写即可:
Browser("我的直充").Page("我的直充").("直充入口").Image("立即直充").Click
 
添加CheckPoint要稍微复杂一些,比如说我们要检查Page上的一个WebElement的显示字符是否正确,那么首选要把这个WebElement完整的写在Test里面,这一句后面需要删除:
Browser("购买直充").Page("购买直充").WebElement("购买结果").Click
 
然后右击这一行脚本,选择Insert Standard CheckPoint,在弹出的CP属性窗口,设置CP的细节。确认后脚本就会自动生成一行:
Browser("购买直充").Page("购买直充").WebElement("购买结果").Check CheckPoint("购买结果")
 
最后再把上面那一行删除就可以了。
 
其他的逻辑运算,例如循环、判断,请参考vbs脚本语法,这里不说了。
 
总之,手动编写QTP脚本有很多好处,我在尝试了录制和手写两种方式之后,最终选择了手写的方式,大家不妨也试试,特别是对编码有兴趣的同学。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值