我们可以在Jmeter中用于API测试的全局和环境变量的容器

时间:2018-01-25 13:07:10

标签: jmeter jmeter-plugins jmeter-3.2

我正在尝试使用Jmeter进行API自动化测试。

但Jmeter没有像SOAP-UI和Postman那样为全局和环境变量提供任何单独的容器。

我尝试使用属性文件,该属性文件也在整个项目中的所有JSR223之间共享,但属性也有许多其他键,我没有任何选项可以删除已启动过的密钥。此外,我也可以更新似乎最适合使用的值

我在下面的代码中设置并获取值

props.put("shubhamKey", "shubhamValue")

props.get("shubhamKey")

我也可以使用相同的密钥

更新它
props.put("shubhamKey", "shubhamNewValue") 

但正如我所说,一旦启动我们就无法删除密钥,从属性中删除似乎很危险,因为它还有许多其他密钥,Jmeter内部可能需要这些密钥

看到太多我看过“用户自定义变量”的东西后,我可以指定我的键值对。我可以使用以下代码获取值:

vars.get("shubhamLocalVariable")

但我无法使用以下代码设置值:

vars.put("shubhamUserKeyagain","shubhamUservalue")

我没有任何选项可以进一步更新或删除它。

所以在Jmeter中存储变量是否可行,可以使用代码轻松创建/删除/更新,甚至可以通过其他容器调用,如HTTP Request。

此外,我还想要一个保存值的容器,以便下一次迭代和下次(任何时间像其他日子一样)它将以最新值开头

用户参数

enter image description here

JSR223

enter image description here

任何解决方法都会有所帮助,并提前表示赞赏

2 个答案:

答案 0 :(得分:0)

至于我,我在每个线程的开头使用JSR223采样器。 对我来说它有效:

vars.put("checksums_1","")
vars.put("checksums_2","")
vars.put("checksums_3","")

答案 1 :(得分:0)

首先,您可以使用以下方法删除属性:

props.remove("shubhamKey");

如果你使用特定的前缀/后缀,它不应该在内部影响JMeter。

User Defined Variables不是处理动态值的最佳方式,它用于静态变量

  

请注意,测试计划中的所有UDV元素 - 无论它们在何处 - 都会在开始时进行处理。

但您可以通过字符串或变量或函数设置变量,例如:

要在测试运行期间定义变量,请参阅使用类似作业的User Parameters