如何在jmeter中保存变量的响应

Sid*_*Sid 10 post jmeter load-testing performance-testing

我正在使用jmeter在我的服务器上执行负载测试.在我的一个帖子请求中,我在响应中收到一个唯一的ID.我需要在以下帖子请求中将此id作为参数发送.我是jmeter的新手,不知道怎么做.帮助将非常感激.

Dmi*_*i T 14

如果需要将整个响应存储到变量中,请执行以下步骤:

  1. 添加Beanshell PostProcessor作为请求的子项,返回您正在查找的响应
  2. 将以下行放入PostProcessor的"脚本"区域:

    vars.put("response", new String(data));
    
    Run Code Online (Sandbox Code Playgroud)
  3. 根据${response}需要引用提取的值

    请参阅如何使用BeanShell:JMeter最喜欢的内置组件指南,以更多地了解JMeter中的Beanshell脚本


或者,您可以使用正则表达式提取器执行相同的操作,在这种情况下,相关配置将是:

  • 参考名称: response
  • 正则表达式: (?s)(^.*)
  • 模板: $1$

如果您需要响应的一部分,而不是整个响应,您可以根据JMeter用户手册的正则表达式章节根据您的需要修改正则表达式


UBI*_*ACK 8

如果您确实需要将整个响应存储到变量中,请执行以下操作:

  1. JSR223 PostProcessor添加为请求的子项,该请求返回您正在寻找的响应

JSR223后处理器

  1. 将以下行放入“脚本”区域:

vars.put(“ response”,prev.getResponseDataAsString());

  1. 然后在需要的地方使用此响应作为$ {response}

但是您很少需要使用整个响应,因此应该避免使用big,在这种情况下,最好使用适合您的响应格式的Extractor:


Tes*_*rif 5

您可以使用JMeter的Post-Processor正则表达式提取器从响应中提取所需的值。只需将其添加到采样器下,其响应将包含所需的值。

在Reg表达式提取器中,您将定义变量名称(referenceName),RegularExpression,模板等。稍后,您可以在此变量中使用该值。要学习如何使用Reg表达式提取器,可以参考以下教程。

https://docs.blazemeter.com/customer/portal/articles/1743642-using-regex-regular-expression-extractor-with-jmeter