2016-04-20 2 views
0

У нас есть веб-приложение Java EE, которое мы хотим разместить в конвейере непрерывной доставки. Я новичок в этом и имею несколько вопросов - Как будет выглядеть трубопровод? (Учитывая, что мы используем Git/Jenkins/Maven/Artifactory) Какие тесты должны быть созданы и когда они должны запускаться? Любые другие предложения?Непрерывная доставка для приложения Java EE

Благодаря Яна

+0

У нас есть следующий трубопровод: сборка (с модульными испытаниями) -> интеграционные тесты + SonarQube -> развертывание на стадии DEV -> развертывание на этапе QA -> развертывание на этапе PROD. Сборка запускается SCM, развертывание заданий выполняется вручную. Мы используем Jenkins [плагин конвейера доставки] (https://wiki.jenkins-ci.org/display/JENKINS/Delivery+Pipeline+Plugin) для управления конвейерами. Задача развертывания делает SCP файла WAR на сервере и перезапускает Tomcat через сценарий оболочки (все они включены в наш скрипт сборки Gradle). –

+0

Спасибо @SteffenHarbich - в какое облако вы развертываете? – user2666282

+0

Также вы запускаете все тесты как часть конвейера или есть другие тесты? Если да, когда и как вы их запускаете? – user2666282

ответ

1

истории просматриваются командой до начала работы. Не располагайте окно времени (например, спринты), скорее стройте рассказы в непрерывной трубе. Тест определяет, какие тесты будут автоматизированы и какие будут выполняться вручную. Test pyramid Вступает в игру. Используйте инструменты, такие как rest-assured (Java) или HTTParty и др. Для Ruby (множество вариантов с Ruby) для проверки конечных точек веб-сайта на уровне обслуживания (скорость - это ключ для CI). Чистые тесты пользовательского интерфейса должны составлять около 10% от всех автоматизированных тестов. Тесты UI занимают больше всего времени. Выберите тесты пользовательского интерфейса, которые выполняют как можно больше JavaScript на стороне клиента. Вы можете использовать автоматические инструменты сравнения снимков экрана, такие как Applitools и др. Для ускорения регрессионных тестов для пользовательского интерфейса. Кстати, я упоминаю только инструменты как примеры. Я не поддерживаю какой-либо инструмент или продукт. Сделайте свое собственное исследование.

Дженкинса (или Teamcity) шаги могут выглядеть следующим образом:

  1. Сложение App
  2. (зависит от шага 1) блок выполнения тестов
  3. (зависит от шага 2) испытаний запустить сервис слоя
  4. (в зависимости от шага 2) запуска тестов слоя UI
  5. (зависит от шагов 3 & 4) развертывания для тестирования

После тестирования выполните любые проверки вручную (например, смотреть и чувствовать).

Развертывание продукции один или несколько раз в неделю (10 часов популярны).

Запуск автоматизированного производственного дыма (например, тесты только для чтения, которые читают DB/BI со служебным уровнем и сравнивают с отображаемыми значениями UI) для проверки производственного развертывания. Были протестированы процедуры возврата. :-)

Смежные вопросы