Использую C#, Selenium.Webdriver, фреймворк Atata, PhantomJS.
Написал много автотестов (библиотека), теперь стоит вопрос, как из этого сделать работающее приложение: должно размещаться в интернете, и периодически или по команде тестировать сайты клиентов.
Какой тип проекта для этого использовать? WebApi, или Asp.Net MVC, или что-то иное? Что предпочесть, чем еще улучшить проект?
И какие у решения делать все на C# есть недостатки, слабые стороны, особеннь в плане дальнейшего развития? Не стоит ли предпочесть решение на Python?
Не знаю насколько вам это поможет, расскажу как с этой задачей справился я, это как один из вариантов.
Вариант №1
Есть 3 больших набора автотестов, каждый набор это отдельное Windows-приложение(консольное, .exe)
Админ выделил мне виртуальную машину внутри нашей сети, на которой размещены данные наборы тестов.
Я написал приложение-чекер(агент), который проверяет БД на наличие новых задач. Задачи в БД создаются через веб-интерфейс. Агент находит задачи необходимые для запуска и запускает конкретное приложение(автотест).
Суть в том, что агент висит на той же машине, где лежат тесты и просто делает
Process.Start("AutotestName.exe");
После завершения автотест отправляет на E-mail отчет в формате HTML
Так же в веб-интерфейсе можно настроить для каждого теста расписание на запуск, поэтому автотесты у нас гоняются ночью =)
Вариант №2
Использовать TeamCity для запуска тестов.
Например у меня на прошлой работе все автотесты представлялись в виде .dll с использованием NUnit.
В TeamCity был настроен билд и запуск автотеста, запуск автотестов по кнопке, просмотр результатов там же в виде Passed/Failed.
Но для TeamCity так же должен быть установлен агент на билд-машине
Продвижение своими сайтами как стратегия роста и независимости