Как я могу проверить HTTP-запрос в JMeter, когда служба недоступна - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь проверить http-запрос, но служба недоступна, есть ли способ создать фиктивный ответ в JMeter? Цель этого состоит в том, чтобы проверить запрос, который фактически отправляется

Однако рекомендуется использовать фиктивный пробоотборник, если другой тестер не получил этот плагин, то он не сможет его протестировать. Есть ли другой встроенный сэмплер или инструмент, который можно использовать?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2019

Запрос не будет отправлен , так как вам необходимо установить базовое TCP-соединение до отправки любых данных по проводам.

Если вы хотите проверить тот факт, что сервер не работает, вы можете определить тайм-ауты подключения и ответа, настройки находятся на вкладке «Дополнительно» выборки HTTP Request (или даже лучше *)1009 * HTTP-запрос по умолчанию )

enter image description here

Приведенная выше конфигурация «скажет» JMeter попытаться установить соединение, и если оно не будетответ через 1 секунду - сэмплер будет помечен как сбойный:

enter image description here

Если вы ожидаете, что это такое поведение, вы можете настроить JMeter на прием этого ответадобавив подтверждение ответа как дочерний элемент запроса и сконфигурировав его следующим образом:

  • Поле для проверки: Response Code
  • Правила сопоставления с образцом: Equals
  • Шаблоны для тестирования: Non HTTP response code: org.apache.http.conn.ConnectTimeoutException
  • Галочка Ignore Status box

enter image description here

Таким образомJMeter будет считать запрос на тайм-аут успешным:

enter image description here

0 голосов
/ 07 ноября 2019

На самом деле, в конечном итоге вы можете делать все, что захотите, с помощью JSR223 Sampler.

И довольно просто кодировать HTTP-запрос в Groovy, поскольку функциональность HTTP-клиента эффективно встроена в среду, например:

def urlString = 'http://' + restHost + ':' + restPort + '/' + restPath + '?' + paramString.toString()
def url = urlString.toURL()
def response = url.getText()

Все просто.

Вы можете поймать ошибку протокола и ответить всем, что захотите - у вас есть полный доступ к вашему SampleResult объекту. из сценария:

try {
   ...
} catch(IOException ioe) {
    SampleResult.setResponseCode("200")
    SampleResult.setResponseMessage("FAKE OK")
    SampleResult.setResponseData("My dummy response!", "UTF-8") 
    SampleResult.setSuccessful(true)
}

PS Не уверен, что я действительно понимаю причину такого запроса.

Если ситуация настолько неудачна, что команда, ответственная за тестируемую службу, отказывается так плохо сотрудничать, я бы довольно быстро сделал фиктивную услугу и оставил бы тест чистым, простым и универсальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...