Что определяет, пройдет ли сценарий LoadRunnner или нет, по сравнению с пройденной транзакцией?

Я использую LoadRunner Vugen (Virtual User Generator) для реализации сценария C, и я немного озадачен, потому что получаю такой результат:

введите здесь описание изображения

Обычно, когда я использую некоторые функции, такие как

web_reg_find()
web_reg_save_param_regexp()
web_custom_request()

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

Но теперь мне не ясно, что делать, чтобы скрипт прошел или не прошел, как я хочу. Мне уже удалось выполнить транзакцию, используя:

lr_end_transaction(NOMBRE_TRANSACCION, transactionResult);

где transactionResult оценивается как LR_FAIL или LR_PASS в зависимости от моих потребностей, но я не знаю, какие правила применяются для того, чтобы сценарий вел себя так же, как транзакция. Я попытался вернуть разные значения int из основного тела Action.c. Я также посмотрел в документах, но, возможно, я не ищу должным образом, потому что ничего не нашел.

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

Заранее спасибо.


person madtyn    schedule 10.02.2021    source источник


Ответы (2)


Эмпирическое правило: если ваш запрос попадет в журнал ошибок HTTP на сервере, то в LoadRunner произойдет сбой. 4xx и 5xx считаются ошибками, которые отображаются в журнале. 3xx — навигация/управление. 2хх это успех. 1хх носит информационный характер. Таким образом, правила устанавливаются w3c для кодов состояния HTTP. LoadRunner просто соблюдает стандарты.

Ваши разработчики не должны использовать сообщения состояния HTTP для своего приложения. Они должны возвращать сообщения об ошибках приложения в действительном ответе HTTP 2xx. Вот почему вы проверяете ожидаемые результаты, что является стандартной частью любого эксперимента с научным методом. Для любого запроса к системе у вас есть ожидаемое условие ответа. Вы должны проверить этот ответ. Если вы не получили этот ответ, даже с ответом HTTP 200, который находится в пределах ваших требований к времени ответа, у вас все еще есть сбой, поскольку приложение не отвечает методом, для которого ожидаемый результат присутствует для данного ввода.

Поскольку теперь вы, вероятно, продолжаете работу при ошибке, вам может не понадобиться устанавливать условие для отказа. Статус транзакции по-прежнему должен быть неудачным, если вы не хотите изменить его на LR_PASS на основе какой-либо логики.

person James Pulley    schedule 13.02.2021
comment
Разработчики не должны использовать коды состояния HTTP, но они это делают, и мы не имеем над ними власти. Наш единственный выбор — посмотреть код внутри 404 и определить, можно ли считать ошибку недостатком производительности или просто отсутствием данных в базе данных. - person madtyn; 17.02.2021
comment
Да, у вас есть контроль над ними. Вы можете отказать им в QA за использование кодов состояния HTTP для статуса приложения. Это функциональный вопрос. Если это не работает для одного, то оно не должно переходить к оценке для многих в тесте производительности. - person James Pulley; 19.02.2021

о переданном сценарии было сообщено, потому что, вероятно, фактической ошибки нет. вы просто устанавливаете транзакцию на сбой. Без каких-либо ошибок, выдаваемых самим vugen, он считает любой сценарий пройденным, независимо от того, какой статус транзакции установлен.

ошибки в вугене:

  • любое неправильное использование функций lr (например, неправильное количество аргументов ИЛИ недопустимые аргументы)
  • время запроса истекло
  • по http-кодам ошибок (4** и выше)
  • web_reg_find не удалось найти текст в ответ
  • weg_reg_save_param не удалось сохранить параметр из ответа

..но то, что vugen сообщает здесь, все равно не имеет значения. когда LR_FAIL используется с lr_end_transaction, транзакция будет отмечена как неудачная в итоговом отчете. ни в одном отчете нет такой вещи, как оператор, переданный сценарием. Это просто фишка Vugen.

Транзакции должны завершаться неудачей только в случае фактической ошибки. Только в некоторых редких случаях статус транзакции нужно устанавливать вручную.

Использовать проверку текста

Всегда полезно использовать текстовые проверки для проверки любого ответа!

web_reg_find("Text=text indicates valid response", LAST);

если текст не найден, транзакция завершится ошибкой и будет напечатано сообщение об ошибке.

Чтобы сделать транзакцию неудачной, если http-код в порядке, но в ответе есть сообщение об ошибке, используйте:

web_reg_find("Text=error message indicates invalid response", "Fail=Found", LAST);

если текст найден, трансакрион завершится ошибкой и будет напечатано сообщение об ошибке

person br41nst0rm    schedule 16.02.2021
comment
Я знаю об ошибках, но разработчики приложения возвращают 404, когда данные не найдены в базе данных. Мы тестируем производительность, но 404 из-за отсутствия данных в базе данных никоим образом не указывает на отсутствие производительности, поэтому я должен различать код ошибки, который они отправляют в теле 404. - person madtyn; 17.02.2021