如何从JMeter中的全局变量中获取值

如何从JMeter中的全局变量中获取值,jmeter,Jmeter,我试图从响应代码中的全局变量中获取一个值。我尝试过regex和Beanshell代码,但仍然得到null值。有人能帮我吗 我的beanshell代码: import org.apache.jmeter.services.FileServer; String path=FileServer.getFileServer().getBaseDir(); String sid= vars.get("whiteboardVars"); FileOutputStream f = new FileOutput

我试图从响应代码中的全局变量中获取一个值。我尝试过regex和Beanshell代码,但仍然得到null值。有人能帮我吗

我的beanshell代码:

import org.apache.jmeter.services.FileServer;
String path=FileServer.getFileServer().getBaseDir();
String sid= vars.get("whiteboardVars");
FileOutputStream f = new FileOutputStream("/Users/diya/testgui/sesid.csv", true); //spec-ify true if you want to overwrite file. Keep blank otherwise.
p = new PrintStream(f); 
this.interpreter.setOut(p); 
p.println(sid);
f.close();

  • 使用组合检查
    whiteboardVars
    变量是否真的具有该值。如果未定义变量,则尝试将其写入文件是没有意义的,因此请仔细检查它是否具有该值
  • 请注意,对于任何形式的脚本来说。您可以将代码缩短为以下行:

    new File('/Users/diya/testgui/sesid.csv').newWriter().withWriter { w -> w << vars.get('whiteboardVars') }
    

    new File('/Users/diya/testgui/sesid.csv').newWriter().withWriter{w->w感谢您的快速响应@Dmitri T。我用调试采样器验证了它,它出现在搜索结果树的响应代码中(因此我确认它存在)。我已尝试在JSR223预处理器中使用您上面提到的代码,但它在我的csv文件中的值仍然为null。请使用测试计划的屏幕截图更新您的问题,并在完成后通知我。如果有任何错误,请尝试打开日志查看器窗口。我已更新了问题中的两个图像。@Dmitri T请e如果您需要任何其他输入,请告诉我。此外,没有错误,正如我所说,我收到的值为null,但没有错误您的正则表达式提取器不工作,您需要将正则表达式修改为类似于
    “sessionId”:(\d+),
    。如果在创建正则表达式时遇到问题,请选择更易于使用的正则表达式。请确保将正则表达式更新为“sesionId”后,将后处理器作用域切换为BodyIt now working:(\d+)。非常感谢@Dmitri T。你能分享你的正则表达式吗?当然可以@ararar,**引用名称=wbVars**,**正则表达式=“whiteboardVars”:“(.+?)”**,**Template=$1$**您试图从响应中获取哪个值,它是whiteboardVars的完整负载?还是仅会话id?我只想从whiteboardVars全局变量@arararar获取会话id