没有合适的资源?快使用搜索试试~ 我知道了~
首页QTP9.0描述性编程介绍与实例.doc
资源详情
资源评论
资源推荐

Quick Test Professional9.0 编程常用方法及实例详解
一. '通过 QTP 获取 Web 页面中对象属性
在制作自动化用例时需要知道大部分控件的 name 值,我们不可能都向开发人员询问,QTP 为我们
提供了一个很好的工具―――Object Spy。使用它可以为我们把每个需要的对象属性全部列出来。
打开 QTP“工具”-》“对象探测器” -》点击“对象探测器” ,当鼠标变成手的形
状时点击目标对象,QTP 自动显示其属性值与所有方法。如图:
我们可以根据获取的属性编写 VBScript 自动化用例。如
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link(”忘记密码”).Click
二. 通过专家视图修改页面中对象的属性值
在程序开发过程中界面变化是常见的问题,对象的 name 值难免会随着变化。当测试对象的 name
值变化后,我们再运行自动化测试用例时就会报错,那么除了用标题一中的方法修改外还可以通过
编程的方法来动态修改。只需要在发和变化的对象语句前加上
如:将 Web 页面中 custname 文本框的 name 值改为 myname
例:Object(description).SetTOProperty Property,Value,

这种方法不会修改对象库中对象的属性值,但运行时也不会报错。
三. 为描述性编程自动创建注释
当希望在每一个新建 action 时都增加一些头部说明,比如作者、创建日期、说明等,用 action
template
&&& 来实现最简单快捷。
&&& 方法:用记事本等文本编辑器,输入如下类似的内容:
&&&&&&&&& 'Company: https://www.172.com
&&&&&&&&& 'Author: li_qing
&&&&&&&&& 'Product:
&&&&&&&&& 'Date: Date
&&&&&&&& 然后将文件保存为 ActionTemplate.mst,并存放到 QTP 安装目录下的 dat 目录。
全局变量的定义方法
1.新建 Function Liarbry 在 public Function…外定义变量即为全局变量。
2.将全局常量值写入 EXCEL 中,执行用例时将 EXCEL 导入至 Global 中也可以实现。
四. '通过程序设定点击页面中的对象
我们在手工编写自动化测试脚本时只需要知道每个页面的 TITLE 和需要的控件 name 值就可以编写
用例了。下面是设置 http://www.baidu.com
为主页后,执行百度知道自动登录的手工编写脚本。
'点击“百度一下,你就知道”页面的二级页面“百度一下,你就知道”页面中“百度一下”按钮。
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click
'点击“百度一下,你就知道”页面的二级页面“百度一下,你就知道”页面中“登录”链接。
Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("登录").Click
五. '检查被测页面中对象是否存在
在手工编写脚本时,我们常常需要检查一下页面中每个需要测试的对象是否存在,如果对象存在,
用例被正常执行;否则应设置提示或报错退出。
'检查文本框对象是否存在(通过查源文件找出该对象的 name 值)
if Browser("百度一下,你就知道").Page("百度个人中心登录").WebEdit("username").Exist Then
MsgBox("用户名对象存在")
else
MsgBox("用户名对象不存在")
End if

六. '设定复选框为选中状态
Browser("百度一下,你就知道").Page("百度个人中心登录").WebCheckBox("mem_pass").Set "ON"
(注:如果是记录用户名密码状态的复选框,手工编写则会出错。
原因:
1.登录密码被加密,每次生成的密文是不相同的,没法手工编写。
2.选中记录状态的复选框时,系统会读取本次生成的用户名和密文。所以通过计算得出的密文或以
前登录使用的密文与本次的密文是不相同的,所以记录登录状态的复选框只能通过软件录入)
七. '设定用例等待执行时长(以秒为单位)
'设定等待时长为 10 秒
Wait(10)
八. '参数化

九. QTP 调用文件时使用相对路径
在 QTP
的使用当中,很多情况下需要引用其它的一些东西,如关联公用的存取对象库,调用其它的
test
的 Action,或者,调用某一个 vbs 文件,这时需要 QTP 能够识别的路径,你可以使用绝对路径,
但是使用绝对路径在移值的时候就会出现很多问题了,这里就应该考虑用相对路径了,QTP 本身提
供了这样的机制。
首先,你在 tools-options 当中(可能不同版本之间有区别),看到设置 Folder 的 TAB 页,在里面,
设置你相对路径的前面部分,如,一般你会把一个项目自动化的所有的东西都放在同一个目录下
(c:\auto\test),这时,你就可以把 c:\auto\test 加进来,如:你现在有一个文件,它的绝对路径为
“c:\auto\test\11.vbs”,你想要在程序当中引用它,你就可以这样写“..\test\11.vbs”,QTP 会自动的去你
设置的 Folder 下面去搜索这一个文件了。
十. 在 QTP 中调用 C#编写的 DLL 文件
1. 创建 C#项目
在 Microsoft Visual Studio 中创建一个 test
项目,代码如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace test
{
&&& public class datatest
&&& {
&&&&&&& public int addtest(int a, int b)
&&&&&&& {
&&&&&&&&&&& return a + b;
&&&&&&& }
&&& }
}
然后在生成 dll 文件
2. 在 QTP 中调用.DLL 文件
然后在生成 dll 文件
在 qtp
中,方法通 DotNetFactory.CreateInstance 方法来找到 DLL 并调用
代码如下:
set& dfc =DotNetFactory.CreateInstance("test.datatest","D:\scrīpt\qtpdll\test\test\bin\Debug\test.dll")
msgbox dfc.addtest(2,3)
运行脚本,会弹出一个对话框,上面显示 “5”

十一. ‘描述性编程为动态文本框赋值
在自动化测试活动中经常会遇到为动态生成的文本框赋值的情况。例如:在订票系统中订一张票时,
在下一页面只只显示一条记录;如果客户选择订两张以上的票据时,系统会自动生成相应数量的空记
录数,那么此时自动化测试工具运行时就会出现问题。解决的方法如下:
我在 QTP 提供的测试网站做了如下操作
建立登录用户 test
登录后选择订两张票,在后面填写乘客信息时会生成两条乘客信息(必录)
使用循环数组下标的方式计算出每个文本框的动态 name 值为每位乘客填写信息。
只要数组中用户信息定义没错,用例就没问题。
代码如下图:
十二. ‘添加虚拟对象
随着当前技术的日新月异,为了使产品更加美观,产品中出现了更多的特效,比如:Flash 动画,而
我们的产品就建立在这些 Flash 当中,那么当 Flash 中有按钮的时候我们录制自动化用例时就会遇到
困难,因为很多自动化工具无法把 Flash 中的按钮有效的识别成对象。
解决方案:QTP 中的虚拟对象识别技术为我们很好的解决了这个问题。
剩余42页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论1