Попытка написать сценарий groovy для создания динамических c переменных для запуска тестовых примеров в SoapUI - PullRequest
0 голосов
/ 06 мая 2020

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

все возможные тесты и среды имеют свои собственные настраиваемое свойство в тестовом примере, в котором размещен сценарий groovy. Если для настраиваемого свойства установлено значение 0, тест не запускается. если это что-то еще, что 0, тест будет запущен.

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

Вот один из сценариев построения переменных.

runEnv =  "["
// Env. 7031
    if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
        {runEnv = runEnv + "'7031'"}
// Env. 7131
    if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
        // runs if a comma is needed to separate values
        {if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
            {runEnv = runEnv + ",'7131'"}}
    else
        // runs if value is the first in line and doesnt need comma
        {if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
            {runEnv = runEnv + "'7131'"}}
// Adding the end of runEnv
runEnv = runEnv + "]"
// Verification message confirming what environment(s) will be tested
log.info 'Environment Selection is: ' + runEnv

runEnvironment = runEnv

Ожидаемый результат этого сценария - то, что значение runEnvironmet будет ['7031'], если настраиваемое свойство env-7031 установлен на 1, а env-7131 установлен на 0

Когда я запускаю этот скрипт, я получаю этот журнал:

Wed May 06 07:09:38 EDT 2020:INFO:Environment Selection is: ['7031']
Wed May 06 07:09:38 EDT 2020:INFO:Test Case Selection is: ['Build-Deploy - All Tables']
Wed May 06 07:09:38 EDT 2020:INFO:Release Artifact Runner
Wed May 06 07:09:38 EDT 2020:INFO:Start Test Runner
Wed May 06 07:09:38 EDT 2020:INFO:Environment: [

мы видим, что Environment не выглядит как должно. [вместо ['7031']

Можно ли использовать groovy для создания переменной таким образом?

TL: DR

пытается получить жестко запрограммированный переменная

runEnvironment = ['7031']

из сценария, который использует настраиваемые свойства для создания этой переменной с нуля. как это моделирование

runEnvironment = '[' + "'7031'" + ']'

1 Ответ

0 голосов
/ 11 мая 2020

Моя проблема заключалась в том, что я строил текстовую строку. Сценарию нужен массив от go до

Вот как я научился создавать свой массив. Как определить массив в Groovy soapUI?

Это сценарий, на котором я закончил:

def maxEnv = 0  
// defining how many environments the array will include
    // Env. 7031
        if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '0'){}else{
            testRunner.testCase.setPropertyValue( 'Env-7031', '1' ) 
            maxEnv = maxEnv + 1 }
    // Env. 7131
        if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '0'){}else{
            testRunner.testCase.setPropertyValue( 'Env-7131', '1' ) 
            maxEnv = maxEnv + 1 }

log.info maxEnv ("Environments")

// Building runEnv array
def runEnv = new Object[maxEnv]
curEnv = 99

    // Env. 7031
        if (testRunner.testCase.getPropertyValue( 'Env-7031' ) == '1')
            {if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
            runEnv[curEnv] = '7031'} else {}
    // Env. 7131
        if (testRunner.testCase.getPropertyValue( 'Env-7131' ) == '1')
            {if (curEnv == 99){curEnv = 0}else{curEnv = curEnv + 1)
            runEnv[curEnv] = '7131'} else {}

runEnvironment = runEnv
...