51Testing软件测试论坛

标题: 参数导入脚本应该如何写? [打印本页]

作者: 开朗幽默    时间: 2012-2-6 11:29
标题: 参数导入脚本应该如何写?
比如有一个用例一是登陆,包括3个action,每个action都进行了参数化,导出参数化文件,生成名称为TEST1的excel文件;还有一个用例二是退出,包括2个action,同样进行了参数化,到处文件,生成名称为TEST2的excel文件。问题是我想使用同一个参数导入的脚本,把这两个excel文件中的数据分别导入到这两个用例中,这个参数导入的脚本应该咋写?我觉得关键就是判断excel文件路径。请各位高手指教。
作者: pl80601983    时间: 2012-2-7 09:57
回复 1# 开朗幽默

外部数据源实现参数化
利用外部数据驱动脚本的运行,这是经常用到的方法,这样可以很方便的组织测试数据。相对前三种方法,这种方式数据的读取、控制稍有些麻烦。下面以常见的几种方式进行说明。
a、数据文件以excel格式组织
用Excel组织测试数据是最常用的了。此种驱动可以采用两种方式,将数据Import到DataTab中或是利用com来操纵Excel文件。下面给出这两种方式的示例代码。(输入flight用户名和密码)
方式一、导入到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("assWord","TestData")
Dialog("Login").WinEdit("Agent Name:").Set UserName
Dialog("Login").WinEdit("assword:").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("assword:").SetSecure PassWord
  wait 2
  Dialog("Login").WinButton("Cancel").Click
Next
ExlObj.Quit
Set ExlObj = nothing
    希望可以帮到你。
作者: 开朗幽默    时间: 2012-2-8 17:03
这样也还是要在脚本中输入数据文件的路径,有没有办法不输入路径来找到文件呢?
作者: andrewli    时间: 2012-2-22 17:29
学习了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2