关键字驱动测试框架
来源:互联网 发布:手机转换格式软件 编辑:程序博客网 时间:2024/05/16 01:41
自动化测试框架发展的第三个阶段是关键字驱动测试框架阶段,它是当前比较流行的一种框架之一,并且现在的自动化测试工具QuickTest已经将关键字驱动框架融入到工具中。在录制过程中自动化测试工具会将对象及操作属性保存到对象库中。
录制完成后的每个测试步骤主要有三个元素组成:
- Item:指对象名,可以是一个窗口、按钮等;
- Operation:指要执行的动作,如Select、Click等;
- Value:操作动作所输入的数据值;
以QuickTest自带的飞机订票系统为例,录制其登录过程,生成的代码如下:
Dialog("Login").WinEdit("Agent Name:").Set "test"
Dialog("Login").WinEdit("Password:").SetSecure "4d410e55b694bada39e235f9896e6eb810ba0e60"
Dialog("Login").WinButton("OK").Click
这是QuickTest以关键驱动的方式生成的代码,但也可以通过代码来实现关键字驱动测试。关键字驱动测试最核心的是关键字表格。以飞机订票系统的登录为例,其关键字表格见表19-1。
父对象
孩子对象
描述
事件
值
Dialog
text:=Login
Launch
D:\QuickTest Professional\samples\flight\app\flight4a.exe
Dialog
WinEdit
attached text:=Agent Name:
Set
test
Dialog
WinEdit
attached text:=Password:
Set
mercury
Dialog
WinButton
text:=ok
Click
关键字驱动的思路是将关键字表中的对象及数据提取出来并构造成每个测试步骤,如步骤:
Dialog("Login").WinEdit("Agent Name:").Set "test"
需要将关键字表中的对象、属性及输入的数据读取出来,将它们构造同以上格式的代码步骤,通过这种方式来实现关键字驱动的功能。
下面是调试好的一个的关键字驱动的框架,代码如下:
—————————————————————————————————
''
' 工程名:关键字驱动
'
' 方法:
' GetExcelCells —————读取单元格中的值
' GetExcleSheetRowsCount—————获取关键字驱动表中的行数
' oParentObject—————构造父对象
' oChildObject—————构造子对象
' oEventObject —————对对象属性赋值
'
' 版本:v1.0
'作者:黄文高
'时间:2011-01-27
'———————————————————————————————————
Dim arrObjectName
Dim oParent
Dim oChild
Dim oClassName
Dim oValue
dim object
'———————————————————————————————————
''
' 函数名:GetExcelCells
'
' 参数:
' ExcelPath —————关键字驱动表的路径
' SheetName—————关键字驱动表的sheet名
' SheetRow—————单元格中的行
' SheetColumn—————单元格中的列
'
'时间:2011-01-27
'——————————————————————————————————
Function GetExcelCells(ExcelPath,SheetName,SheetRow,SheetColumn)
Set ExcelBook = CreateObject("Excel.Application")
Set ExcelSheet = CreateObject("Excel.Sheet")
Set myExcelBook = ExcelBook.WorkBooks.Open(ExcelPath)
Set myExcelSheet = myExcelBook.WorkSheets(SheetName)
SheetValue = myExcelSheet.cells(SheetRow,SheetColumn).value
GetExcelCells = SheetValue
ExcelBook.Quit
set ExcelSheet = Nothing
Set ExcelBook = Nothing
End Function
'——————————————————————————————————
''
' 函数名:GetExcleSheetRowsCount
'
' 参数:
' ExcelPath —————关键字驱动表的路径
' SheetName—————关键字驱动表的sheet名
'
'时间:2011-01-27
'——————————————————————————————————
Function GetExcleSheetRowsCount(ExcelPath,SheetName)
Set ExcelBook = CreateObject("Excel.Application")
Set ExcelSheet = CreateObject("Excel.Sheet")
Set myExcelBook = ExcelBook.WorkBooks.Open(ExcelPath)
Set myExcelSheet = myExcelBook.WorkSheets(SheetName)
GetExcleSheetRowsCount = myExcelSheet.UsedRange.Rows.Count
ExcelBook.Quit
set ExcelSheet = Nothing
Set ExcelBook = Nothing
End Function
'——————————————————————————————————
''
' 函数名:oParentObject
'
' 参数:
' parentobject —————关键字驱动表的Parent列
'
'时间:2011-01-27
'——————————————————————————————————
Function oParentObject(parentobject)
arrObjectName = array("text:=Login","regexpwndtitle:=Flight Reservation")
'在这里可以添加其它的一些对象类型,如Browser对象
'因为在关键字驱动表中可能存在多种对象
Select Case LCase(parentobject)
Case "window"
Set object = window(arrObjectName(1))
Case "dialog"
Set object = dialog(arrObjectName(0))
Case else
print "对象错误"
End Select
End Function
'——————————————————————————————————
''
' 函数名:oChildObject
'
' 参数:
' childobject —————关键字驱动表的Child列
' childobjectName —————关键字驱动表的Description列
'
'时间:2011-01-27
'————————————————————————————————
Function oChildObject(childobject,childobjectName)
If childobject <> "" Then
'在这里可以添加其它的一些子对象类型
'如WebList对象
Select Case LCase(childobject)
Case "winedit"
Set object = object.WinEdit(childobjectName)
Case "winbutton"
Set object = object.WinButton(childobjectName)
End Select
End If
End Function
'———————————————————————————————————
''
' 函数名:oEventObject
'
' 参数:
' eventobject —————关键字驱动表的Event列
' oValue —————关键字驱动表的Value列
'
'时间:2011-01-27
'——————————————————————————————————
Function oEventObject(eventobject,oValue)
If eventobject <> "" Then
'在这里可以添加其它的多种属性,如Type
Select Case LCase(eventobject)
Case "set"
object.set oValue
Case "click"
object.click
Case else
print "属性错误"
End Select
End If
End Function
systemutil.Run "D:\QuickTest Professional\samples\flight\app\flight4a.exe","","",""
For i =5 to GetExcleSheetRowsCount("C:\Data.xls","TestCase")
oParent = GetExcelCells("C:\Data.xls","TestCase",i,1)
oChild = GetExcelCells("C:\Data.xls","TestCase",i,2)
oClassName = GetExcelCells("C:\Data.xls","TestCase",i,3)
oEvent = GetExcelCells("C:\Data.xls","TestCase",i,4)
oValue = GetExcelCells("C:\Data.xls","TestCase",i,5)
oParentObject oParent
oChildObject oChild,oClassName
oEventObject oEvent,oValue
Next
摘自《QTP自动化测试与框架模型设计》书中的关键字驱动测试框架
- 关键字驱动测试框架
- 关键字+数据驱动自动化测试框架
- 用TestComplete实现一个关键字驱动测试框架
- 关键字驱动测试方法
- 关键字驱动测试
- 关键字驱动测试
- 如何用QTP采用关键字驱动测试框架来完成TechExcel DevTest产品的回归测试
- appium 关键字驱动自动化测试
- 亿能QTP关键字驱动自动化测试框架新加入实时监控功能!
- Robotium 数据驱动测试框架
- Robotium 数据驱动测试框架
- 关键字驱动测试研究 (一)
- 关键字驱动测试(keyword-driven)
- QTP关键字驱动框架 - RelevantCodes[1]One
- 自动化测试之 数据驱动 和 关键字驱动
- excel数据驱动接口测试框架
- 基于Android平台应用程序的关键字驱动自动化测试
- 自动化测试关键字驱动的原理及实现
- 数据结构基础1:线性表(1)
- 不修改源代码实现Libjpeg内存编解码jpeg
- 指针和数组
- 网络游戏程序员须知 基础概念篇
- 通过超级程序员的唯一道路
- 关键字驱动测试框架
- fedora15 ati 显卡驱动安装
- char *转换为WCHAR[]
- C#常用日期格式处理转换
- python,mysql,MySQLDb支持中文(utf-8编码)
- WinCE EBOOT中的BootPart分析 基于WinCE6.0
- 字符串和指针
- QQ验证码识别源代码(DOT NET1.1)
- Android 语音识别学习小记--暑期大学生博客分享大赛 - 2011 Android 成长篇