2013-02-01 115 views
1

我有一个包含许多子程序和函数的qtp脚本。我正在自动对应用程序进行测试。该应用程序需要多次测试不同的数据集。现在右脚 脚本读取第一组数据并继续,直到脚本用完。我想不出任何脚本一旦到达脚底就会回到脚本的顶部。如果一切都在主要方法之下,那将很容易。没有主要的方法只是从脚本的顶部到底部运行多个子例程和函数。在QTP中连续运行VBScript

+0

第一个问题是这个 - 你试图通过重复执行相同的测试来完成什么?除此之外,您可以使用OTA界面反复从VB脚本运行相同的测试,也可以使用Recovery.Activate执行重新启动测试的恢复场景(可能不是最佳选择)。 – BrianJM

+0

@BrianJM我正在测试多组相似的数据。尝试创建不同的用户并通过提供的不同服务注册他们。 – ilaunchpad

+0

我明白了。我误解了这个问题。我以为你已经有了一些数据设置的行,你想不中断地重复运行相同的行。你只需要设置你的运行设置并设置适当的数据。 – BrianJM

回答

0

听起来好像你正在尝试数据驱动你的测试。如果数据表中有多行,则可以指示QTP为数据表中的每行运行一个操作(或整个测试)。

要做到这一点测试右键单击测试流程中的测试,选择设置,然后选择在所有行上运行单选按钮。

Setting for test iterations 对于相应的操作,请右键单击 - > Action Call Properties。

0

我通常使用类似的脚本:

Option Explicit : main 

Sub main() 
    Do 
     ' This initializes a test for me. The test resides in an 
     ' homebrew AutomatedTest object  
     Set automatedTest = [new AutomatedTest] 
     automatedTest.Project = "XYZ" 
     automatedTest.PickupFolder = "C:\TestScenarios\" 
     automatedTest.Initialize 

     ' This line starts my test 
     automatedTest.Start 

     Set automatedTest = Nothing 

    Loop Until (CreateObject("WScript.Shell").Popup("Next file will be executed in 10 seconds." & vbNewLine & _ 
      "Press OK to execute immediately or Cancel to stop Autorun.", 10, "Autorun", 1 or 32 or 4096) = 2) '2 = cancel 
End sub 

如何要实现它,你可以看到自己的Do/Loop行动提供了一个不断循环,而WshShell.Popup提供了一种方法之间取消如果在一段时间后没有采取任何措施,则继续测试并继续。如果您想在无人值守的情况下运行测试,那么这很方便。

0

尝试1.运行中测试的所有行选项 - >设置 - >运行 或 2.在您的测试,

添加以下代码 totalrows = Datatable.getrowcount

用于行= 1 totalrows //整个测试代码 下一个