技术开发 频道

QTP 10抢鲜看:增强脚本 整合QC

    动态调用Action

    在以前版本,如果你插入一个外部的Action,那么那个Action就成为测试的一部分,每次打开这个测试都会加载那些Action。而在新版本的QTP中,提供“LoadAndRunAction”语句,可用于在测试脚本运行时加载Action。

    这有什么好处呢?举个例子,如果你使用了很多条件语句来调用外部的Action,而你又不想在每次打开测试时都加载那些Action进来,因为并不是每次运行都需要这些Action,那么这个时候“LoadAndRunAction”就很适用了。

    通过“LoadAndRunAction”调用的Action只有在测试运行时才被加载和执行,例如下面的例子在Test1中加载Action1并执行一次迭代:

    CustomerType = DataTable.Value("Customer_Type","dtGlobalSheet")
    NumOfOrder = DataTable.Value("Number_of_items","dtGlobalSheet")
    While NumOfOrder > 0
        NumOfOrder = NumOfOrder - 1
        If CustomerType = "Gold" or CustomerType = "Silver" or CustomerType = "Bronze" Then
            LoadAndRunAction "c:\QTPTest\OrderActions", CustomerType&"Order"
        Else 'Error value
            WrongDataValue CustomerType
        End If
    Wend


    下面的例子同样是动态加载Action1并执行一次迭代,不同的是通过环境变量来存储Action1的路径:

    CustomerType = DataTable.Value("Customer_Type","dtGlobalSheet")
    NumOfOrder = DataTable.Value("Number_of_items","dtGlobalSheet")
    TestPath="c:\QTPTest\"
    While NumOfOrder > 0
    NumOfOrder = NumOfOrder - 1
    If CustomerType = "Gold" Then
    LoadAndRunAction Environment("default_path")&"OrderActions", "GoldOrder",oneiteration, NumOfOrder
    Elseif CustomerType = "Silver" Then
    LoadAndRunAction TestPath&"OrderActions", "SilverOrder", oneiteration, NumOfOrder
    Elseif CustomerType = "Normal" Then
    LoadAndRunAction TestPath&"OrderActions", "NormalOrder", oneiteration, NumOfOrder
    Else 'Error value
    Msgbox "WrongDataValue CustomerType "
    End If
    Wend

0
相关文章