我们以非gui模式运行测试并传递各种参数,如服务器,端口,线程等。我们还希望在GUI模式下运行我们的测试,并能够在GUI中更改这些参数。
我想要做的是使用2x User Defined变量对象,并且有一个我们可以编辑的静态数据,另一个带参数。这样实际的测试计划不会改变,但我们可以将变量设置为参数,并且只禁用静态数据。或者,当我们想要使用静态数据运行时,禁用参数化的。
但这似乎不起作用 - 没有任何错误。
答案 0 :(得分: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中传入参数。这对我很有用。
答案 1 :(得分: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}
如果使用用户参数,则与上述概念相同。
答案 2 :(得分:0)
实际上我正在使用一个名为正则表达式的函数来获取值。
这里我必须在变量下使用变量,因为有很多具有相同边界的值,所以我选择了一个段落作为${ABC}
并从此段${XYLEM}
中获取值。将变量创建为正则表达式。使用${__V(ABC${XYLEM})};
${__setProperty{Search_Investment_Banking,$Investment_Banking}};