Автоматизация тестов Selenium на сервере непрерывной интеграции TeamCity
У меня есть решение Visual Studio, которое включает тестовый проект, имеющий тесты Selenium.
(У меня уже есть сборка, вызванная проверкой контроля версий (Mercurial))
Но я хочу иметь отдельную (ночную) конфигурацию сборки, которая запускает тесты Selenium, в идеале под MSTest.
Я предполагаю, что для этого мне нужен сервер Selenium? Если да, то какой лучший способ запустить его перед запуском тестов? Должен ли я сделать это из MSBuild script или использовать Шаг сборки из самого города команды? Нужно ли мне сначала запускать Cassini\WebDev.WebServer, чтобы выполнить следующее:
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://localhost:49192/");
?
У меня есть сервер сборки с установленным TeamCity 6.5.1.
У меня установлен VS2010.
Конечно, кто-то это сделал! Отчаявшись помочь, ребята. Если бы кто-нибудь мог предложить какие-либо примеры, это было бы оценено.
Ответы
Ответ 1
Я собираюсь настроить тесты Selenium на нашем сервере TeamCity и до сих пор Googling.
Это страницы, которые я нашел интересными (кроме вашего вопроса StackOverflow):
Регрессионное тестирование для любого веб-приложения с TeamCity, Selenium и JUnit
Selenium browser UnitTesting из TeamCity
Итак, есть одно решение, которое преобразует html файлы, записанные с помощью Selenium IDE в Java, для запуска с JUnit в TeamCity, а другой подход создает ваши тестовые скрипты на С#.
И эта тема, "Выполнение тестов Selenium через Teamcity, можно ли это сделать?" описывает проблему при запуске агента сборки как службы... Я надеюсь, что я могу продолжить запуск агента как службы.
Ответ 2
Мы используем Selenium для ночных испытаний внешнего веб-сайта нашей компании. Для этого мы используем Selenium RC и динамически создаваемые тестовые комплекты.
Наш процесс, который кажется более сложным, чем Росс, выглядит следующим образом:
- Установите Selenium RC на сервере TeamCity.
- Используйте плагин Firefox IDE для создания тестов
- Создайте веб-страницу, которая генерирует html файл тестового набора со ссылками на все тесты в определенной веб-доступной папке (например,
http://www.mysite.com/selenium/generateTests.aspx
)
- Создайте шаг сборки Powershell в TeamCity, запустив script, который загружает пакет и соответствующие тесты на сервер сборки
- Добавьте функцию сборки XML-отчета для проверки результатов тестирования. Это позволяет TeamCity рассказать вам о результатах тестирования.
В powershell script:
- Выполнение среды исполнения Selenium RC с входами, предназначенными для загруженного набора тестов, и URL-адрес, который должен быть базовым URL-адресом. [* 1]
- Используйте XSLT для преобразования вывода в формат NUnit [* 2]
[* 1] java -jar C:\Selenium\selenium-remote-control-1.0.3\selenium-server-1.0.3\selenium-server.jar -log C:\Selenium\www.mysite.com\selenium-log.log -userExtensions 'user-extensions.js' -firefoxProfileTemplate 'Selenium FireFox Profile' -htmlSuite *firefox http://www.mysite.com C:\Selenium\www.mysite.com\generated\GeneratedSuite.htm C:\Selenium\www.mysite.com\TestResults.html
[* 2] nxslt3 $seleniumXmlTestReportPath nunit.xslt -o $nunitReportPath baseUrl=$testBaseUrl
Ответ 3
Мы используем TeamCity для создания и тестирования нашего веб-приложения на базе С#. Мы запускаем сервер Selenium все время, используя Java-сервис-пуск, чтобы запустить его. Тесты подключаются к localhost
, как и в вашем вопросе.
Мы используем TeamCity "NAnt Runner" для запуска тестовых заданий и используем задачу NAnt <nunit2>
для запуска тестов под управлением NUnit. Поскольку мы это делаем, NUnit находит и запускает любой общедоступный метод, аннотированный атрибутом [Test]
- это очень простой и очень мощный инструмент.
Эта настройка работает очень хорошо для нас.
Ответ 4
Интегрируйте его с NUnit или другим тестовым бегуном.