在QTP中连续运行VBScript

在QTP中连续运行VBScript,vbscript,qtp,Vbscript,Qtp,我有一个带有许多子程序和函数的qtp脚本。我正在自动化一个应用程序的测试。应用程序需要对不同的数据集进行多次测试。正当 现在,脚本读取第一组数据并继续执行,直到脚本用完为止。我想不出任何东西可以让脚本在到达结尾时返回到脚本的顶部。如果一切都在主方法下,那就容易了。没有main方法,只有从脚本顶部到底部运行的多个子例程和函数。听起来好像您正在尝试数据驱动您的测试。如果数据表中有多行,则可以指示QTP对数据表中的每行运行操作或整个测试 要对测试执行此操作,请右键单击测试流中的测试,选择设置并选择在所

我有一个带有许多子程序和函数的qtp脚本。我正在自动化一个应用程序的测试。应用程序需要对不同的数据集进行多次测试。正当
现在,脚本读取第一组数据并继续执行,直到脚本用完为止。我想不出任何东西可以让脚本在到达结尾时返回到脚本的顶部。如果一切都在主方法下,那就容易了。没有main方法,只有从脚本顶部到底部运行的多个子例程和函数。

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

要对测试执行此操作,请右键单击测试流中的测试,选择设置并选择在所有行上运行单选按钮


对于此操作中的等效项,请单击鼠标右键->操作调用属性。

我通常使用如下脚本:

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操作提供了一个continues循环,而WshShell.Popup提供了一种在测试之间取消的方法,如果在一定时间后没有采取任何操作,则可以继续。如果您想在无人值守的情况下运行测试,这会很方便。

试试1。在测试->设置->运行中运行所有行选项 或 2.在你的测试中

添加以下代码 totalrows=Datatable.getrowcount

对于行=1到行总数 //整个测试代码
下一个

第一个问题是-通过重复执行同一测试,您试图实现什么?除此之外,您可以使用OTA接口从VB脚本重复运行同一测试,也可以使用Recovery.Activate执行恢复方案,重新启动测试可能不是最好的选择。@BrianJM我正在测试多组类似的数据。尝试创建不同的用户并在提供的不同服务中向他们注册。我明白了。我误解了这个问题。我认为您已经设置了数据行,并且希望在不中断的情况下重复运行相同的行。您只需设置跑步设置并设置适当的数据。