如何在Jmeter中设置和获取环境变量以测试API

如何在Jmeter中设置和获取环境变量以测试API,jmeter,jmeter-plugins,jmeter-3.2,Jmeter,Jmeter Plugins,Jmeter 3.2,我需要在Jmeter中设置和获取用于API自动化的变量 我也在使用groovy脚本 我使用以下代码实现了相同的功能: import org.apache.jmeter.util.JMeterUtils; JMeterUtils.setProperty("PC_CREATED_PROMO_CODE", "shubhamvalue"); log.info("will it work? ="+JMeterUtils.getProperty("PC_CREATED_PROMO_CODE")) 现在

我需要在Jmeter中设置和获取用于API自动化的变量

我也在使用groovy脚本

我使用以下代码实现了相同的功能:

import org.apache.jmeter.util.JMeterUtils;

JMeterUtils.setProperty("PC_CREATED_PROMO_CODE", "shubhamvalue");

log.info("will it work? ="+JMeterUtils.getProperty("PC_CREATED_PROMO_CODE"))
现在的问题是,我无法在任何可以设置硬代码值(如令牌、baseURL、头)的容器中看到值。这应该与我们在SOAP-UI或postman测试中所做的类似

请告诉我是否可以在Jmeter的文件/节/容器中看到这些setProperty值

或者向我建议其他更适合同样情况的解决方法


任何解决方法都会很有帮助,请提前告知。

要查看文件/节中的属性,您可以使用2个函数,而第二个函数将返回1作为默认值。就你而言

${__property(PC_CREATED_PROMO_CODE)}

${__P(PC_CREATED_PROMO_CODE)}
例如,您可以将下一个采样器名称更改为Post2${{uuuuPropertyPC\uCreated\uPromo\uCode}

顺便说一句,你可以设置属性使用道具代替

在HTTP标头管理器中使用的示例,从属性添加CoEntType:


1在JMeter GUI模式下,在WorkBench下,通过 工作台>添加>非测试元素>属性显示。 然后选中JMeter属性复选框以查看所有现有属性

props.put("shubhamKey", "shubhamValue")
执行此代码时,属性将在属性文件中设置,您可以在以下位置看到它:

工作台>添加>非测试元素>属性显示

2现在,如果要在脚本中使用用户定义的变量,可以调用如下值:

vars.get("shubhamUserKey")

仍然希望从用户定义变量中的代码设置值

如果需要获取和设置变量,我建议使用vars速记

依照

属性与变量不同。变量是线程的局部变量;属性对于所有线程都是公共的,需要使用_P或_属性函数来引用

因此,我建议将变量设置为:vars.put'foo',bar',并在需要时以${foo}的形式访问它们,因为我的期望是,您将为每个线程虚拟用户获得不同的PC创建的促销代码


也注意到,建议在可能的情况下避免编写脚本,因此考虑改为“<”。p> 在哪里可以看到属性文件?您能详细解释一下吗?例如,您可以将采样器名称更改为Post2${uuuuuPropertyPc\uCreated\uPromo\uCode},那么是否没有容器可以在其中查看我的设置值,如HTTP标头管理器?您可以将属性值设置为vars.putshubhamKey、props.getshubhamUserKeyvars.putshubhamUserKeyagain的变量,Shubhameservalue无法在用户定义的变量中添加值用户定义的变量不是更新变量的最佳方式。请打开一个新问题,因为它太宽了,无法在这里回答。我已经发布了新问题。请参阅此处:vars将密钥对保存在哪个容器中。。在属性或用户定义变量中表示应使用哪个容器放置变量。。属性、用户定义变量或任何其他选项。变量需要按照脚本逻辑一次一次地更新,所以在这种情况下你的建议我已经发布了新的问题。请参阅:

vars.get("shubhamUserKey")