QTP+VBS框架总结(二):基于数据驱动的

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34817187/article/details/84677235

上一篇框架基层搭好了,这里开始创建测试用例并执行
1.在TestScript文件夹下创建测试脚本
创建脚本之前先建测试用例数据:在testCase下边创建login.xls
测试用例如下:
在这里插入图片描述

创建登陆脚本:login.vbs

Sub login()
''获得数据文件路径,并将数据文件导入到DataTable运行表中 
datatable.AddSheet("登陆数据")
DataTable.ImportSheet "F:\study\xxxxxxxt\testCase\login.xls","登陆","登陆数据" 
Dim datacount'测试用例数
Dim name '姓名
Dim pwd'密码
datacount = datatable.GetSheet("登陆数据").GetRowCount
For Iterator = 1 To datacount
	name= datatable("name","登陆数据")'读取表中的name数据给name
	pwd=datatable("password","登陆数据")'读取表中的password数据给pwd
	
	With Browser("登录").Page("登录页面")
		.WebEdit("name").Set name
		.WebEdit("password").Set pwd
		.WebButton("登 录").Click
	End With
	'进行判断
	If Browser("登录").Dialog("msg").Exist(3) Then
		expectvalue=datatable("期望结果","登陆数据")
		actualvalue=Browser("登录").Dialog("msg").Static("loginmsg").GetROProperty("text")
		If expectvalue=actualvalue Then
			reporter.ReportEvent micPass,"login test","测试通过"
			datatable("测试结果","登陆数据")="Pass"
		else
			reporter.ReportEvent micFail,"login test","测试失败"
			'datatable("实际结果","登陆数据")=actualvalue
			datatable("测试结果","登陆数据")="Fail"
		End If
	else
		reporter.ReportEvent micFail,"login test","输入测试数据,系统无响应"
	End if
	datatable.GetSheet("登陆数据").SetNextRow
Next
'生成测试结果
datatable.ExportSheet "F:\study\xxxxxxxxxxxxx\testResult\登陆数据.xls","登陆数据"
End Sub

这里罗列一些经常会用的的datatable操作:

DataTable.ImportSheet "F:\xx \xxx.xls","表中某一sheet名","导入到qtp的某一action名" 
经常用到的datatable操作:
1.取某一单元格值=datatable.Value("列名","表名")
2. 行数=atatable.GetSheet("表名").GetRowCount 【可用于控制循环次数】
3. 指向下一行=datatable.GetSheet("表名").SetNextRow
4. datatable.AddSheet("action1") 用于给datatable中加一个action1表
5. datatable("列名","表名") = "pass"表示给某一单元格输入pass
6. datatable.GetSheet("表名").SetCurrentRow(4) 设置运行行数为第4行
7. datatable.Export("F:\XXX \XXX.xls") 导出表至F盘生成xxx.xls文件

2.测试执行的控制脚本:
在TestScript文件夹下测试控制脚本:Controller.vbs
[路径输入自己的就好了]

'执行import文件,要不没办法导入其他文件
ExecuteFile "F:\xxxxxxxxxxxxxxxxxxxx\import.vbs"
'启动应用程序
import "F:\xxxxxxxxxxxxxxxxx\openapp.vbs" '加载启动程序脚本
openapp "iexplore.exe","iexplore.exe","http://10.1xxxxxxxxxxxxxxxxxxx/login.html"
'测试用例加载
'import "F:\studyxxxxxxxxxxxxxxxxxxxxxxxxx\loadcase.vbs"
'loadcase "F:\study\xxxxxxxxxxxxxxxxxxxxxx\case.xls","登陆"
'测试对象加载
import "F:\study\xxxxxxxxxxx\commonLib\loadtsr.vbs" '加载测试对象脚本
loadtsr "F:\study\xxxxxxxxxx\testObject\login.tsr" '导入登陆对象
loadtsr "F:\study\xxxxxxxxxxxxxx\testObject\loginout.tsr" '导入登出对象
'执行流程操作
import "F:\study\xxxxxxxxxx\testScript\函数库\login.vbs"
import "F:\study\xxxxxxxxx\testScript\函数库\loginout.vbs"
Call login()

3.启动qtp脚本—Start.vbs
这个脚本主要实现一键启动。所有脚本都完成后,就可以直接点击这个vbs脚本–它会启动qtp这个应用,然后执行登陆操作!!

Dim qtapp
Set qtapp=CreateObject("quicktest.application")
qtapp.Launch
qtapp.Visible=True
qtapp.Open "F:\study\xxxxxxxxxxxxxxxx\testScript\Controller"
qtapp.Test.Run
qtapp.Quit
Set qtapp = Nothing

4.查看结果
在testResult中查看生成的结果
在这里插入图片描述
框架以前做的,大体思路是这样!真正使用还需要慢慢扩展!

猜你喜欢

转载自blog.csdn.net/sinat_34817187/article/details/84677235
QTP