2017-02-03 30 views
0

что такое синтаксис для написания сценария оболочки bean-оболочки в jmeter для извлечения N количества значений из ответа на запрос и передачи их в следующий параметр запроса?скрипт оболочки bean-оболочки в jmeter для извлечения идентификатора от ответа на запрос

ответ

0

Слишком много возможных сценариев, поэтому никто не может помочь, если вы не сообщаете больше деталей, то есть ответ (может быть частичным) и как должен выглядеть следующий запрос.

В общем:

  • Вы Beanshell PostProcessor и prev стенографии, который стоит за родитель SampleResult, так что вы можете использовать prev.getResponseDataAsString() метод для доступа к родителю тела ответа сэмплер и извлечь то, что вам нужно от него
  • Вы Beanshell PreProcessor и sampler сокращение, которое означает ту или иную реализацию AbstractSampler, чтобы вы могли манипулировать соответствующими методами и полями.

См. How to Use BeanShell: JMeter's Favorite Built-in Component для получения дополнительной информации о том, как использовать JMeter API из тестовых элементов Beanshell с некоторыми примерами.

+0

Ответ: {"formId": "1234", "formResponseId": "1", "responseStatus": "a"}, {"formId": "4567", "fo rmResponseId": "2", " "г esponseStatus": "б"}, { "FormID": "1234", "FO rmResponseId": "3", "г esponseStatus": "Ъ"}, { "FormID": «4567», «fo rmResponseId»: «4», «r esponseStatus»: «b»}, iw ant, чтобы зафиксировать идентификатор ответа формы, который соответствует статусу b. аналогично он имеет тысячи ответов. Сначала мне нужно сохранить все, а идентификатор ответа и значения индекса состояния должны совпадать после сохранения в массиве. Он хранится в двухмерном массиве и далее я хочу оценить конкретный статус с помощью IF-цикла. –

1

Итак, если вы просто хотите извлечь некоторые данные из ответа 1-го запроса и передать его в качестве параметров запроса на второй запрос-> Вам не нужно использовать beanshell и писать код, Jmeter уже предоставляет почтовый процессор под названием Regular Expression Extractor , Здесь вы можете написать простое регулярное выражение в Perl и указать имя ссылки как Param1. В вашем втором запросе, просто передать переменную $ {Param1_g1}

Предположим, что ваш ответ

<city>London</city> 

и вы хотите извлечь из Лондона, как передать его в другой запрос, регулярное выражение будет

<city>(.*)</city> 
+0

Я пробовал это, но для захвата одного параметра. Мне нужно захватить несколько параметров в массиве и передать его для дальнейшего запроса. Я смог зафиксировать параметр, используя ** (. *?) **. Но проблема заключается в том, что он хранится в двухмерном массиве, что меня смутило. –

+0

Ответ: {"formId": "1234", "formResponseId": "1", "responseStatus": "a"}, {"formId": "4567", "formResponseId": "2", "responseStatus": "б"}, { "FormID": "1234", "formResponseId": "3", "responseStatus": "б"}, { "FormID": "4567", "formResponseId": "4", "responseStatus ":" b "}, я хочу записать идентификатор ответа формы, который соответствует статусу b. аналогично он имеет тысячи ответов. Сначала мне нужно сохранить все, а идентификатор ответа и значения индекса состояния должны совпадать после сохранения в массиве –