我们在非gui模式下运行我们的测试,并传入各种参数,如服务器,端口,线程等。我们还想在GUI模式下运行我们的测试,并能够在GUI中更改这些参数。使用参数作为用户定义的变量?
我想要做的是使用2个用户定义的变量对象,并且有一个带有我们可以编辑的静态数据,另一个带有参数。这样,实际的测试计划不会改变,但我们可以将变量设置为参数,并且仅禁用静态数据。或者当我们想用静态数据运行时禁用参数化的。
但这似乎不起作用 - 没有错误没有。
我们在非gui模式下运行我们的测试,并传入各种参数,如服务器,端口,线程等。我们还想在GUI模式下运行我们的测试,并能够在GUI中更改这些参数。使用参数作为用户定义的变量?
我想要做的是使用2个用户定义的变量对象,并且有一个带有我们可以编辑的静态数据,另一个带有参数。这样,实际的测试计划不会改变,但我们可以将变量设置为参数,并且仅禁用静态数据。或者当我们想用静态数据运行时禁用参数化的。
但这似乎不起作用 - 没有错误没有。
你是如何从非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}
如果使用用户参数,它将是与上述相同的概念。
我做了类似的事情,但我为此使用了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中传入参数。这对我很好。
其实我正在使用一个名为正则表达式获取值的函数。 在这里我不得不使用变量下的变量,因为有很多价值与相同的边界,所以我选择了一个段落为${ABC}
和取自这一段的价值${XYLEM}
。这两个变量创建为正则表达式。尝试使用${__V(ABC${XYLEM})};
${__setProperty{Search_Investment_Banking,$Investment_Banking}};
谢谢,您的示例使用默认值帮助我! – 2015-01-22 15:34:56