如何在Jmeter中设置和获取环境变量来测试API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Jmeter中设置和获取环境变量来测试API相关的知识,希望对你有一定的参考价值。
我需要在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"))
现在问题是我无法在任何容器中看到值,我可以在其中设置我的硬编码值,如token,baseURL,Headers。它应该类似于我们在SOAP-UI或邮递员测试中所做的。
如果我能在Jmeter中的文件/部分/容器中看到这些setProperty值,请告诉我。
或者建议我任何其他更可行的解决方法。
任何解决方法都将提前提供帮助和赞赏。
如果你需要获取和设置变量,我建议使用vars
速记
属性与变量不同。变量是线程的本地变量;属性对所有线程都是通用的,需要使用__P或__property函数进行引用。
所以我建议将变量设置为:vars.put('foo', 'bar')
并将其作为${foo}
访问,因为我的期望是你将为每个线程(虚拟用户)获得不同的PC_CREATED_PROMO_CODE
另请注意,建议尽可能避免编写脚本,因此请考虑使用JSON Extractor。
要查看文件/部分中的属性,您可以使用2个函数__property or__P,而第二个函数将默认返回1。在你的情况下
${__property(PC_CREATED_PROMO_CODE)}
${__P(PC_CREATED_PROMO_CODE)}
例如,您可以将下一个采样器名称更改为Post2 ${__property(PC_CREATED_PROMO_CODE)}
顺便说一句,你可以设置属性使用props
props.setProperty("PC_CREATED_PROMO_CODE", "shubhamvalue" )
在HTTP标头管理器中使用的示例,从属性添加cotentType:
1)在JMeter GUI模式下,在WorkBench下,通过WorkBench>添加>非测试元素>属性显示创建属性显示。然后选择JMeter Properties复选框以查看所有存在的属性
props.put("shubhamKey", "shubhamValue")
执行此代码时,属性将设置在属性文件中,您可以在以下位置看到它:
WorkBench>添加>非测试元素>属性显示。
2)现在,如果您想在脚本中使用用户定义变量,可以调用以下值:
vars.get("shubhamUserKey")
仍然希望从用户定义变量中的代码设置值
以上是关于如何在Jmeter中设置和获取环境变量来测试API的主要内容,如果未能解决你的问题,请参考以下文章
通过字符串变量在Python中设置和获取@property方法