Возможность SOAPUI переключаться между подключениями к базе данных для набора тестов

Немного предыстории:

У меня есть большое количество тестовых случаев SOAPUI, которые тестируют веб-сервисы, а также транзакции базы данных. Это работало нормально, когда было одно или два разных окружения, так как я просто клонировал исходный набор тестов, обновил соединения с базой данных, а затем обновил конечные точки, чтобы они указывали на новое окружение. Несколько изменений здесь и там означали, что я просто буду клонировать тестовые случаи, которые были обновлены для других тестовых наборов.

Тем не менее, у меня сейчас есть 6 различных сред, которые требуют запуска этих тестов, и, как и ожидалось, я добавлял больше тестовых случаев, а также изменяющих или исходных. Это вызывает проблемы при запуске старых тестовых наборов, поскольку их необходимо повторно клонировать.

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

У меня есть доступ только к бесплатной версии SOAPUI

Вот как выглядит структура в данный момент:

 Rao06 июн. 2016 г., 14:14
Используете ли вы один и тот же тип базы данных или разные базы данных, такие как oracle, mysql, pgsql, mang0db для каждого пакета? Я предполагаю, что вы используете один тип базы данных, скажем, oracle, и используете разные серверы для тестирования.
 user61006 июн. 2016 г., 15:26
@ Рао, это правильно. я использую один тип базы данных (оракул) и использую разные серверы для тестирования

Ответы на вопрос(1)

Решение Вопроса

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

Подготовьте свой проект с необходимым набором тестов. При наличии подробной информации о сервере базы данных замените фактические значения наproperty expansion для деталей соединения.

На шаге Jdbc измените строку подключения с: jdbc:oracle:thin:scott/[email protected]//myhost:1521/myservicename

чтобы: jdbc:oracle:thin:${#Project#DB_USER}/${#Project#DB_PASSWORD}@//${#Project#DB_HOST}:${#Project#DB_PORT}/${#Project#DB_SERVICE}

Вы можете определить следующие свойства в файле и назвать его соответственно. Скажем, следующие свойства относятся к базе данных, размещенной наhost1 и есть детали, назовите его какhost1.properties, Когда вы хотите запустить тесты противhost1 базы данных, импортируйте этот файл на уровне свойств пользователя.

DB_USER=username
DB_PASSWORD=password
DB_HOST=host1
DB_PORT=1521
DB_SERVICE=servicename

Точно так же вы можете сохранить столько файлов свойств, сколько захотите, и импортировать соответствующий файл, прежде чем запускать на соответствующем сервере БД.

Вы можете использовать этот файл свойств не только для базы данных, но и для различных веб-сервисов, размещенных на разных серверах, таких как отслеживание, qa, production без изменения конечных точек. Все, что вам нужно, это установить расширение свойства в конечной точке.

Обновление на основе комментария

Если вы хотите использовать то же самое для веб-служб, перейдите на интерфейс службы -> вкладка Конечные точки службы, а затем добавьте новую конечную точку${#Project#END_POINT}/context/path, Теперь нажмите наAssign кнопка. ВыбратьAll requests and Test Requests от выпадающего. И вы также можете удалить другие конечные точки

Добавьте новое свойство в свой файл свойствEND_POINT и значение какhttp://host:port, Это также дает вам преимущество, если вы хотите запустить тесты снова, скажем, httpshttps://host:port.

И если у вас есть несколько служб / wsdls, которые размещены на разных серверах, вы можете использовать уникальное имя свойства для каждой службы.

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

 Rao06 июн. 2016 г., 17:32
Обновлю ответ. Кстати, то, что вы искали, ответили, как принять это?
 user61007 июн. 2016 г., 16:55
быстрый вопрос. если у меня есть конечная точка, которая выглядит так:xxxx.xxx.co.uk:80/[path к WSDL] я бы дал абсолютный путь или только порт host:? также, как я могу обслуживать несколько wsdls с одним и тем же хостом; порт, но разные пути? Спасибо
 user61007 июн. 2016 г., 15:18
Большое спасибо за вашу помощь, Рао. Очень признателен :)
 user61007 июн. 2016 г., 17:10
Я получил это работает! спасибо, Рао, да, как вы сказали, он может обрабатывать несколько конечных точек, поэтому я только что обновил 15 конечных точек, которые мне теперь нужно было посмотреть на один хост: порт, но добавил абсолютный путь к / context / path внутри конечной точки службы. интерфейс
 Rao07 июн. 2016 г., 17:12
Рады узнать. Как я уже упоминал в ответе, вы можете сохранить файл свойств со всеми необходимыми подробностями для каждой среды, такими как dev, qa, staging и т. Д., И импортировать необходимый файл свойств по требованию.
 user61006 июн. 2016 г., 17:18
Большое спасибо за ответ Рао. Эта идея сработала хорошо. Пришлось немного подправить его, чтобы он соответствовал моим настройкам, так как я использую скрипты groovy, а также запросы JDBC, но это замечательно (Y). Как бы вы посоветовали мне переключаться между различными конечными точками для веб-сервисов? т. е. один запрос позвонил бы по адресу [email protected], и я бы повторил тот же тест снова для [email protected] .. и т. д.?
 Rao07 июн. 2016 г., 17:00
Проект может содержать несколько сервисов, используя разные wsdl. Каждый сервис может иметь разные конечные точки с разными операциями. Опять же, вы должны сказать, как службы вашего приложения развертываются в одном контейнере или в разных контейнерах. Если все службы развернуты в одном контейнере, то большинство из них будет иметь одинhost:portВ противном случае вы можете разные детали. Если оно одиночное, используйте одно свойство проекта, в противном случае определите больше из них по мере необходимости.

Ваш ответ на вопрос