外部数据源驱动QTP运行


利用外部数据驱动脚本的运行,这是经常用到的方法,这样可以很方便的组织测试数据。

下面以常见的几种方式进行说明。

1:数据文件以excel格式组织
用Excel组织测试数据是最常用的了。

此种驱动可以采用两种方式,将数据Import到DataTab中或是利用com来操纵Excel文件。

下面给出这两种方式的示例代码。(输入flight用户名和密码)

QTP参数化 - 杰哥 - 杰哥在线

  方式一、导入到DataTable中
'获得数据文件路径,并将数据文件导入到DataTable运行表中
DataStr= "d:\data.xls"
DataTable.AddSheet("TestData")
DataTable.ImportSheet  DataStr,"Sheet1","TestData"
wait 1
      '输入用户名和密码
For i=1 to DataTable.GetSheet("TestData").GetRowCount
 systemutil.Run "D:\Program Files\QuickTest Professional\samples\flight\app\flight4b.exe"
 DataTable.SetCurrentRow i  '把i设置为当前执行行
 UserName=DataTable.Value("UserName","TestData")
 PassWord=DataTable.Value("PassWord","TestData")
 Dialog("Login").WinEdit("Agent Name:").Set UserName
 Dialog("Login").WinEdit("Password:").SetSecure  PassWord
 wait 1

  Dialog("Login").WinButton("Cancel").Click

Next

方式二、利用com操纵Excel

DataStr= "d:\data.xls"
Set ExlObj=CreateObject("Excel.Application")
ExlObj.Visible = false' 设置为true的情况,文档会打开
ExlObj.DisplayAlerts = false
Set book=ExlObj.Workbooks.Open(DataStr)
Set sheet=book.Worksheets("Sheet1")
For i=2 to sheet.usedrange.rows.count
  systemutil.Run "D:\Program Files\QuickTest Professional\samples\flight\app\flight4b.exe"
  UserName=ExlObj.WorkSheets("Sheet1").Cells(i,1)  '或者UserName=sheet.Cells(i,1)
  PassWord=ExlObj.WorkSheets("Sheet1").Cells(i,2)  '或者PassWord=sheet.Cells(i,2)
  Dialog("Login").WinEdit("Agent Name:").Set UserName
  Dialog("Login").WinEdit("Password:").SetSecure PassWord
  wait 2
  Dialog("Login").WinButton("Cancel").Click
  Next
  ExlObj.Quit

Set ExlObj = nothing

2:数据文件以txt格式组织

QTP参数化 - 杰哥 - 杰哥在线

Const ForReading=1
TFilePath= "d:\data.txt"
Set Fso3 = CreateObject("Scripting.FileSystemObject")
Set DataFile= Fso3.OpenTextFile(TFilePath,ForReading,False)
DataFile.SkipLine
Do while DataFile.AtEndOfLine<>true
     systemutil.Run "D:\Program Files\QuickTest Professional\samples\flight\app\flight4b.exe"
      ReadString = DataFile.ReadLine
      DataStr=split(ReadString,",")
      Dialog("Login").WinEdit("Agent Name:").Set DataStr(0)
      Dialog("Login").WinEdit("Password:").SetSecure DataStr(0)
      wait 2
   Dialog("Login").WinButton("Cancel").Click
loop
DataFile.close

Set Fso3=Nothing

3:数据文件以数据库组织

下面代码是用Access做的,其他类型数据库类似

QTP参数化 - 杰哥 - 杰哥在线

 

strDB="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\data.mdb;Persist Security Info=False"
strTableName="data"
Set Conn=createobject("adodb.connection")
Set Rst=createobject("adodb.recordset")
Conn.open strDB
Rst.open "select * from "+strTableName,Conn,2,2
Dim strTest(1)
Rst.MoveFirst
Do while not Rst.eof
    systemutil.Run "D:\Program Files\QuickTest Professional\samples\flight\app\flight4b.exe"
      strTest(0)=trim(cstr(Rst.fields(1)))
      strTest(1)=trim(cstr(Rst.fields(2)))
      Dialog("Login").WinEdit("Agent Name:").Set strTest(0)
      Dialog("Login").WinEdit("Password:").SetSecure strTest(1)
      Rst.MoveNext
       wait 2
   Dialog("Login").WinButton("Cancel").Click
Loop
Rst.close

Set Conn=nothing

4:数据文件以xml格式组织

 

QTP参数化 - 杰哥 - 杰哥在线

 

Dim xmlDoc 'As DOMDocument需要引用xml对象
set xmlDoc=CreateObject("microsoft.xmldom")
xmlDoc.load("d:\testdata.xml")
Set Root=xmlDoc.documentElement
For  i = 0 To Root.childNodes.Length-1 
             systemutil.Run "D:\Program Files\QuickTest Professional\samples\flight\app\flight4b.exe"
             Set TestCases = Root.childNodes.Item(i)
                    For j = 0 To TestCases.childNodes.Length-1
                           Set TestCase = TestCases.childNodes.Item(j)
                                  If cstr(TestCase.nodeName)="UserName" Then
                                         Dialog("Login").WinEdit("Agent Name:").Set TestCase.text 
                                  end if
                                  If cstr(TestCase.nodeName)="PassWord" Then
                                         Dialog("Login").WinEdit("Password:").SetSecure TestCase.text                                                           
          End If                         
                    Next
                        wait 2
   Dialog("Login").WinButton("Cancel").Click
 Next
Set root=nothing

Set xml=nothing


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值