"Искусство теста" для C# автоматизированного веб-тестирования в CruiseControl.NET
В настоящее время мы используем SWEA ( http://webiussoft.com/) для запуска автоматических тестов сайта во время наших ночных сборок CruiseControl.NET.
Мы ищем более надежное решение и ищем решение "Art of Test" ( http://www.artoftest.com/).
Кто-нибудь имел опыт работы с этим инструментом?
Самое главное, насколько легко поддерживать тесты с помощью этого инструмента?
Или есть какие-либо другие решения C#/NUnit/CruiseContol.NET, которые вы бы порекомендовали?
4 ответа
Я работаю на ArtOfTest. За последние пару дней я исследовал, что нужно для того, чтобы наша платформа хорошо работала с CruiseControl.NET. Основным ключом является запуск сервера CruiseControl.NET в режиме консоли (а не в качестве службы Windows). Причина этого заключается в том, чтобы позволить фазе запуска модульного теста иметь возможность напрямую взаимодействовать с рабочим столом, что требуется для тестирования пользовательского интерфейса. Как правило, коду, работающему в службе Windows, не разрешается взаимодействовать с рабочим столом (что требуется нашим) и, следовательно, он не работает при попытке.
TeamCity также является еще одним хорошим CI-сервером. Я смотрю на это прямо сейчас и понял это в основном.
Если у вас есть какие-либо более конкретные вопросы, не стесняйтесь обращаться к нам по адресу contact@artoftest.com. Я также буду следить за этой темой.
WatiN не плохо. К сожалению, в ней отсутствует какая-либо интеграция с VisualStudio и отсутствуют многие другие функции, которые мы предлагаем.
Спасибо, Коди
Ссылка ниже - документация о том, как заставить WebAii работать со всеми популярными серверами CI (CC, TeamCity и TFS Build).
http://www.artoftest.com/support/webaii/topicsindex.aspx?topic=cioverview
Похоже, два больших из них - это Watin & Selenium. Я не работал с Selenium, так что никакого мнения нет.
Я использовал Watin изрядное количество, и это довольно хорошо, но есть много проблем. Может быть трудно иметь дело с сильно изменяющимся временем отклика из браузера... установкой длительности тайм-аута и тому подобным.
Последняя версия Watin поддерживает IE & Firefox, что довольно здорово.
Что касается обслуживания тестов, по моему опыту, самое важное - это полностью отделить код "тестового драйвера" от "кода переноса страниц". Под "тестовым драйвером" я имею в виду реальную тестовую логику (NUnit или аналогичную), которая может иметь код, который выглядит следующим образом:
...
var wrapper = new SearchPageWrapper(browser);
wrapper.ClickAdvancedSearch();
wrapper.EnterSearchPhrase("dog");
wrapper.SetSortBy(SortType.Date);
wrapper.ExecuteSearch();
... упаковщик страниц предоставляет этот логический интерфейс самой странице, скрывая детали реализации (которые могут быть сложными и часто изменяться в зависимости от макета страницы):
public class SearchPageWrapper {
...
public void ClickAdvancedSearch() {
_browser.Buttons("advSearch").Click();
}
public void EnterSearchPhrase(string phrase) {
_browser.TextBox(Find.ByName("phrase")).TypeText(phrase);
}
... etc ...
}
Таким образом, вы создаете библиотеку оболочек, которая упрощает добавление новых тестовых случаев, а также облегчает работу с изменениями макета, которые влияют на то, как Ватин находит и взаимодействует с элементами на страницах.