2017-01-12 9 views
0

Только начинаю изучать ReadyApi и Groovy, Я хотел бы объединить 3 свойства проекта в одно свойство с помощью Groovy Script как шаг в моем тесте SoapUI:Сочетание Ready! API Test Case Свойства в Groovy

Prop1 = "\\ap52\x$" 
Prop2 = "\folder1\folder2\" 
Prop3 = "123456789" 

Где:

  • prop1 является чистым ресурсом, который может изменить
  • prop2 является расположение папки, которая вряд ли изменится
  • Prop3 на самом деле случайный 16-значный номер сгенерировано и заселено в Prop3 с другого шага

Мне нужно создать PropX, чтобы я мог передать свойство в шаг ожидания файла.

Желаемый результат сценария со статическим текстом:

PropX = "\\ap52\x$\folder1\folder2\filename_123456789_??????????.xml" 
+0

нашел его самостоятельно def string1 = testRunner.testCase.testSuite.project.getPropertyValue ("Prop1"); def string2 = testRunner.testCase.testSuite.project.getPropertyValue ("Prop2"); def string3 = testRunner.testCase.testSuite.project.getPropertyValue ("Prop3"); testRunner.testCase.testSuite.project.setPropertyValue ("fileWaitLoc", string1 + string2 + "response_" + string3 + "_ ?????????? xml") – PapaBear

+1

Пожалуйста, отправьте свой комментарий в виде ответа. Автоответчики в порядке. Кроме того, в ответ вы можете использовать форматирование кода. – Arkadiy

+0

Я не специалист по Groovy, но '\' 'кажется подозрительным. Вы уверены, что его не' \\ '' или '/ ''? – Arkadiy

ответ

0

Основная среда для динамической генерации Ready! Свойства теста API с Groovy: Ready! API Dynamic Properties, Property Expansions и Variable Access in Groovy Script Steps.

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

Как demonstrated elsewhere, ваш лучший выбор для эффективного объединения строк в Groovy, чтобы избежать Java-МОГЛО +-подходу и раскрыть потенциал GString interpolation:

def prop1 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​1'); 
def prop2 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​2'); 
def prop3 = testRunner.testCase.testSuite.project.getPropertyValue('Prop‌​3'); 
testRunner.testCase.testSuite.project.setPropertyValue('file‌​WaitLoc', "${prop1}${prop2}response_${prop3}_??????????.xml") 
+0

Почему вы добавили тег [tag: coded-ui-tests] в вопрос? Нет ничего в вопросе о кодированном пользовательском интерфейсе или о Visual Studio, который используется для создания и запуска таких тестов. – AdrianHHH

+0

@AdrianHHH Извините. Я был вне своего воображения, что общее имя тега будет эксклюзивным для конкретного Я должен был внимательно прочитать описание тэга. Я обменял тег. Спасибо за ваш дружеский намек. –

0

нашел это самостоятельно ...

def string1 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​1"); 
def string2 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​2"); 
def string3 = testRunner.testCase.testSuite.project.getPropertyValue("Prop‌​3"); 
testRunner.testCase.testSuite.project.setPropertyValue("file‌​WaitLoc", string1 + string2 + "response_" + string3 + "_??????????.xml") 

Однако это до сих пор не работают при отправке этого PropertyValue в «Жди Файл» шаг в ReadyAPI ... он не любит использования подстановочных в FileName, то есть «????????? ?». Мне нужно было разработать для удаления добавленные символы, используемые для уникального наименования в имени файла, чтобы шаг File Wait работал.