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