Выберите случайное значение из списка, затем используйте это значение в SOAP Request TestStep - PullRequest
1 голос
/ 21 февраля 2020

У меня есть короткий список значений: [Option_1, Option_2, Option_3].

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

У меня есть Groovy Script TestStep:

def z = ["Option_1", "Option_2", "Option_3"]
Random rnd = new Random()

def option = z[rnd.nextInt(z.size)]

testRunner.testCase.setPropertyValue( "selectedOption", option )

На моем Soap этапе тестирования я попытаться вызвать переменную следующим образом:

<value>${#selectedOption}</value>

Я даже близко здесь? Я чрезвычайно новичок в SoapUI и Groovy. Любая помощь будет высоко ценится.

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

фактически SOAPUI (Pro) предоставляет возможность генерирования случайных данных в al oop. Если вы используете источник данных L oop, вы можете использовать «Генератор данных» в качестве источника данных. Я попытался быстро, и это может соответствовать вашим требованиям.

Создайте шаг источника данных:

  • создайте свойство (ie. Output)
  • выберите Генератор данных как Источник данных
  • количество строк = 1
  • Тип свойства: значение из набора
  • Пользовательские значения:
    • добавьте / щелкните в поле Пользовательские значения: Option_1 idem для Option_2 затем Option_3
    • добавить / щелкнуть еще раз (пустое поле) => Я не знаю, почему это работает так, но если вы этого не сделаете, random будет учитывать только два первых data
  • Режим генерации: Random

Если вы запустите l oop, содержимое «output» будет случайным образом одним из ваших пользовательских ценности. Затем вам просто нужно будет использовать выходное свойство, как вы обычно делаете для других шагов (поскольку вы новичок в SOAP пользовательском интерфейсе, на шагах, которые будут использовать случайное значение, щелкните правой кнопкой мыши и выполните «Получить данные» в DataSource шаг использования случайного вывода)

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

удачи;)

0 голосов
/ 23 февраля 2020

Ваш код верен и выдает различные значения правильно, как показано ниже

enter image description here

Но способ, которым вы пытаетесь получить доступ к свойству, должен сделать это следующим образом.

Поскольку вы пытаетесь получить доступ к свойству testcase . Вы должны использовать следующий синтаксис

<value>${#TestCase#selectedOption}</value>

Это ключевое слово TestCase пропущено. Надеюсь, вы используете это свойство на уровне тестового набора. если вы хотите использовать в разных тестовых случаях, вы можете установить на уровне набора, а затем использовать $ {TestSuite # selectedOption}

...