如何在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值,请告诉我。

或者建议我任何其他更可行的解决方法。

enter image description here

任何解决方法都将提前提供帮助和赞赏。

答案

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

根据documentation

属性与变量不同。变量是线程的本地变量;属性对所有线程都是通用的,需要使用__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方法

如何在PHP中设置和使用PHP_INI_SCAN_DIR环境变量? [重复]

text 在Phalcon中设置和获取会话变量

从 Java 中的两个不同类中设置和获取静态变量

如何在 Cakephp 3.5 中设置和获取 Cookie

如何在 xmpp android 中设置和获取状态