Можно ли добавить свойство к объекту messageExchange в «Сценарии утверждения» и получить значение этого свойства позже в «Сценарии TearDown TestSuite»?
По сути, я хочу узнать, сколько записей получено REST API, в окне «TestSuite TearDown Script». Я хочу сделать это без необходимости обрабатывать ответы всех шагов в «TestSuite TearDown Script».
Вот как я добавляю свойство в «Сценарий утверждения».
import groovy.json.JsonSlurper;
def resp = messageExchange.response.responseContent;
def jslurp = new JsonSlurper().parseText(resp);
messageExchange.addProperty("recordCount",Integer.toString(jslurp.size()));
Я хочу получить «recordCount» в «TestSuite TearDown Script» для всех 40+ результатов REST API, которые выполняются как часть моего TestSuite.
Каким-то образом, если я смогу получить ссылку на объект messageExchange каждого шага из testStepResult, я смогу достичь того, что пытаюсь сделать.
Любые указатели или ваши мысли будут оценены.
Спасибо
Мне никогда не приходилось извлекать свойство из объекта, установленного в одной части soapUI, и использовать его в другой. У меня такое чувство, что мыло не разделяет это мнение.
Итак, как насчет установки настраиваемого свойства, скажем, на уровне набора тестов? В сценарии утверждения вы можете использовать messageExchange
для установки такого свойства:
def recordCounter = messageExchange.modelItem.testStep.testCase.testSuite.
setPropertyValue('recordCounter', 'your number');
Затем в вашем сценарии удаления вы можете получить его с помощью:
def recordCounter = context.expand('${#TestSuite#recordCounter}')
Каким образом громоздко? Обновление свойства - это всего лишь одно заявление. Вы даже можете поместить его в обработчик события, а не в утверждение, и запустить его автоматически.
Спасибо за ваш ответ. В моем случае я выполняю несколько шагов несколько раз, поэтому запись recordCount каждого выполнения в свойства testCase / testSuite сделает его громоздким. Вот почему я надеялся добавить свойства messageExchange сценария утверждения и получить к ним доступ из объекта testStepResult (точнее, RestRequestStepResult).