Похоже, два больших — это 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 ...
}
Таким образом вы создаете библиотеку оболочек, которая упрощает добавление новых тестовых случаев, а также упрощает работу с изменениями макета, влияющими на то, как Watin находит элементы на страницах и взаимодействует с ними.
person
user31934
schedule
11.04.2009