从cmdline调整HP Service Test的JMS设置

时间:2013-11-08 11:14:25

标签: qtp hp-uft

我们正在使用HP Service Test 11.50在Jenkins Buildserver上运行unittests。我们想运行并行构建,这意味着我们必须能够在执行这些测试之前指定端口。这样我们就可以确保所有测试都是相互隔离的。通过在test.db上执行几个查询,我们已经能够更改testSettings,但是这些更改没有被提取。只有在(重新)在HP Service Test GUI中编译测试之后,才会识别并使用更改。

有没有办法从命令行进行编译?或者还有另一种方法可以实现这一目标吗? “编译”实际上做了什么?触摸了哪些文件?

错误的答案是使用输入变量,因为在创建这些JMS连接时尚未评估这些变量。

谢谢,

罗伯特

2 个答案:

答案 0 :(得分:1)

您可以将所需属性链接(数据驱动器)到Excel文件(使用数据驱动机制)。 可以从测试外部更新excel文件。在下一次测试运行时,将执行excel文件中的更新数据。

关于编译,通常编译阶段从测试模型生成C#代码并将其构建为在测试执行期间使用的二进制文件

希望这有帮助,

贝纳

答案 1 :(得分:0)

该解决方案需要在您的计算机上安装.NET SDK 4.0,在本例中为4.0.30319版本

测试包含Main.cs,其中有一个名为InitJMSEnv()的方法,如下所示:

public static void InitJMSEnv()
{
    if(!JmsInitialized)
    {
        JMSGlobalProperties props = new JMSGlobalProperties
        {
            connections_per_process = @"1",
            msg_timeout = @"1",
            user_defined_timeout = @"20",
            jndi_provider_url = @"",
            jndi_initial_context_factory = @"com.tibco.tibjms.naming.TibjmsInitialContextFactory",
            jms_connection_factory = @"",
            jms_security_principal = @"",
            jms_security_credentials = @"",
            set_corba_orb = @"",
            auto_generate_selector = @"0",
            enable_TIBCO_SSL_JNDI_lookup = @""
        };
        JMSTransportWrapper.InitJMSProperties(props);
        JmsInitialized = true;
    }
}

使用正则表达式,您可以填写/调整必填字段,例如jms_security_principaljms_security_credentials

现在您可以重建项目,如:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319>msbuild C:\path\to\MyTest.csproj /t:rebuild

结果:为此环境准备并准备执行的测试。