1

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

4

3 回答 3

0

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

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

设置测试迭代 对于等效的操作,请右键单击 -> 操作调用属性。

于 2013-02-03T13:39:32.683 回答
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操作提供了一个 continue 循环,而WshShell.Popup提供了一种在测试之间取消并在一定时间后没有采取任何操作的情况下继续的方法。如果您想在无人看管的情况下运行测试,这会派上用场。

于 2013-02-04T10:40:36.550 回答
0

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

添加以下代码 totalrows=Datatable.getrowcount

for row=1 to totalrows //整个测试代码

于 2013-02-07T22:46:38.060 回答