1、 页面对象封装思想
依据PageObject的思想,把每一个页面的元素和元素对象的方法都封装为页面对象的子对象和对象方法。
a) 把页面的所有的控件元素封装为所在页面的子对象。
初始化init方法:
把所使用的页面元素封装为页面的子对象
调用检查页面元素是否存在的的公共函数(如果有不存在会返回False)
' 初始化界面对象并验证对象是否存在
Public Function Init()
ChildObjects = CreateObject("Scripting.Dictionary")
With ChildObjects
.Add "Login_Browser", Browser("name:=Web Tours")
.Add"Login_Page",ChildObjects.Item("Login_Browser").Page("title:=Web Tours")
.Add "Login_Frame",ChildObjects.Item("Login_Page").Frame("name:=navbar")
.Add "UserName", ChildObjects.Item("Login_Frame").WebEdit("name:=username")
.Add "Password", ChildObjects.Item("Login_Frame").WebEdit("name:=password")
.Add "Submit", ChildObjects.Item("Login_Frame").Image("name:=login")
End With
Init = IsContextLoaded(ChildObjects) ' 检查界面层对象是否存在
End Function
b) 把页面元素的操作方法封装在一个业务方法中
Public Function Login(user,password)
ChildObjects.Item("UserName").Set user
ChildObjects.Item("Password").Set password
ChildObjects.Item("Submit").Click
End Function
c) 创建类函数
由于QTP是不提供从外部文件中读取类的方法,因此我们在这里添加一个创建类的函数
Public Function CreateLogin()
Dim ObjLogin
Set ObjLogin=new LoginPage
Set CreateLogin=ObjLogin
End Function
d) 使用例子
Public Function Login(sUserName,sPassword)
Dim objLogin
Dim objLoginSuccess
set objLogin=CreateLogin()
objLogin.init()
call objLogin.Login(sUserName,sPassword)
set objLoginSuccess=CreateLoginSuccess()
objLoginSuccess.init()
'msgbox objLoginSuccess.Login_Check()
Login=objLoginSuccess.Login_Check()
End Function
2、业务脚本(QTP)
原则:每个测试模块对应一个QTP TEST,每个测试用例对应一个Action,每个Test中都有一个Main Action,Test运行时只运行Main Action,Main Action 通过所读取得用例名称来调用对应的Action
1)读取TestCases.xls中和测试模块名称相同的工作表(工作表中为测试模块的测试用例),每个测试用例对应QTP TEST中的一个 Action
2)根据用例名称和是否测试条件来导入测试数据到相应的Action并运行Action,(导入到Datatable的Excel文件应该为Microsoft Office Excel 97-2003 工作表类型)
3)设置TEST只运行所要选择的Action的方法:Test所在的文件夹,进入Action0目录,修改Script.mts文件
3、 Drive.vbs:进行集中运行所需要测试的测试模块脚本(QTP TEST)
读取Testcases.xls中的TestConfig工作表中的测试模块,根据所要测试的模块名称,调用对应的(名称相同)Test(QTP脚本)
4、测试数据:包括TestConfig (测试模块的列表),每个模块的测试用例工作表,(工作表的名称和模块名称相同)和temp 工作表(为导入数据使用)