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

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

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

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

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

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

1 лайк

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

1 лайк

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

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

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

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

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

1 лайк

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

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

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

1 лайк

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

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

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