如何在JMeter中的POST主体中转义\ r \ n

时间:2017-01-16 09:46:59

标签: json jmeter

我有一个JSON响应如下,

{ "name":"John Smith", "address": "#123\r\nRenault Road\r\n123456\r\n" }

我需要提取地址并将其放入我的下一个POST请求中。我使用JSON Extractor作为后期处理元素,并使用$..address我将提取的地址设置为变量address

在我的下一个请求中,我使用以下作为POST数据,

{ "id": "123456", "address": "${address}" }

因此,当我发出请求时,我将POST数据视为

{ "id": "123456", "address": "#123 Renault Road 123456 " }

这在我的后端中断,但是这个有效负载也没有被识别为有效的JSON。

我想发出请求,以便POST数据如下,

{ "id": "123456", "address": "#123\r\nRenault Road\r\n123456\r\n" }

非常感谢任何有助于完成此任务的帮助。

1 个答案:

答案 0 :(得分:1)

如果您确实需要将这些换行符作为\r\n发送,则可以使用某些脚本将其转换回来。

  1. 添加Beanshell PreProcessor作为“下一个请求”HTTP Request采样器
  2. 的子项
  3. 将以下代码放入PreProcessor的“脚本”区域:

    address = vars.get("address");
    address = address.replaceAll("\\r\\n","\\\\r\\\\n");
    vars.put("address", address);
    
  4. 上面的脚本会将换行符转换为文本表示。

    参考文献: