SoapUI — Как скопировать свойство (с помощью заводного скрипта) в другое свойство

#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. Большое вам спасибо, это прекрасно работает. Извините, что не получилось с первой попытки 🙂