[原创]在QTP中使用描述性编程

上一篇 / 下一篇  2007-06-24 13:32:48 / 个人分类:QTP

如需转载或者任何使用,请和笔者联系.谢谢.

背景介绍:在QTP使用中描述性编程是一个提高QTP脚本的利用率的很好的方式。

术语:描述性编程,环境变量,正则表达式

描述性编程介绍:通常QTP是根据对象库来识别不同的对象,而描述性编程是QTP外另一种识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来达到识别对象的目的。

说明,本例子是以17testing的登陆界面为测试页面进行描述的。(URL[url]http://www.17testing.com/bbs/logging.php?action=login[/url])。本例子使用QTP9.0进行操作。

步骤一、录制脚本

Browser("一起测试网软件测试论坛::软件测试专业网站").Page("一起测试网软件测试论坛::软件测试专业网站").WebEdit("username").Set "222"

这是录制一个输入用户名的操作。

 

步骤二、初级描述性编程

Browser("title:=一起测试网软件测试论坛::软件测试专业网站.*").Page("title:=一起测试网软件测试论坛::软件测试专业网站.*").WebEdit("type:=text","name:=username").Set "222"

使用SPY查看对象属性,然后进行脚本的强化修改。这边有个小技巧,就是使用了.*,这是一个正则表达式的应用,因为在测试用,发现BrowserPagetitle对象是“一起测试网软件测试论坛::软件测试专业网站- powered by Discuz!”使用正则能是参数化简单一些而已。

 

步骤三、描述性编程的提高

Dim obj_Desc

Set obj_Desc = Descrīption.Create

obj_Desc(“type”).value= “text”

obj_Desc(“name”).value= “username”

Browser("title:=一起测试网软件测试论坛::软件测试专业网站.*").Page("title:=一起测试网软件测试论坛::软件测试专业网站.*").WebEdit(obj_Desc).Set "222"

使用SPY查看对象属性,然后进行脚本的强化修改。这边有个小技巧,就是使用了.*,这是一个正则表达式的应用,因为在测试用,发现BrowserPagetitle对象是“一起测试网软件测试论坛::软件测试专业网站- powered by Discuz!”使用正则能是参数化简单一些而已。

 

步骤四、使用自定义的环境变量

file>>setting>>environment中选择user-defined,增加三个环境变量。

browser="一起测试网软件测试论坛::软件测试专业网站.*".

page="一起测试网软件测试论坛::软件测试专业网站.*".

wededit_username="username"

这样脚本被修改为:

Pbrowser=environment.Value("browser")

Ppage =environment.Value("page")

Dim obj_ text

Set obj_text = Descrīption.Create

obj_ text(“type”).value= “text”

obj_text(“name”).value=environment.Value("wededit_username ")

Browser("title:="&Pbrowser).Page("title:="&Ppage).WebEdit(obj_ text).Set "121212"

当然参数化的方式很多,这边介绍的是使用环境变量

 

步骤五、使用导入环境变量

<Environment>

      <Variable>

             <Name>wededit_username</Name>

             <Value>username</Value>

      </Variable>

      <Variable>

             <Name>page</Name>

             <Value>一起测试网软件测试论坛::软件测试专业网站.*</Value>

      </Variable>

      <Variable>

             <Name>browser</Name>

             <Value>一起测试网软件测试论坛::软件测试专业网站.*</Value>

      </Variable>

</Environment>

你可以手工导入,也可以用方法LoadFromFile自动导入。

 

总结:优点是当对象一些属性变更以后,脚本能更容易维护。比如说对于一些通用的对象,比如说saveresetcancel等按钮,一个页面3个,30个页面就90个对象,假如save变成保存,那对象库就会有很大改动了。而使用了描述性编程只需要在导入XML的地方该一个值就好了。当然描述性编程的作用远远不止这些,这次只是抛砖引玉,共同进步。


TAG: QTP

917782861的个人空间 引用 删除 917782861   /   2009-06-28 14:03:07
5
 

评分:0

我来说两句

Open Toolbar