首页 测试 工具 查看内容

透析QTP自动化测试框架SAFFRON(下)

2014-4-24 22:36| 发布者: tianzc| 查看: 703| 评论: 0

摘要:   4.7 检查对象是否存在  前面的小例子仅仅实现了启动浏览器、导航、点击链接和按钮的功能,如果要组成一个完整的测试用例,还缺少一些东西,例如检查指定的对象是否存在,在SAFFRON中,用Verify函数来实现这个 ...

  ' Selects a specific value from a listbox, or combobox

  ' objname - name of the control -- use Object Spy if you don't know the name property

  ' text - the item in the combobox to select

  Public Function SelectFromList (objname, text)

  localDesc = ""

  rv = ""

  rval = false

  If thirdlevel <> "" Then

  localDesc = GenerateDescription(level(2))

  Else

  localDesc = GenerateDescription(level(1))

  End If

  AutoSync()

  localDesc = localdesc & GenerateObjectDescription("WebList", "name:=" & objname)

  Execute "cnt = " & localDesc & "GetROProperty(" & Quote("items count") & ")"

  For i = 1 to cnt

  Execute "rv = " & localDesc & "GetItem (" & i & ")"

  If rv = text Then

  rval = true

  End If

  Next

  If rval Then

  Execute localDesc & "Select " & Quote(text)

  End If

  If rval Then

  Report micPass, "WebList Selection", "The WebList item " & Quote(text) & " was selected."

  Else

  Report micFail, "WebList Selection", "The WebList item " & Quote(text) & " was NOT found."

  End If

  SelectFromList = rval

  End Function

  假设我们需要从如图所示的界面中的"Departure City"的下拉框中选择其中一项,则可使用SelectFromList函数来实现。

  测试脚本可以这样写:

  ' 选择航班起始城市为"San Francisco"

  SelectFromList "depart","San Francisco"

  4.11 关闭浏览器

  Web页面测试的最后一个步骤一般都是关闭浏览器,在SAFFRON中,也把这个过程封装成了一个名为"CloseBrowsers"的函数,该函数的定义如下:

  ' close all opened browsers

  Public Function CloseBrowsers

  If Browser("micclass:=Browser").Exist (0) Then

  Browser("micclass:=Browser").Close

  End If

  While Browser("micclass:=Browser", "index:=1").Exist (0)

  Browser("index:=1").Close

  Wend

  If Browser("micclass:=Browser").Exist (0) Then

  Browser("micclass:=Browser").Close

  End If

  End Function

  CloseBrowsers函数会把当前所有打开的浏览器都关闭,脚本中采用描述性编程的方式获取所有对象类型为"Browser"的测试对象,然后循环逐个关闭所有这种类型的测试对象。

  5、对SAFFRON框架进行扩展

  SAFFRON是一个基本的框架,它封装了浏览器的相关测试操作、封装了一些基本对象的测试操作,例如Link、WebButton、WebEdit、WebList等控件,可用于基本的WEB页面的测试,并且简化了测试脚本的编写,可以让代码的可读性和可维护性得到增强。

  但是SAFFRON仅仅是一个基础框架,我们还需要进一步地对其扩展才能应用到实际的WEB自动化测试项目中去,例如扩展对更多的控件的支持。下面是一个对Activate函数扩展Image对象的点击操作的过程:

  (1)首先打开SAFFRON框架的VBS文件,找到开头的变量定义处,添加Image对象,让框架可以识别和支持Image对象:

  ' 扩展对Image对象的支持

  objects = "Link|WebButton|WebList|WebEdit|Image"

  objectsDescription = "micclass:=Link|micclass:=WebButton|micclass:=WebList|micclass:=WebEdit|micclass:=Image"

  (2)修改Activate方法,添加对Image对象的Click操作的支持,脚本修改成如下所示:

  ' 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."

  ' 扩展对Image类型的按钮的支持

  Case "Image"

  Execute localDesc & GenerateObjectDescription("Image", "alt:=" & text) & "Click"

  Report micPass, "ImageButton Activation", "The ImageButton " & Quote(text) & " was clicked."

  End Select

  End Function

  (3)调试和测试修改后的脚本,例如采用下面的脚本来看对Activate函数的扩展是否生效:

  ' 启动浏览器

  Launch "website","http://127.0.0.1:1080"

  ' 导航到“http://127.0.0.1:1080/WebTours”

  BrowseTo "http://127.0.0.1:1080/WebTours/"

  ' 输入用户名

  EnterTextIn "username","chennengji"

  ' 输入密码

  EnterTextIn "password","123"

  ' 单击Login按钮

  Activate "Image","Login"

  ' 单击"Flights"按钮

  Browser("Web Tours").Page("Web Tours").Frame("navbar").Image("Search Flights Button").Click

  ' 获取航班起始城市

  DepartureCity = GetTextFrom( "WebList","depart")

  ' 获取航班终点城市

  ArrivalCity = GetTextFrom( "WebList","arrive")

  ' 获取乘客数量

  PassengerNumber = GetTextFrom( "WebEdit","numPassengers")

  ' 选择航班起始城市为"San Francisco"

  SelectFromList "depart","San Francisco"

  If Verify ("Link","administration")= False then

  Reporter.ReportEvent micFail,"检查链接","链接不存在"

  Else

  ' 点击名为"administration"的链接

  Activate "Link","administration"

  End IF

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

  4.10选择列表中的一项

  在SAFFRON中,可以使用SelectFromList函数从下拉框列表(WebList对象)中选择指定的一项。SelectFromList的定义如下所示:

123

鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部