QTP:数据驱动:For循环

时间:2014-08-17 15:28:43

标签: automation qtp hp-uft

目标:使用多个用户登录示例航班应用程序

Excel文件:

agentName密码
user1汞
user2汞
user3汞
user4 mercury

QTP代码:

datatable.Import "D:\QTP\TestData\login credentials.xls"
Dim i
Dim iRow
iRow = datatable.GetRowCount

For i = 1 to iRow

systemutil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"

Dialog("Login").WinEdit("Agent Name:").Set datatable.Value("agentName")
Dialog("Login").WinEdit("Password:").Set datatable.Value("Password")
Dialog("Login").WinButton("OK").Click

systemutil.CloseProcessByName"flight4a.exe"

datatable.SetNextRow

Next

QTP运行脚本16次。 'i'的值从1-4开始,然后再设置为1.为什么? 指针应该理想地离开for循环。 你能解释一下原因吗?

1 个答案:

答案 0 :(得分:2)

您的脚本可能设置为“在所有行上运行”,这意味着它将为全局数据表中的每一行运行一次脚本。执行时,您也循环遍历数据表的每一行,所以您正在做的就是这个......

Iteration 1
  Loop 1
  Loop 2
  Loop 3
  Loop 4
Iteration 2
  Loop 1
  Loop 2
  Loop 3
  Loop 4
Iteration 3
  Loop 1
  Loop 2
  Loop 3
  Loop 4
Iteration 4
  Loop 1
  Loop 2
  Loop 3
  Loop 4

这应该是您看到脚本执行16次(4 x 4 = 16)的原因。将脚本设置为仅运行一次迭代,或者停止脚本在内部循环数据表。