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

Posted

技术标签:

【中文标题】如何将响应保存在jmeter中的变量中【英文标题】:How to save response in a variable in jmeter 【发布时间】:2016-03-31 12:36:49 【问题描述】:

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

【问题讨论】:

how to capture dynamic values created using javascript in jmeter的可能重复 【参考方案1】:

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

    将Beanshell PostProcessor 添加为返回您正在寻找的响应的请求的子项

    将以下行放入 PostProcessor 的“脚本”区域:

    vars.put("response", new String(data));
    

    在需要时将提取的值引用为$response

    请参阅How to Use BeanShell: JMeter's Favorite Built-in Component 指南以了解更多关于 JMeter 中的 Beanshell 脚本


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

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

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

【讨论】:

【参考方案2】:

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

    将JSR223 PostProcessor 添加为返回您正在寻找的响应的请求的子项

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

vars.put("响应", prev.getResponseDataAsString());

    然后将此响应用作 $response 在您需要的地方

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

JSON Extractor 用于 JSON CSS/JQuery Extractor 用于 html 提取 XPath Extractor 用于 XML Regular Expression Extractor 用于所有这些或任何文本格式

【讨论】:

【参考方案3】:

您可以使用JMeter's Post-Processor Regular Expression Extractor 从响应中提取所需的值。只需将其添加到其响应将包含所需值的采样器下即可。

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

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

【讨论】:

【参考方案4】:

我知道这个问题很老,但我同意@UBIK 你应该使用 JSON 提取器。我正在使用每秒发送超过 100 个请求的负载测试,我需要重用特定 JSON 键中的值,因此我使用 JSON 提取器并将值保存在 .csv 文件中以供下一个请求。

    extract the JSON


    这是将其写入 .csv 文件的 Groovy 脚本

 def myRandomIds = new File("randomIds.csv")
    myRandomIds << vars.get("id") + ","
    myRandomIds << System.getProperty("line.separator")
    log.info(vars.get("id") + " saved to randomIds.csv...")

    这是我在从 csv 文件读取的其他请求中设置的 CSV 数据配置。 (在我的例子中,这些 .jmx 文件是使用 jenkins 自动化和参数化的)


    CSV data set config


【讨论】:

以上是关于如何将响应保存在jmeter中的变量中的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter 将响应信息保存至本地

如何自动保存 jmeter 摘要报告和其他图表(例如响应时间图)

如何在jmeter中把响应中的数据提取出来并引用

JMeter之参数关联

使用 JMeter,如何从 API 的响应正文中提取字符串并将其保存到 csv 文件?

如何使用JMETER从JSON响应中提取数据