[转载]QTP描述性编程

上一篇 / 下一篇  2010-11-22 11:00:31 / 个人分类:QTP自动化笔记

QTP描述性编程

1、使用描述性编程的时机:

      录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测试脚本中使用的对象都必须是测试对象库中的对象。

      测试过程中,有些界面元素是动态出现或动态变化的,在录制时,并没有被添加到对象库中。

      用描述性编程编写的测试脚本在运行时,QTP会使用测试脚本中给出的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行时QTP为其创建的临时测试对象版本进行匹配。

描述性编程的使用方法:

   2、 有两种描述性的开发方法:

        a、一种是“直接描述”的方式 ,通常使用正则表达式来匹配动态的窗口名或其他变化数据。

         语法格式:TestObject("PropertyName1:=PropertyValue","...","PropertyNameX:=PropertyValueX")

        如:SwfWindow("Form1").Activate

               FormName="MyForm.*"

              SwfWindow("name:=" & FormName,"text:=" & FormName).Activate

        描述性编程的“后续强迫性”:也就是说,一旦父对象开始使用描述性编程,则后续子对象都要通过“描述”的方式(在对象的框中添加属性即可)出现。

         如:SwfWindow("name:=" & FormName,"text:=" & FormName).SwfButton("text:=ON").Click不能用SwfButton("ON").Click

       使用变量的方式简化很长的描述语句

       使用“With”关键字简化代码  With.....End With

      b、 另一种是使用“Description对象”的方式,用于返回对象包含的属性

            首先要使用该语句: Set MyDescription=Description.Create()    ‘MyDescription为变量 

             FormName="MyForm.*"

              MyDescription("name").Value=FormName

              MyDescription("text").Value=FromName

              SwfWindow(MyDescription).SefButton("text:=ON").Click

         注意:在这里,测试对象的属性描述都包装在了Description对象中,用Description对象的实例来代表一个测试对象的属性描述。

     使用Description对象的方式进行描述性编程同样有“后续强迫性”问题。

3、设置Description对象的RegularExpression属性

       由于QTP把描述性编程中的的所有“描述”控件属性的值当成正则表达式来处理,所以,如果希 望输入的描述包含某些特殊符号,则在前面加“”。

       另一种方法是设置RegularExpression的属性为False。如:

       MyDescription("RegularExpression").Value=False

4、在ChildObject对象中使用Description对象

     获取父对象下的子对象,参数为空表示获取所有子对象。如果要选择性的获取子对象,则需要用描述性编程的方式给ChildObjects一个输入参数。如:

       Set MyDescription=Description.Create()

       MyDescription("text").Value="button.*"     '匹配所有名字以“button”开头的对象

       Set MychildObject=SwfWindow("Form1").ChildObjects(MyDescription)  '获取所有符合条件的控件对象集合

       ChildObjectsCount=MychildObject.Count

        For counter=0 to MychildObjectsCount-1       '遍历对象集合并执行操作

              MychildObject(Counter).Click

         Next


TAG: 描述性编程 QTP qtp 自动化

 

评分:0

我来说两句

Open Toolbar