2017-01-16 4 views
0

У меня есть ответ JSON следующим образом,Как избежать г п в теле POST в JMeter

{ "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

Если вам действительно нужно отправить эти разрывы строк как \r\n, вы можете использовать некоторые скрипты для их преобразования.

  1. Добавить Beanshell PreProcessor как дочерний «следующий запрос» HTTP Request Sampler
  2. Поместите следующий код в «Сценарий» площади препроцессора:

    address = vars.get("address"); 
    address = address.replaceAll("\\r\\n","\\\\r\\\\n"); 
    vars.put("address", address); 
    

Данный скрипт преобразует разрывы строк в текстовом представлении.

Ссылки:

  • vars является обобщающим для JMeterVariables экземпляра класса, он обеспечивает доступ на чтение/запись для всех JMeter переменных
  • String.replaceAll() - это метод класса Струнный который выходит из коробки с Java SDK
  • How to Use BeanShell: JMeter's Favorite Built-in Component - руководство демонстрирует, как использовать Java и JMeter API, с использованием тестовых элементов Beanshell для улучшения JMeter тестов с помощью сценариев, если требуется
Смежные вопросы