Поставили передо мной следующую задачу. Имеющиеся у меня тесты скомпоновать в отдельные исполняемые файлы и выложить их на общий тестовый сервер, откуда мануальщики смогут их просто запускать перед поставкой и проверять, что основные функции не поломались.
На тестовом установлен только 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’ник
Можно спаковать все в executable jar файл используя maven-assembly-plugin. Правда предварительно создав класс с main() из которого запускать тесты. К нему добавить .bat или .sh по вкусу. И пускай запускают.
Чем Jenkins не подходит? Он умеет работать с maven. Если всё правильно настроено, то запуск тестов с его помощью заметно проще и удобнее исполняемого файла:
- всем доступен через браузер. А для запуска того же батника надо сначала зайти на сервер, перейти в директорию
- всегда актуальная версия тестов. А в виде исполняемого файла могут быть упакованы тесты старых версий. Надо дополнительно отслеживать какая версия файла запускается
- процесс и результаты запуска видны всем. А в виде исполняемого файла никто кроме запускающего не видит прогресс: сколько тестов прошло, сколько осталось. Если кто-то решит в это время посмотреть результаты, он получит неактуальные данные (поскольку тесты в процессе выполнения) и даже не будет об этом знать
Объясните это своим ленивым мануальщикам. Общие инструменты должны быть общедоступны и прозрачны
Через Jenkins тест-кейсы будут гоняться тоже.
А наши мануальщики - это отдельная песТня с куплетами. поэтому им проще подготовить запускаемые файлы, тем более это будут тесты самого верхнего и user-basic уровня.
Я бы порекомендовал выгнать таких мануальщиков, станет меньше проблем.
Разворачивайте СI
Не надо так категорично - подобная система тоже имеет права на жизнь.
Например распределенные команды.
Либо когда возникает необходимость именно в это время, именно на этой машине, именно на этом сервере запустить конкретный набор тестов. Причем возникать они могут одновременно в различных вариациях.
Либо п1+п2.
Не надо никого выгонять. Каждый должен собрать свое поле граблей - пусть собирают. Ведь ошибки - это нормально, когда на их основе делаются своевременные и правильные выводы (и когда они не задевают никого кроме ошибающихся)
Я бы предложил сначала уточнить требования у тестеров. Будет ли строго на сервере запуск? Что именно нужно от “кликнул и тесты запустились”? Подойдет ли иная схема работы, кроме файловой? И оттуда уже плясать. “Немного уделив времени общению в начале пути, будущее время сохранишь стократно”.
Честно говоря, по описанию обстоятельств, ваши тестировщики больше похожи на заказчиков. Совет: раз так, то они могут заказать вам разработку исполняемых файлов или скриптов для запуска тестов, но при этом пусть оплатят этот проэкт из своей зарплаты. Перечислить могут на вашу.
У меня такой вопрос, а обязательно ставить Grid, если мне тесты не просто не надо запускать параллельно, а категорически нельзя этого делать (использование одного юзера на две сессии сразу выдаст ошибку). Будет ли достаточно просто прописать в команде для майвена не только тэги, но и дравер, который надо использовать?
Или без Grid никак не обойтись?
Зачем использовать Grid, если не предполагается параллельный запуск тестов? Используйте selenium server