我们在非 gui 模式下运行我们的测试并传入各种参数,如服务器、端口、线程等。我们还希望在 GUI 模式下运行我们的测试,并且能够在 GUI 中更改这些参数。
我想做的是使用 2 个用户定义的变量对象,其中一个带有我们可以编辑的静态数据,另一个带有参数。这样实际的测试计划不会改变,但我们可以将变量设置为参数,而只需禁用静态数据。或者当我们想使用静态数据运行时禁用参数化的。
但这似乎不起作用 - 没有错误。
我做了类似的事情,但我为此使用了 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)}
Run Code Online (Sandbox Code Playgroud)
我也为服务器名称做了一个。这样,我可以在这里使用默认值,也可以在命令行参数或我的 user.properties 中传入参数。这对我来说非常有效。
您如何从非 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}
Run Code Online (Sandbox Code Playgroud)
如果使用用户参数,则与上面的概念相同。
| 归档时间: |
|
| 查看次数: |
9136 次 |
| 最近记录: |