51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1628|回复: 2
打印 上一主题 下一主题

透析QTP自动化测试框架SAFFRON

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-3-6 16:33:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
框架是一组自动化测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合。可用于减少冗
余代码、提高代码生产率、提高代码重用性和可维护性。例如QTestWare就是QTP自动化测试框架
中的一类。
2、SAFFRON简介
SAFFRON是针对Web开发的一个简单的QTP测试框架原型,是Adam Gensler于06年写的,需要QTP
9.1版本以上。完整的SAFFRON脚本代码可到以下地址获取:http://www.itestware.com/ctest/inde
x.php?option=com_content&view=article&id=62:webqtp-saffron&catid=35:testing_is_believing
3、如何使用SAFFRON?
SAFFRON框架以外部VBS文件的形式出现,因此使用方法比较简单,直接在测试脚本中以资源形式
导入即可使用,如图所示:

透析QTP自动化测试框架SAFFRON
导入后,可在“Available Keywords”视图中看到SAFFRON的所有函数,如图所示:

透析QTP自动化测试框架SAFFRON
选中某个函数,拖拽到专家视图的编辑器中,如图所示:

透析QTP自动化测试框架SAFFRON
后接一个URL地址,例如“http://www.itestware.com”,即可使用SAFFRON框架中的BrowseTo函数导
航到指定的URL地址,如下脚本所示:
'BrowseTo(url)
BrowseTo "http://www.itestware.com"
4、SAFFRON框架代码剖析
为了深入了解SAFFRON,以及框架的使用方法,下面我们将分别介绍SAFFRON中的主要函数,对S
AFFRON代码进行深入剖析。
4.1 导航到指定URL
SAFFRON使用名为BrowseTo函数来负责导航到指定的URL,如果浏览器尚未启动,则先调用函数L
aunch来打开浏览器。BrowseTo函数的定义如下所示:
  1. SAFFRON使用名为BrowseTo函数来负责导航到指定的URL,如果浏览器尚未启动,则先调用函数Launch来打开浏览器。BrowseTo函数的定义如下所示:
  2.      Public Function BrowseTo (url)
  3.       thirdlevel = ""
  4.       Report micPass, "Navigate to URL", "Navigating to URL: " & Quote(url)
  5.       If initialized Then
  6.        Execute GenerateDescription("Browser") & "Navigate " & Quote(url)
  7.       Else
  8.        Launch "website", url
  9.       End If
  10.       Reporter.Filter = rfDisableAll
  11.      End Function
  12. 在脚本中,会判断是否初始化了浏览器,如果有则执行导航动作,导航到指定的URL。导航动作是执行这行脚本来完成的:
  13.      Execute GenerateDescription("Browser") & "Navigate " & Quote(url)
  14. Execute是一个用于执行指定VBScript脚本语句的函数,GenerateDescription函数的定义如下所示:
  15.      ' Generates a generic description based up on the "level" viarable
  16.      ' levelstr - will be one of the values that is in the level array
  17.      ' returns - string representative of the object hierarchy
  18.      Public Function GenerateDescription (levelstr)
  19.       l = IndexOf(level, levelstr)
  20.       If l >=0 Then
  21.        fdesc = level(0) & "(" & Quote(desc(0)) & ")."
  22.        If l >= 1 Then
  23.         fdesc = fdesc + level(1) & "(" & Quote(desc(1)) & ")."
  24.         If 2 >= l Then
  25.          If thirdlevel <> "" Then
  26.           fdesc = fdesc + level(2) & "(" & Quote(desc(2)) & "," & Quote("name:=" & thirdlevel) & ")."
  27.          End If
  28.         End If
  29.        End If
  30.       End If
  31.         GenerateDescription = fdesc
  32.      End Function
复制代码
4.2 返回测试对象的描述
GenerateDescription函数用于返回对象的描述性语句,例如,指定Browser,则返回如下语句:
     "Browser("micclass:=Browser")."
该语句代表了当前浏览器对象,并且后面加了个点号,这是为了方便后接"Navigate "这个浏览器对
象的导航操作,以及指定的URL字符串,例如"http://blog.csdn.net/testing_is_believing"。在Execu
te时,其实执行的VBScript语句如下所示:
     Browser("micclass:=Browser").Navigate "http://blog.csdn.net/testing_is_believing"
经过SAFFRON的框架封装后,则只需要使用如下语句即可达到同样的效果:
BrowseTo "http://blog.csdn.net/testing_is_believing"
4.3 启动浏览器
SAFFRON使用名为BrowseTo函数来负责导航到指定的URL,但是如果浏览器未启动,则会先调用
函数Launch来打开浏览器。Launch函数的定义如下所示:
  1.   prepares the framework for usage, and configures all internal framework
  2.      ' variables and structures
  3.      ' apptype - used to launch different types of applications based
  4.      '           upon different technologies -- currently there is only web
  5.      ' val     - string that represents what to launch
  6.      ' returns - always returns true
  7.      Public Function Launch (apptype, val)
  8.       If "website" = apptype Then
  9.        thirdlevel = ""
  10.        Report micPass, "Initialize", "Initializing Framework"
  11.        level = split(webLevels, leveldelimiter, -1, 1)
  12.        desc = split(webLevelsDesc, leveldescdelimiter, -1, 1)
  13.        object = split(objects, objectdelimiter, -1, 1)
  14.        objectDescription = split(objectsDescription, objectsDescriptiondelimiter, -1, 1)
  15.        CloseBrowsers
  16.        Set IE = CreateObject("InternetExplorer.Application")
  17.        IE.visible = true
  18.        IE.Navigate val
  19.        While IE.Busy
  20.         wait 1
  21.        Wend
  22.       End If
  23.       initialized = true
  24.       Launch = true
  25.      End Function
复制代码
可看到脚本中创建了IE的COM对象,然后设置IE的Visible属性设置为Tue,让浏览器可见,然后调用IE
对象的Navigate方法导航到指定的URL。除了创建IE的COM对象外,在Launch函数中还进行框架其它
方面的初始化。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 17:26 , Processed in 0.065996 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表