在Jmeter中解码json并对另一个请求使用一个响应的变量

时间:2017-08-21 05:25:48

标签: json jmeter beanshell

我有一个问题,我找不到完整的答案。 我正在使用Jmeter 3.2,并在请求中使用json,问题是我得到编码响应(%20france而不是法国)。 我在网上读到如何解码响应并将其移动到文件或变量, 但我不想这样做,我想解码响应然后使用json提取器解析它,并采取例如ID字段并将其放在下一个请求中。 有人可以一步一步解决方案 问候

更具体 1.用jmeter发送json请求 2.用jmeter解码响应 3.从解码响应中获取ID字段 4.将第3步中的ID放入新的json请求中

2 个答案:

答案 0 :(得分:0)

以下是程序:

  1. 在您的线程组中添加您的采样器或请求。根据您的要求配置所有字段。 (即服务器IP,端口,方法,正文数据等)

  2. 添加HTTP标头管理器以发送值为<logger name="*" minlevel="Debug" writeTo="console" /> 的Content-Type标头

  3. 在您的采样器/请求下添加JSON路径提取器以提取响应。 (将任何变量名放在保存提取的ID的位置,在JSON Path表达式中给出正确的表达式来解析它,使用NOT_FOUND作为默认值)。

  4. 演示: enter image description here

    1. 现在,您可以在后续请求中使用该变量。
    2. 演示: sitefestival

答案 1 :(得分:0)

  1. 要发送JSON,只需将其放入&#34; Body Data&#34; HTTP Request采样器的标签。您可能还需要添加HTTP Header Manager以发送Content-Type标头,其值为application/json

    JMeter Send JSON

  2. 要从JSON Extractor获取JSON中的值,您可以使用它来评估任意JsonPath个查询。
  3. 要解码整个响应(或步骤2中提取的变量),您可以使用__urldecode() function

    URLDecode Function

  4. 有关使用JMeter进行负载测试REST API端点,使用JSON响应等的更多信息,请参阅REST API Testing - How to Do it Right文章。