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

Запуск авто-тестов из исполняемого файла (.bat или .exe)


(Natalja Librante Lace) #1

Поставили передо мной следующую задачу. Имеющиеся у меня тесты скомпоновать в отдельные исполняемые файлы и выложить их на общий тестовый сервер, откуда мануальщики смогут их просто запускать перед поставкой и проверять, что основные функции не поломались.
На тестовом установлен только maven.
Сами тесты написаны Selenium 2.0+Thucydides+Java.
Подскажите, пожалуйста, в каком направлении смотреть и что читать.
До сих пор я сама запускала все тесты Idea+Maven, плюс пробовали запускать тесты через Jenkins.
Но мануальщики требуют именно файл из серии: “кликнул на него и тесты запустились”. Возможно ли это в принципе?


Дайджест полезных ссылок для тестировщиков-автоматизаторов #023
(Вадим Чадюк) #2

Вот тут есть ответ
А сам запуск: mvn test
в консоли на сервере
можете просто bat’ник создать в папке с проектом, если они у вас прям такие ленивые


(Natalja Librante Lace) #3

Они именно - ленивые.
Поэтому требуют bat файлы, в которых все уже будет предустановлено, а им только нажать надо будет на файлик и запустить его.
Так как до этого написанием тестов и их запуском занималась только я, то как их сделать доступными другим я не знаю.
За ссылку - спасибо. Буду изучать.


(Вадим Чадюк) #4

Ну значит закидывайте всё на сервер. В корне проекта создаёте bat file c примерным содержанием(см. мою ссылку):
mvn clean verify -Dwebdriver.remote.url=http://hubip:4444/wd/hub4

Дальше учите своих тестеров заходить на сервер(к примеру через Putty) и учите кликать bat’ник


(Mdolinin) #5

Можно спаковать все в executable jar файл используя maven-assembly-plugin. Правда предварительно создав класс с main() из которого запускать тесты. К нему добавить .bat или .sh по вкусу. И пускай запускают.


(Александр Таранков) #6

Чем Jenkins не подходит? Он умеет работать с maven. Если всё правильно настроено, то запуск тестов с его помощью заметно проще и удобнее исполняемого файла:

  1. всем доступен через браузер. А для запуска того же батника надо сначала зайти на сервер, перейти в директорию
  2. всегда актуальная версия тестов. А в виде исполняемого файла могут быть упакованы тесты старых версий. Надо дополнительно отслеживать какая версия файла запускается
  3. процесс и результаты запуска видны всем. А в виде исполняемого файла никто кроме запускающего не видит прогресс: сколько тестов прошло, сколько осталось. Если кто-то решит в это время посмотреть результаты, он получит неактуальные данные (поскольку тесты в процессе выполнения) и даже не будет об этом знать

Объясните это своим ленивым мануальщикам. Общие инструменты должны быть общедоступны и прозрачны


(Natalja Librante Lace) #7

Через Jenkins тест-кейсы будут гоняться тоже.
А наши мануальщики - это отдельная песТня с куплетами. поэтому им проще подготовить запускаемые файлы, тем более это будут тесты самого верхнего и user-basic уровня.


(heartwilltell) #8

Я бы порекомендовал выгнать таких мануальщиков, станет меньше проблем.
Разворачивайте СI


(vmaximv) #9

Не надо так категорично - подобная система тоже имеет права на жизнь.
Например распределенные команды.
Либо когда возникает необходимость именно в это время, именно на этой машине, именно на этом сервере запустить конкретный набор тестов. Причем возникать они могут одновременно в различных вариациях.
Либо п1+п2.


(Александр Таранков) #10

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


(Виктор Кривизюк) #11

Я бы предложил сначала уточнить требования у тестеров. Будет ли строго на сервере запуск? Что именно нужно от “кликнул и тесты запустились”? Подойдет ли иная схема работы, кроме файловой? И оттуда уже плясать. “Немного уделив времени общению в начале пути, будущее время сохранишь стократно”.


(Artur Korobeynyk) #12

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


(Natalja Librante Lace) #13

У меня такой вопрос, а обязательно ставить Grid, если мне тесты не просто не надо запускать параллельно, а категорически нельзя этого делать (использование одного юзера на две сессии сразу выдаст ошибку). Будет ли достаточно просто прописать в команде для майвена не только тэги, но и дравер, который надо использовать?
Или без Grid никак не обойтись?


(Александр Таранков) #14

Зачем использовать Grid, если не предполагается параллельный запуск тестов? Используйте selenium server