#properties #soapui
Вопрос:
У меня есть набор тестов с несколькими тестами (службы REST). Для нескольких атрибутов мне нужно заполнить в них метку времени. Я использую свойство (myDateTime) с этим значением:
${=def now = new Date();now.format("yyyy-MM-dd_HH-mm")}
Это работает нормально, но мне нужно использовать одно и то же значение несколько раз в течение более длительного периода времени.
Поэтому моя идея состояла в том, чтобы сгенерировать myDateTime в начале выполнения теста, а затем скопировать его в другое свойство, которое будет содержать это однократно сгенерированное значение (staticDateTime), а затем использовать это staticDateTime в запросах.
Проблема в том, что когда я пытаюсь использовать шаг передачи свойств, он копирует всю строку, упомянутую выше, без ее оценки и вставки только результирующего значения.
Может ли кто-нибудь помочь мне правильно скопировать объект или, возможно, предложить другое решение этой проблемы?
Спасибо
Ответ №1:
Вы можете сделать это с помощью простого шага сценария. Существуют различные уровни свойств, в зависимости от области, которую вы хотите, чтобы свойство имело.
Установка значений:
testRunner.testCase.setPropertyValue("propName", propValue) testRunner.testCase.testSuite.setPropertyValue("propName", propValue) testRunner.testCase.testSuite.project.setPropertyValue("PropName", propValue) com.eviware.soapui.SoapUI.globalProperties.setPropertyValue("propName", propValue)
Доступ к значениям:
def myVal = testRunner.testCase.getPropertyValue("propName") def myVal = testRunner.testCase.testSuite.getPropertyValue("propName") def myVal = testRunner.testCase.testSuite.project.getPropertyValue("PropName") def myVal = com.eviware.soapui.SoapUI.globalProperties.getPropertyValue("propName")
Комментарии:
1. Привет. Спасибо вам за ваш ответ. К сожалению, я не могу его запустить. У меня есть свойство myDateTime, определенное на TestSuite, поэтому я думаю, что должен использовать вторую строку из вашего примера. Поэтому, когда я запускаю строкуgt;gt;
testRunner.testCase.testSuite.setPropertyValue("Testing", myDateTime)
, я получаю ответ:groovy.lang.MissingPropertyException: No such property: myDateTime for class: Script 44 error at line: 1
2. Это работает на SoapUI с открытым исходным кодом 5.6.0 с Java 11:
def myDateTime = new Date().format("yyyy-MM-dd_HH-mm") log.info myDateTime testRunner.testCase.testSuite.setPropertyValue("Testing", myDateTime) def readVal = testRunner.testCase.testSuite.getPropertyValue("Testing") log.info readVal
3. Большое вам спасибо, это прекрасно работает. Извините, что не получилось с первой попытки 🙂