Watin и Telerik Controls - PullRequest
       33

Watin и Telerik Controls

1 голос
/ 29 марта 2012

Я хотел бы спросить, знает ли кто-нибудь простой способ тестирования элементов управления Telerik с помощью Watin.

Мы собираемся начать его использовать, но перед тем, как мы это сделаем, я хотел узнать, есть ли что-нибудь, что мне нужнознаю.

Проблема, которая, как я вижу, у нас будет, состоит в том, что, если даже малейшая вещь изменится, все наши тесты также сломаются.

Любое предложение очень ценится.

Ответы [ 3 ]

3 голосов
/ 29 марта 2012

Проблема, которая, как я вижу, у нас будет, состоит в том, что если даже самая маленькая вещь изменится, то все наши тесты также будут сломаны.

Это может / будет верно для всех частей ваших страниц, включая элементы управления Telerik, в зависимости от структуры вашего теста. В идеале, вашим элементам должны быть назначены идентификаторы, и вы будете использовать классы Page и пользовательские объекты управления, чтобы удалить все ссылки HTML из вашего фактического тестового кода. Затем, если что-то изменяется на веб-странице (или в элементе управления), вы проверяете, ожидается ли изменение, затем вы изменяете код страницы WatiN (или контрольный код) и повторно запускаете свои тесты.

Здесь находится учебник для начинающих класса WatiN: http://watinandmore.blogspot.com/2009/06/introducing-page-class.html

По сути, вы хотите, чтобы ваш тестовый код выглядел как myPage.PickDate("3/29/2012"), а не как ie.Tables[3].TableRows[2].TableCells[4].Textbox(Find.ByClass("datePicker")).TypeText("3/29/2012")

Изменения могут, могут и должны привести к неудачным тестам, однако я могу засвидетельствовать, что с хорошей настройкой класса страницы (или элемента управления), которая абстрагируется от DOM HTML и других особенностей, оставляющих тестовый код, не заполненный HTML, означает, что когда изменения действительно происходят, их чаще всего легко вернуть к работе.

Примечание: у Selenium также есть концепция класса Page, но я не очень широко использовал ее сейчас. Итог: если вы пишете много тестов, которые ссылаются на HTML DOM непосредственно в тестовом коде, вы настраиваете себя на головную боль обслуживания, независимо от того, используете ли вы WatiN или Selenium или что-то подобное.

Добавлено: Относительно вашего исходного вопроса: можете ли вы работать с элементами управления Telerik в WatiN? Да, вы, скорее всего, можете, но в зависимости от элемента управления вам может потребоваться немного творческий подход, возможно, даже вызов метода javascript изнутри вашего теста (объект страницы;)). Я был озадачен парой элементов управления (не Telerik), но большинство я в конечном итоге выяснил.

2 голосов
/ 29 марта 2012

Я понимаю, что вы спрашивали о WatiN, и я знаю, что я, вероятно, буду заброшен, но вместо этого я мог бы рекомендовать Selenium.Похоже, он более широко используется, и когда мы оценивали два, мы обнаружили, что с Selenium легче работать из-за плагина Firefox для записи / генерации тестов.Это означало, что наши нетехнические люди могли настраивать тесты.

С тех пор мы успешно использовали Selenium для тестирования сайтов ASP.NET, которые используют элементы управления Telerik.Я столкнулся только с одной проблемой, с RadNumericTextBoxes, для которой я задокументировал исправление здесь: http://www.msigman.com/2012/02/entering-radnumerictextbox-selenium-webdriver-1-6-0/.

В настоящее время я нахожусь в процессе написания практического руководства для этого:http://www.msigman.com/2012/03/automated-testing-asp-net-web-application/ (бесстыдная вилка).

1 голос
/ 02 апреля 2012

Вам также следует рассмотреть возможность оценки Telerik's Test Studio , нашего инструмента тестирования функциональной автоматизации.(Раскрытие: я их евангелист в Test Studio.)

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

Что еще более важно, Test Studio по умолчанию обрабатывает централизацию локаторов и страниц, поэтому вам не нужнодополнительные усилия для наилучшего управления изменениями пользовательского интерфейса.

...