Система запуска тестов на отдельном сервере с WEB-интерфейсом

Всем привет, коллеги!

Сейчас имеется такая задача: нужно создать систему для запуска автотестов на сервере с WEB-мордой. Что нужно:

  • в формочку вбиваются параметры, запускается соотв. тест
  • организация очереди на тестирование
  • какое-то уведомление об окончании теста

Что не нужно:

  • не нужно встраивания в CI, деплоя, какого-то сложного разворачивания и т.п. Только запуск.

Тесты простенькие, состоят из AutoIt'овских скриптов и cmd-файлов.

Вопрос: как это реализовать с минимальными потерями? 

Был предложен вариант подкрутить под это дело CruiseControl, чтобы вместо сборки он запускал тестирование, но не уверена, что это вообще возможно, да и правильный ли это путь :)

Ну и конечно есть вариант написать всё самим. Но возможно, есть какой-то более короткий путь, может кто-то сталкивался?

 

а почему вы считаете что CI вам не подойдет в этом случае? очень даже проходит

там все предельно просто, и тем более очень хорошо решают те задачи, которые вам нужны

и кстати КруизКонтрол это один из инструментов CI

 

тем неменее, если хотите вы можете сделать проще,

1. делаете, какой-то скрипт, который генерирует результаты по проходу тестов

2. делаете консольное приложение для запуска тестов и генерации результатов

3. настраиваете cron или планировщик, для запуска тестов

но все действия нотификации отображения и так далее нужно решать самому.

 

но мой вам совет, берите CI и не пожалеете, например в Jenkins ваши задачи можно настроить буквально за 5 минут.

ну и 30 минут, чтобы поставить Jenkins

 

Да, CI системы как раз созданы для решения подобных проблем. Не стоит отбрасывать их только из-за того, что они могут показаться сложными в настройке. Любую CI вы можете сконфигурировать на свой вкус, а вместо того, чтобы каждый раз выбирать данные из формы, вы можете создать отдельный «джоб», который бы читал данные из файла конфигурации и выполнял соответствующие действия. А уже сами джобы вы можете запускать и руками. 
 
Я видел и реализации таких задач с нуля, на голом ПХП студентом на коленке. И все это тоже работало и всех устраивало. Если время на разработку такой системы с нуля будет меньше, чем настройка Jenkins – то это тоже вариант. Вполне работоспособный. 
 

Попробуем тогда действительно CruiseControl или Jenkins. Я просто близко с ними дела не имела, поэтому и вопрос возник, насколько они подходят, нужно было мнение со стороны.

Спасибо за ответы! 

Вчитался в ТЗ:

"Тесты простенькие, состоят из AutoIt'овских скриптов и cmd-файлов."

"

  • в формочку вбиваются параметры, запускается соотв. тест
  • организация очереди на тестирование
  • какое-то уведомление об окончании теста"

Значит, у вас кмдшники, которые что-то возвращают? Или аутоит кликает, и ничего не возвращает? Имхо, тут есть пути и попроще (при том, что получение данных из кмдшников не всегда тривиально - могут быть разнообразные проблемы с тестом: баг на сайте, баг теста, баг запускалки, прошлые проблемы съели ресурсы и т.д.).

У нас на одном проекте для подобной автоматизации применялся (да и пока так и остался, проект сейчас не сильно развивается) MS Build, который запускал батнички, утилитки, аутоит.

Как получать результаты, вариант 2: сделать прослойку запуска процесса между батничком и репортом. Например, запускать процесс из C# или пауэршелл. Имхо на порядок удобнее с возвращаемыми значениями будет. Всё это дело (запуск батничков как процессов) можно положить в NUnit (или аналоги).

Если же у вас тесты на IE или FF (особенно, FF) я бы спел старую песню про автоматизацию на пауэршелл (UIAutomation, SePSX, обычно первое, но если вэб-морда перегружена контролами, или надобен хром, то второе). Репортинг из коробки, можно опять же положить в NUnit, если надо, или в CI.

В пользу пауэршелл говорит и тот факт, что проверить, что не висит аутоит или что вэб-морда не опала, омжно одной короткой строчкой кода.

 

поверьте, там ничего сложного нету

потому не бойтесь и вперед

Отписываюсь по результатам:

настроила Jenkins, очень быстро и легко всё взлетело.

Спасибо всем за советы!