Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как настроить Jenkins для работы с Selenium WebDriver, Java под Windows, Eclipse без TestNG / JUnit

junit
webdriver
java
testng
Теги: #<Tag:0x00007f7b620853b0> #<Tag:0x00007f7b62085248> #<Tag:0x00007f7b62085108> #<Tag:0x00007f7b62084fc8>

(Eliyahu Neploch) #1

Есть у меня несколько тестов написанных на Selenium WebDriver, Java без всяких там TestNG / JUnit, просто код Java который запускается и бежит.
Нужно настроить его запускаться через Jenkins.
В предыдущем обсуждении мне тут ответили, что Frameworks типа TestNG / JUnit не обязательны, но я пока не нашёл в интернете туториал объясняющий как настроить Jenkins под это.
Подскажите пожалуйста подобный тюториал. Предпочтительнее на Английском, можно и на Русском :wink:


(asolntsev) #2

Так а как же ваши тесты выглядят? Просто классы с main методом или как?
А как вы их сейчас компилируете и запускаете?


(Eliyahu Neploch) #3

Ну да, просто код в Eclipse. На кнопку Run нажимаю и запускаю. Окончательная версия кода делается executable jar файлом через extract to jar и запускается кликом мышки / batch файлом. Вообще-то вся эта кухня сейчас запускается windows scheduler-ом но начальнику это не нравится, хочет по правильному, jenkins-оном всё это делать


(asolntsev) #4

Ну, тогда такой способ никуда не годится.
Нужно, чтобы тесты

  1. Запускались из командной строки (для этого нужно написать скрипт на Gradle, Maven или Ant)
  2. Генерировали отчёты (для этого надо использовать JUnit или TestNG)
  3. И тогда в Jenkins останется всего-навсего добавить команду “gradle test”, “mvn test” или “ant test”.

Вот видеотуториал “Как начать писать UI тесты за 10 минут”: https://vimeo.com/106867878


(Eliyahu Neploch) #5

Спасибо!
Завтра посмотрю, разберусь


(Eliyahu Neploch) #6

И, если можно, расскажите вкратце что мне лучше выбрать / по каким критериям решать что выбрать: Gradle, Maven или Ant и тоже самое относительно JUnit или TestNG.
Спасибо!


(asolntsev) #7

Оба вопроса - холивары. Дело вкуса. Есть много споров на эти темы.

Вот лично мои предпочения.

  1. Gradle, Maven или Ant

    • лучше всего Gradle - он самый новый, быстрый, лакноичный. Единственный минус - если не очень-то знаком с синтаксисом Groovy, находить ошибки в билд-скрипте иногда нетривиально.
    • на втором месте Ant - билд-скрипт пишется на XML. Поэтому он вдвое длиннее, но зато любая IDE делает autocomplete.
    • и в худшем случае Maven. Он самый популярный, но так просто исторически сложилось. На самом деле он самый медленный, багнутый и вербозный.
  2. JUnit или TestNG

    • Я однозначно предпочитаю JUnit. Он проще и надёжнее.
    • TestNG можно использовать, ничего страшного в нём нет. Он даёт некоторые дополнительные фичи по сравнению с JUnit, но я убеждён, что эти фичи в случае UI-тестов вредные.

(Eliyahu Neploch) #8

Спасибо!


(Виктор) #9

А если просто взять и запускать из Jenkins этот batch файл через командную строку, то это будет слишком примитивно?


(Eliyahu Neploch) #10

Так оно и сейчас подобным образом запускается Windows Task Scheduler-ом. Начальник говорит, что так не круто, надо по взрослому :wink:


(asolntsev) #11

Да ничего это не примитивно. Нормально. Только мне непонятно, какой такой нехилый bat-файл должен быть, который умеет скачать зависимости, скомпилировать проект и запустить тесты? Слабо верится.


(Eliyahu Neploch) #12

Не, я код проекта exported as runnable jar из Eclipse а batch file просто его запускает java -jar filename


(Anatoliy Velikokhatskiy) #13

А почему нельзя сделать метод Main который будет запускать все остальные тесты? И его потом уже запускать через командную строку?


(asolntsev) #14

Можно. Но ещё проще его вовсе не писать. В том-то и прелесть, что Gradle и Maven сами находит ваши тесты и их запускают. И составляют отчёт. Вам для этого даже ничего делать не надо. Даже никакого Main-метода.

(Ведь кто-то всё равно должен скомпилировать весь код. То есть билд-скрипт всё равно придётся сделать)