首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

qtp脚本及对象简略解析

2013-10-08 
qtp脚本及对象简单解析?概述最近一段时间,负责调试QTP不能跑通的一些问题,对一些比较通用的处理办法,作出

qtp脚本及对象简单解析

?

概述

最近一段时间,负责调试QTP不能跑通的一些问题,对一些比较通用的处理办法,作出一些总结。

我们都知道,QTP是可以通过模拟用户操作,然后进行脚本的录制的。但是,他总是不尽如人意,或多或少就会出现问题,其实这些问题中的大部分,都可以通过对脚本的简单调整,来解决,下面就一一详细说明。

QTP中的对象

实战QTP的对象

Browser("新建选项卡").Page("登陆").WebEdit("username").Set "root"

Browser("新建选项卡").Page("登陆").WebEdit("password").Click

Browser("新建选项卡").Page("登陆").WebEdit("password").SetSecure "4f5db9bf846984f5bc56bf49"

Browser("新建选项卡").Page("登陆").Link("登录").Click

在实际录制中,发现机构用户管理下的机构用户树,点击+号展开用户的操作,无法录制,不能识别这个动作

????? 问题解决:

(1)使用object spy,发现该对象可以识别,但是录制时,就是不能产生对应的脚本。进一步测试,发现+号右边的文件夹图标可以点击,决定使用脚本来试一下。在QTP中,点击工具条的这个图标qtp脚本及对象简略解析,然后点击添加对象,添加相应的+号位置对象到对象库中,并且在脚本中加入如下语句:

Browser("XX数据平台").Page("XX数据平台").Frame("leftTree").WebElement("WebElement_2").Click

其中WebElement_2为刚才添加的对象的名字。

进行完以上以后,我们点击run ,测试下刚才的修改。测试后会发现,+号能被点击,但是识别过程很慢,原因是启动了QTP的智能识别,会导致对象识别时间加长,这显然不是我们想要的,进一步优化这个对象的识别过程。

(2) 首先来分析下,为什么对象不能被立即识别,而非得启动智能识别。首先,QTP对对象的识别,是一种称之为描述性编程(description programing)的东西,它根据对象的属性描述,来进行对象的甄别。有了这个知识,我们就继续往下分析,我们点击qtp脚本及对象简略解析打开对象库面板,点击WebElement_2元素,其对象图如下,在右侧的Test Object details下面是这个对象的所有要被识别的属性,我们发现,其重要属性(description properties),下面只有2个值,这2个值在页面进行匹配时,有点儿过于模糊,所以根本无法对对象进行寻找,只有交给优先级稍低的智能识别,那么我们怎么来解决呢qtp脚本及对象简略解析

在我们之前提到的元数据中,找到webelement,点击右边Mandatory properties下面的add/remove按钮,添加一个他的属性class,然后我们再重新识别+号,并修改脚本中,此次识别到的对象名称,然后再测试,发现这次一下就识别到了,收工

首先要明确,录制可以识别,回放找不到时,那么90%是因为录制时,对象的信息不够全,可以通过给对象添加更明确的属性,来让QTP回放引擎,快速寻找对象。本例不通过此办法,而通过另一个,更应该学会的办法来解决这个问题—通过元素的id属性,唯一确定元素。

脚本如下

Browser("新建数据集").Page("无标题文档").Frame("11").WebElement("html id:=rqdataDiv_schema_全部").Click

其中的 WebElement("html id:=rqdataDiv_schema_全部")的含义为找到id为rqdataDiv_schema_全部的webelement元素(span或者div),那么,只要在页面知道的元素的id,就可以在QTP中直接定位元素,非常方便

开发与测试的配合,开发可测试的应用程序

通过以上问题的分析,我们发现,QTP脚本的录制,与开发出来的程序的可测试性,密切相关,所以,在开发过程中,应该积极与测试相配合,开发具有高可测试性的程序,其中以下几点需重点对待

(1)?????? 使用W3C的标准标签,以便在QTP的对象库中能够找到其原型

(2)?????? 重要的页面元素,必须有自己的唯一标识,例如加ID属性,title属性,name属性等

?

热点排行