我想知道是否有可能在新的迭代开始时重置线程上下文(其所有变量)。
我遇到的问题是线程保留了先前迭代中的所有变量(及其值),有时情况会变得混乱。
如果我没记错的话,可以在VisualStudio Performance测试中指定“新用户”的百分比,以指示有多少个VirtualUser在下一次测试迭代中将其上下文重置。
JMeter上是否有类似本机的东西,还是需要编写一些代码来做到这一点?
谢谢!
答案 0 :(得分:1)
这取决于您创建的变量的类型以及如何使用它们。
例如:
this
在此处创建变量 :data-vv-rules="`required|alpha|min:${messages.Min_Length_First_Name}|max:15`
,如果响应与表达式匹配,则会为其分配一些值。如果下一次迭代与表达式不匹配,它将仍然保留先前的迭代值。为避免此问题,请分配一个默认值或选中“使用空默认值”。这样,每次迭代基本上都会重置该值。
Regular Expression Extractor
-每个线程都将拥有自己的变量副本,并且线程可以在整个测试过程中修改其变量值。如果您希望每次迭代都将其重置,那完全是您的责任。我认为这可能会有所帮助。
答案 1 :(得分:1)
我不确定您是否确实想要/需要它,但是您可以使用带有remove method的JSR223脚本删除所有JMeter变量:
for (Map.Entry entry : vars.entrySet()) {
vars.put(entry.getKey(), null);
}