Как автоматизировать настройку системы для тестирования корпоративных приложений? - PullRequest
0 голосов
/ 02 апреля 2012

Я делаю системные тесты наших приложений Java EE, развернутых на удаленном экземпляре JBoss.

Я проверяю, выдает ли система правильные данные после настройки системы в определенном состоянии.

  1. Состояние системы обновляется путем заполнения БД через JDBC, вызова API RMI и отправки сообщений во внешнюю очередь (openMQ), и все это из одного теста JUnit
  2. Состояние системы читается путем вызова API RMI изТесты JUnit
  3. Система устанавливается в исходное состояние с помощью набора сценариев оболочки и SQL (сброс схемы БД, очистка очереди, перезапуск JBoss и сброс ее состояния)

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

  • Требуется минута или две, чтобы установить систему в ожидаемое состояние.Значительное время этого процесса занимает перезапуск JBoss (кэш Hibernate очищается путем удаления tmp, work, cache, каталогов данных), удаления всех таблиц, последовательностей и других объектов БД и импорта дампа БД.
  • Я смешиваюразличные технологии (bash, imp, Java) для сброса тестируемой системы и сценариев расположены на разных машинах.Например, мне все еще нужно вызывать автоматические сценарии на удаленных машинах вручную для сброса БД, очереди и JBoss.Это не только усложняет процесс сброса, но и усложняет обслуживание всего теста.

Я хотел бы сделать это решение быстрее и понятнее.Да, я мог бы больше изучать технологии, но мне интересно, есть ли лучший опыт или пример, из которого я мог бы поучиться?

1 Ответ

2 голосов
/ 02 апреля 2012

Одна вещь, которую вы можете посмотреть здесь, это Аркиллиан . Если вы держите каждый тестовый набор небольшого размера и используете современную версию JBoss AS (7.1), то перезапуск JBoss занимает секунду, может быть, максимум две.

DBUnit может помочь с настройкой вашей базы данных. Если вы сохраняете каждый тестовый набор небольшим, количество таблиц, которые необходимо очистить и установить в известное состояние, должно быть относительно небольшим и обычно выполняется за несколько секунд.

...