2011-05-23 55 views
4

我们在非gui模式下运行我们的测试,并传入各种参数,如服务器,端口,线程等。我们还想在GUI模式下运行我们的测试,并能够在GUI中更改这些参数。使用参数作为用户定义的变量?

我想要做的是使用2个用户定义的变量对象,并且有一个带有我们可以编辑的静态数据,另一个带有参数。这样,实际的测试计划不会改变,但我们可以将变量设置为参数,并且仅禁用静态数据。或者当我们想用静态数据运行时禁用参数化的。

但这似乎不起作用 - 没有错误没有。

回答

1

你是如何从非GUI模式传递值的?通过CSV,使用属性,用户参数等?

如果CSV,这是一个简单的修复。只需在测试计划级别创建一个用户定义的变量(UDV)对象,并“硬编码”所有参数(服务器,端口等)。保持您的CSV配置。如果以GUI模式运行,请禁用CSV并启用UDV。保存文件时,请保持启用CSV并禁用UDV - 这样,当您从非GUI运行时,它将读取CSV文件。

如果使用属性,我会执行以下操作:创建一个包含所有参数(服务器等)的UDV。在输入值之前,复制组件,以便拥有两个相同的UDV。在UDV 1中,从命令行输入属性值。在UDV 2中,输入“硬编码”值。在整个脚本中,用变量引用替换对属性的所有引用。它看起来像这样:

 UD1:        UD2: 
    Name  Value     Name  Value 
    SERVER  ${__P(Server)}   SERVER  devdomain.com 
    PORT  ${__P(Port)}   PORT  4111 


Some HTTP Request 

Domain: ${SERVER} 

如果使用用户参数,它将是与上述相同的概念。

4

我做了类似的事情,但我为此使用了UDF。

我所做的是设置了我的变量并使用默认值。

VARNAME  VALUE 
otl_PROTOCOL ${__P(otl_protocol,https)} 
otl_PORT  ${__P(otl_port,443)} 
otl_THREADS ${__P(otl_threads,1)}  
otl_REPS  ${__P(otl_reps,1)} 
otl_RAMP  ${__P(otl_ramp,0)} 

我也为服务器名称做了一个。这样,我可以在这里使用默认值,或者我可以在命令行参数或我的user.properties中传入参数。这对我很好。

+0

谢谢,您的示例使用默认值帮助我! – 2015-01-22 15:34:56

0

其实我正在使用一个名为正则表达式获取值的函数。 在这里我不得不使用变量下的变量,因为有很多价值与相同的边界,所以我选择了一个段落为${ABC}和取自这一段的价值${XYLEM}。这两个变量创建为正则表达式。尝试使用${__V(ABC${XYLEM})};

${__setProperty{Search_Investment_Banking,$Investment_Banking}}; 
相关问题