"Искусство теста" для 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.

Похоже, два больших из них - это 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 ...
}

Таким образом, вы создаете библиотеку оболочек, которая упрощает добавление новых тестовых случаев, а также облегчает работу с изменениями макета, которые влияют на то, как Ватин находит и взаимодействует с элементами на страницах.

Другие вопросы по тегам