重置“线程上下文”

时间:2019-04-21 21:38:18

标签: jmeter

我想知道是否有可能在新的迭代开始时重置线程上下文(其所有变量)。

我遇到的问题是线程保留了先前迭代中的所有变量(及其值),有时情况会变得混乱。

如果我没记错的话,可以在VisualStudio Performance测试中指定“新用户”的百分比,以指示有多少个VirtualUser在下一次测试迭代中将其上下文重置。

JMeter上是否有类似本机的东西,还是需要编写一些代码来做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:1)

这取决于您创建的变量的类型以及如何使用它们。

例如:

  • this

enter image description here

在此处创建变量 :data-vv-rules="`required|alpha|min:${messages.Min_Length_First_Name}|max:15` ,如果响应与表达式匹配,则会为其分配一些值。如果下一次迭代与表达式不匹配,它将仍然保留先前的迭代值。为避免此问题,请分配一个默认值或选中“使用空默认值”。这样,每次迭代基本上都会重置该值。

  • Regular Expression Extractor-每个线程都将拥有自己的变量副本,并且线程可以在整个测试过程中修改其变量值。如果您希望每次迭代都将其重置,那完全是您的责任。

我认为这可能会有所帮助。

JMeter - Understanding Variables Scope

答案 1 :(得分:1)

我不确定您是否确实想要/需要它,但是您可以使用带有remove method的JSR223脚本删除所有JMeter变量:

for (Map.Entry entry : vars.entrySet()) {    
    vars.put(entry.getKey(), null);
}