• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

透析QTP自动化测试框架SAFFRON

发布: 2009-5-25 19:09 | 作者: 网络转载 | 来源: 测试时代采编 | 查看: 362次 | 进入软件测试论坛讨论

领测软件测试网

4.4 给指定字符串前后加双引号

在BrowseTo函数的定义脚本中,调用了一个名为Quote的函数,该函数的定义如下所示:
     ' generates a string with embedded/surrounding quotes
     Public Function Quote (txt)
      Quote = chr(34) & txt & chr(34)
     End Function

该函数的作用是给指定的字符串前后加上双引号字符,例如下面代码
     Msgbox "The message is " & Quote("hello world!")

执行结果显示如图所示。

如果我们不使用这个函数,则需要这样写我们的代码来实现同样的功能:
     Msgbox "The message is ""hello world!"""

很明显,这样的写法写出来的代码的可读性和可维护性都差一截。

4.5 点击链接

作为一个针对WEB应用的脚本框架,除了能启动浏览器导航到指定的页面外,还需要针对页面的各种元素进行测试操作,例如链接的点击、按钮的点击操作。在SAFFRON框架中,使用Activate函数来点击链接、按钮,其函数定义如下所示:
     ' Activates an object based upon its object type
     ' objtype - the type of object should be limited to values in the object array
     ' text    - identifying text for the control - for a link, it's the text of the link
     Public Function Activate (objtype, text)
      localDesc = ""
      If thirdlevel <> "" Then
       localDesc = GenerateDescription(level(2))
      Else
       localDesc = GenerateDescription(level(1))
      End If
     
      AutoSync() 
     
      Select Case objtype
      Case  "Link"
       Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click"
       Report micPass, "Link Activation", "The Link " & Quote(text) & " was clicked."
      Case "WebButton"
       Execute localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click"
       Report micPass, "WebButton Activation", "The WebButton " & Quote(text) & " was clicked."
      End Select
     End Function

函数首先判断对象的类型,然后根据对象类型分别处理,如果是链接对象,则通过以下语句组合成可执行的VBScript语句,然后用Execute函数来执行:
     Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click"

如果是按钮对象,则组合成:
     Execute localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click"

在这里,调用了GenerateObjectDescription函数,GenerateObjectDescription函数的作用与GenerateDescription函数的作用类似,都是用于返回一个测试对象的描述,不同的是GenerateObjectDescription函数需要传入测试对象的描述数组,GenerateObjectDescription函数的定义如下:
     ' Generates an object description based upon the object, and objectDescription arrays
     ' obj - name of the object in the object array
     ' prop - additional property to help uniquely identify the object
     ' returns - a string representative of the object description
     Public Function GenerateObjectDescription (obj, prop)
      i = IndexOf(object, obj)
      ndesc = ""
        If i <> -1 Then
       ndesc = obj & "(" & Quote(objectDescription(i)) & "," & Quote(prop) & ")."
      End If
      GenerateobjectDescription = ndesc
     End Function

有了Activate函数,我们在写脚本的时候就可以充分利用,简化脚本的编写,例如下面是两句简单的脚本,分别点击页面上的一个链接和一个按钮:
     Activate "Link", "Person"
     Activate "WebButton", "Search"

在Activate函数中,调用了一个名为AutoSync的函数,该函数的作用与QTP的Sync方法是一样的,只是在外面封装了一层,函数定义如下所示:
     ' waits for the web page to finish loading
     Public Function AutoSync
         Execute GenerateDescription("Browser") & "Sync"
     End Function
     AutoSync函数用于等待WEB页面加载完成。

4.6 一个小例子

到现在为止,我们可以使用SAFFRON的Launch、BrowserTo和Activate函数来编写简单的脚本启动浏览器,导航到指定的页面,点击链接和按钮,例如下面就是一个综合了这几个功能的脚本:
     ' 启动浏览器
     Launch "website","http://127.0.0.1:1080"
     ' 导航到“http://127.0.0.1:1080/WebTours”
     BrowseTo "http://127.0.0.1:1080/WebTours/"
     ' 点击名为“administration”的链接
     Activate "Link","administration"

该脚本调用SAFFRON框架的Launch函数启动IE浏览器,然后导航到“http://127.0.0.1:1080/WebTours”,点击如图所示的页面中名为“administration”的链接。

脚本的测试结果如图所示。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

52/5<12345>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网