Использование GroovyScript в SoapUI для доступа и блокировки внешнего файла

У меня есть набор из 60 тестов в проекте в SoapUI, который я хочу запустить одновременно. Каждый тестовый пример должен использовать значение для работы. Значения хранятся во внешнем файле (электронной таблице или текстовом файле). Каждый тестовый пример должен получить значение из этого файла и использовать его. Однако, когда я запускаю набор тестов, несколько тестов получают одно и то же значение, однако для теста можно использовать только одно значение (одно и то же значение нельзя использовать более чем в 1 тесте одновременно). Я хотел бы, чтобы к внешнему файлу обращались по одному тестовому набору за раз в soapUI. Включает ли это блокировку или какую-то систему очередей, или какой groovyscript я мог бы использовать? Благодарность


person user3069990    schedule 05.12.2013    source источник
comment
Как они получают разные значения? Они тоже пишут в файл?   -  person tim_yates    schedule 05.12.2013
comment
У меня есть отличный скрипт в начале каждого теста, который читает файл построчно, принимает значение и помещает его в свойство на уровне теста. После того, как значение выбрано, у меня есть сценарий, чтобы он добавлял USED в конец этого значения в файле, так что, если другой тест затем читает файл, он будет игнорировать любые значения, которые имеют USED в конце, потому что они находятся в использовать в другом тесте. Проблема, с которой я сталкиваюсь, заключается в начале запуска всех тестов, потому что они одновременно обращаются к файлу, поэтому одно и то же значение может быть получено, например, двумя тестами.   -  person user3069990    schedule 05.12.2013
comment
Вы пробовали синхронизированный статический метод для чтения значения, обновления файла и возврата значения?   -  person tim_yates    schedule 05.12.2013
comment
Я новичок в groovy, поэтому не знаю, как это написать?   -  person user3069990    schedule 05.12.2013
comment
На самом деле это, вероятно, не сработает, поскольку я предполагаю, что вы имеете в виду, что у вас просто есть код на каждом этапе.   -  person tim_yates    schedule 05.12.2013
comment
Нет ли в SoapUI способа создать фиктивный веб-сервис, который просто возвращает идентификаторы по порядку (по одному) при вызове?   -  person tim_yates    schedule 05.12.2013


Ответы (1)


Я не могу понять, как заставить это работать с вашим внешним файлом, но я могу придумать другой способ, только используя SoapUI. Вот мое предложение для решения:

  1. Создайте новый TestCase, содержащий только шаг тестирования DataGen.
  2. Настройте его так, чтобы он генерировал нужные вам числа.
  3. Измените его режим на «ЧТЕНИЕ», чтобы он генерировал новое значение каждый раз при выполнении шага теста.
  4. Теперь, когда вам нужно одно из этих значений, вместо доступа к внешнему файлу добавьте Запустите TestCase TestStep, чтобы запустить новый тестовый пример DataGen, и обязательно верните сгенерированное число как свойство. Используйте его там, где вам нужен сгенерированный номер.

Пока я пишу это, я только что понял, что это работает только с профессиональной версией SoapUI. Если у вас нет лицензии, вы можете получить пробную версию на веб-сайте.

person ArianJafari    schedule 10.01.2014