Jmeter - выводить журнал только при сбое запроса или подтверждения - PullRequest
0 голосов
/ 25 октября 2018

Ниже приведен код JSR223 Groovy, в котором мы пытаемся войти в систему только в случае сбоя запроса или подтверждения или в обоих случаях.

import groovy.json.JsonSlurper

String jsonString = SampleResult.getResponseDataAsString();
String StartProcessResponseCode= SampleResult.getResponseCode();
def tokenJSON = new JsonSlurper().parseText(jsonString)

if (!SampleResult.isSuccessful()) {
 log.info("Failed Response Data---------"+SampleResult.getResponseDataAsString())
 }

String status= tokenJSON.status

assert StartProcessResponseCode.equals("200")
assert "SUCCESS".equals(status)

for (a in SampleResult.getAssertionResults()) {
  if (a.isError() || a.isFailure()) {
  //log.error(Thread.currentThread().getName()+": "+SampleLabel+": Assertion 
  failed for response: " + new String((byte[]) ResponseData));
  log.info("Failed Assertion Message---------------------"+AssertionResult.getFailureMessage());
  log.info("Failed Response Data---------------------"+SampleResult.getResponseDataAsString())
}

}

Но в этом случае ошибки не регистрируются длялюбая ошибка подтверждения

1 Ответ

0 голосов
/ 25 октября 2018

Прежде всего, если вы хотите захватить всю информацию об утверждениях, вы должны вместо этого использовать JSR223 Listener , согласно Порядок выполнения элементов тестирования JMeter прослушиватели выполняются после утверждений, поэтомугарантирует вам, что все утверждения будут применены до вашей проверки.

Что касается самого вопроса, я ожидаю, что ваша логика утверждений не работает на assert операторах, которые выбрасывают необработанные AssertionError и ваш тест просто не выполняется

См. Следующий пример:

log.info('Assertion Start')
assert 'foo'.equals('bar')
log.info('Assertion Ended')

в зависимости от того, что вы реализовали, вы должны увидеть сообщение Assertion Ended в файле jmeter.log , однако это не произойдет, потому что assert терпит неудачу

enter image description here

И если вы измените свой код, чтобы перехватывать AssertionError, например:

log.info('Assertion Start')
try {
    assert 'foo'.equals('bar') : "Failure here"
}
catch (AssertionError e) {
    log.info(e.getMessage())
}
log.info('Assertion Ended')

Вы увидите оба Сообщение об ошибке AssertionEr * и Assertion Ended

JMeter Assertion Groovy

См. Сценарии JMeter-утверждений в Groovy - учебное пособие для получения дополнительной информацииинформация об использовании утверждений JSR223 в JMeter

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