Условное Goto основано на ответе Groovy Result - PullRequest
0 голосов
/ 28 апреля 2019

Прежде всего, я не уверен, возможно ли это, но я хочу сделать скрипт groovy для условного выполнения того или иного шага на основе результата скрипта groovy:

Варианты, которые я хочу иметь: 3:

Активный Неактивный Стоп

У меня есть шаг сценария groovy для определения окна пользовательского интерфейса, которое будет отображаться следующим образом:

def ui = com.eviware.soapui.support.UISupport;
def path = ui.prompt("Active Inactive or Stop","Title","");
def regResult = path

Итак, в зависимости от того, что я печатаю во всплывающем окне, сделайте следующее:

If Active / Go to testRunner.gotoStepByName("InjectActive")
If Inactive / Go to testRunner.gotoStepByName("InjectInactive")
If Stop / Go to testRunner.gotoStepByName("Final Results")

Изображение текущего сценария

Есть идеи, как мне это сделать?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019

Оператор переключения в Groovy намного мощнее и намного чище в вашем случае:

def result = testRunner.testCase.getTestStepByName("Where").getPropertyValue("result")

switch (result) {
    case "Active": testRunner.gotoStepByName("InjectActive"); break 
    case "Inactive": testRunner.gotoStepByName("InjectInactive"); break
    case "Stop": testRunner.gotoStepByName("Final Results"); break
    // in case result is null or empty
    case {!it}: testRunner.gotoStepByName("result is null or empty"); break
    // handle any other values
    default: testRunner.gotoStepByName("Unexpected value")
}

Надеюсь, это поможет.

0 голосов
/ 28 апреля 2019

Я понял, как это сделать:

def result = testRunner.testCase.getTestStepByName("Where").getPropertyValue("result")

if (result == ("Active")) {
  testRunner.gotoStepByName("InjectActive")
} 
else if (result == ("Inactive")){
  testRunner.gotoStepByName("InjectInactive")
}
else if (result == ("Stop")){
  testRunner.gotoStepByName("Final Results")
}
...