Чем отличаются популярные платформы и среды разработки от не популярных?! Количеством разработчиком скажите Вы и будете правы. Но почему столько разработчиков выбрало эту платформу и среду разработки? Наверное потому, что:
1- востребованность
2- удобство
3- простота
4- мощь
…
N-что то еще.
Все любят рассказывать как удобен, востребован, прост (добавить по вкусу) тот или иной язык. Таких рассказов тысячи. Но я считаю что не заслужено забывают или говорят лишь мельком, о все возможных компонентах и вспомогательных инструментах разработки, делающих использования языка(платформы) обоснованным. Хотя многие из них затем входят в среду разработки, многие из разработчиков на платформе (языке) об этих расширениях не знают.
Хочу немного исправить эту ситуацию и рассказать о том, что сделали Telerik для .net разработчиков.
Начну с Telerik WebUI Testing Studio, далее если будет интерес расскажу о остальных разработках Telerik.
Telerik WebUI Testing Studio -это расширение для Visual Studio 2008(существует уже поддержка VS2010beta2). Из название понятно, что рассчитана она на расширение возможности тестирования пользовательского интерфейса web приложений.
Официальный сайт-
www.telerik.com/
Ссылка для скачивания Telerik WebUI Testing Studio
www.telerik.com/products/web-testing-tools.aspx
Сразу извиняюсь за обилие принтскринов, но тяжело показывать графические моменты, без фото и видео.
И так, что из себя представляет WebUI Testing Studio внешне? Ничего страшного:
WebUI Testing Studio представляет из себя плагин к Visual Studio 2008(существует уже и интеграция с Visual Studio 2010 но тк сама студия находится в стадии beta, то и WebUI Testing Studio для нее находится еще в стадии доработки.). Сейчас разработчики WebUI Testing Studio работают над stand alone версией своего продукта, но не каких дат выхода не разглашают, по этому пока будем это держать в голове и использовать то что есть.
У WebUI Testing Studio добавляет к VS несколько окон(explorer), основными из которых и наиболее полезными и заметными являются
1-DOMExplorer(отображает DOM модель сайта или модель элементов разметки XAML для silverligth приложений)
2-TestRecorder(основное окно в котором и происходят запись тестов, конвертирование этих тестов в кодированные, задание параметров для тестов, редактирование и еще много чего)
3-TestExplorer
4-ElementsExplorer
Есть еще один элемент для быстрого выбора действий, но я не знаю даже как его назвать то нормально. Пусть называется
для краткости — черненькое окошко с меню из которого можно выбрать действия с элементами на которые мы навелись.
Что она умеет?
Можно конечно формально зачитать возможности из какой-нибудь статьи из этого списка:
1,
2,
3,
4(думаю можно найти еще десяток анонсов, что что-то вышло, но все они скорее сухие выжимки из прессрелизов), но я не хочу это делать и напишу пару строчек от себя.
Во первых Telerik WebUI Testing Studio имеет возможность создавать из графической оболочки web тесты. Она записывает действия пользователя с браузером (на данный момент поддерживаются IE, FireFox, Safari для windows. В скором времени разработчики обещают добавить поддержку Google Chrome, только не понятно какой версии, с тех пор как разработчики WebUI Testing Studio пообещали добавить эту поддержку, Google успел выдать новую версию своего браузера и думаю сбавлять обороты они не намерены.) такие как- щелчки по ссылками, заполнение текстовых полей, выбор элементов, подсветка выбранных элементов разметки и прочее. Работает она как с обычными html сайтами, так и с любыми другими будь то построенными на технологиях asp.net, jsp, php или какой либо иной. Но все это умеет и
WatiN framework и WatiN Testrecorder. Отличие ключевое состоит в том, что
WebUI Testing Studio умеет НОРМАЛЬНО (а не чисто формально) работать с AJAX. Она не выбивает ошибки при создании тестов, умеет обрабатывать все события происходящие на странице, имеет графические средства для установления условий валидации содержания(или наличия) любого элемента разметки на странице. Так же очень востребована функция задания параметров для теста. К примеру, у нас есть задача: тестирования процесса аутентификации пользователя на сайте. У нас есть поля ввода пароля и логина. Но что если мы хотим использовать не одни и те же данные одного пользователя, а список данных!? Тогда мы можем создать таблицу параметров и использовать ее. Выглядеть это будет примерно так.
Еще очень интересена для меня просмотреть результаты выполнения всего теста по шагам. Клик за кликом.
<Мысли вслух> Я думаю что Telerik сделала этот проект изначально для тестирования своих контролов, которые во всю используют Ajax.</Мысли вслух>
Но это функционал, который в какой то степени умеют некоторые аналоги. А вот поддержка теста графической части silverlight приложений- этого я не видел не где ранее! Вот как выглядит работа с самим silverlight приложением в WebUI Testing Studio(приложение используется из списка демонстрационных на сайте telerikа)
Как и с обычной html разметкой WebUI Testing Studio умеет работать и с xaml элементами silverlightа. Вот так выглядит модель элементов и графический способ задания валидации для элементов управления
А это сам код, который генерируется из WebUI Testing Studio из записанного нами теста для silverlight
По моему это КРУТО! Так что теперь, не только html разметка может быть оттестирована, но и silverlight приложение на странице и silverlight разработчики могут вздохнуть спокойно.
Демонстрацию работы можно посмотреть на английском языке, на сайте разработчиков
тут,
тут и
тут. Последовательность просмотра лучше не менять.
Интеграция с другими средствами тестирования
При настройке WebUI Testing Studio можно выбрать тип тестов, которые будут сгенерированы из тестов WebAii. Можно выбрать MSTest, XUnit,MbUnit, NUnit.
Работа с NUnit продемонстрирована на сайте разработчиков вот в
этом видео.
Для тех у кого загорелся огонек в глазах
Для тех кто просмотрев видео, решит использовать советую посмотреть видео, по настройке вашего браузера для работы WebUI Testing Studio (по сути эти отключения некоторых настроек безопасности, для сайтов которые Вы будите тестировать) для
XP и
Vista\7
Теоретические вещи
Для тех, кто дочитал до этой части, не поставил минус и не закрыл страницу предлагаю бонусную частью.
Как видите сам WebUI Testing Studio состоит из нескольких частей.
1-WebUI Testing Studio это тот графический интерфейс, который мы как пользователи видим. (Она платная)
2-WebAii testing framework (бесплатная).
Я знаю, что все и без меня могут прочитать что написано на картинке, но все же опишу.
И так у нас есть браузеры. Они сами не как от WebUI Testing Studio не зависят. Мы их устанавливаем и вполне можем работать с ним без каких либо телодвижений со стороны Telerik или других компонентов.
WebAii testing framework — этот framework устанавливается в виде dll и отвечает за поиск элементов разметки на странице, работы с «пользовательским» вводом(поставил в кавычки так как это лишь имитация пользовательского ввода. Тест записывается при участии пользователя, а потом проходит автоматизировано все, без его участия), ожидания ответов от страницы(допустим отработки javascript в ответ на какое либо действие со стороны пользователя), уровень абстракции от конкретного браузера(в демонстрации видно, как одним кликом сменить браузер в уже записанном тесте и как в коде изменив одну строку запустить тест в браузере отличном от того, в котором этот тест был записан .), абстракция от dom\xaml(система поиска элементов работает абсолютно одинаково по xaml и html элементам как раз через этот слой абстракции). Этот framework работает с браузерами(полагаю через com), при проигрывании тестов.
WebUI Testing Studio построена поверх WebAii testing frameworkа. Этот компонент ответственен за интеграцию в Visual Studio, создания тестов, редактирования, выполнения конвертирование одних типов тестов в другие(тесты webaii от telerik в webload тесты visual studio), интеграцию с Team Foundation Server( эти тесты могут использовать на build сервере, по крайней мере об этом заявляют сами разработчики), работы с dom моделью страницы.
<Мысли вслух> Мне кажется, что авторы слайда, не совсем правильно изобразили стрелочки. Было бы вполне логично предположить, что на прямую работать с браузерами из WebUI Testing Studio должен уметь только GUI recorder, и то лучше бы связь с браузерами сделать полностью через WebAii testing framework. Не зря ведь он предоставляют всю абстракцию для WebUI Testing Studio. Но это всего лишь мои мысли, авторы могли сделать как угодно и слайды нарисовать тоже как угодно. </Мысли вслух>
К чему так много букв!
Уверен, что после стольких слов многие уже потеряли нить повествования, по этому попробую написать краткие итоги:
WebUI Testing Studio — средство тестирования пользовательского интерфейса веб сайтов, умеющее работать с html, silverlight и отлично поддерживающее ajax.
WebUI Testing Studio интегрировано с Visual Studio и создано как дополнение для нее.
WebUI Testing Studio помогает избавиться от необходимости ручного тестирования стандартных сценариев использования веб приложения
Считаю WebUI Testing Studio одним из лучших средств тестирования пользовательского интерфейса и очень рекомендую всем его попробовать в качестве хотя бы ознакомления и саморазвития.
Копирайт
Что бы не обидеть ненароком авторов видео(которые могут случайно набрести на статью на хабре), на которые я ссылаюсь в этой статье, хочу рассказать о том, что на сайте telerik существует отличная подборки видео по всем их продуктам, таким как контролы для asp.net, wpf, winforms, silverligth а так жу у них есть свой ORM. И обо всем этом они рассказывают и показывают на своем
телевидении от куда я собственно и брал ссылки на видео и которые стали фундаментом для написания статьи. Очень рекомендую посмотреть вебкасты о продуктах telerik. Я их не рекламирую, они просто мне нравятся.
P.S. Одной из причин написания поста было, то что ничего подробного в интернете на русском не нашел. Максимум -это новость о том, что такая вещь вообще существует или новостных разделах.
P.P.S. уважаемый %username%, я не стал вставлять коды, которые генерировала WebUI Testing Studio у меня потому, что вы их можете посмотреть в видео, на которые я дал ссылки. А главное что в этих видео куда интереснее и нагляднее демонстрируется этот код, чем те возможности, которыми можно воспользоваться на хабре для демонстрации кода.
комментарии (11)
Правда я уже успел натолкнуться на ограничение, о котором господа из telerik/ArtOfTest уже в курсе.
Все что создано/унаследовано от Popup Class, в VisualTree не учавствует и нахождению не поддаётся
На счет нумерации- это каждый разработчик для каждого продукта нумерацию ведет как хочет. Но мне кажется что версия 2.0 стала именно потому что появился новый функционал в виде silverlight, который и позволил поставить не версию 1.1 не 1.5 а именно 2.0
Они делают упор на то что в 2.0 появилась толковая и очень продвинутая запись скриптов и генерация кода по записанному скрипту.
У них хороший DOM Explorer, я бы его и отдельно юзал.
Функционал у него конечно хороший и интересный, но еще есть много чего, что можно дописать бы. Потому что он демонстрирует только клики мышки и набор с клавиатуры для desktop приложений. Лично я не нашел например отчета нормального там, не нашел возможности делать printscreen, плюс возможность валидации значений в UITest надо писать самому уже в кодированном тесте, сгенерированном из UITestа. Для простого воспроизведения действий пользователя этого более чем достаточно, но ведь Большие Начальники хотят что бы все было «по плану, по графику и согласно нормативной документации компании». В общем модуль отчетности нужен более солидный. Что бы начальник сразу посмотрел в «писульку» со штампиком и сразу понял -качество у софта отменное.
Тем более, что функций WebUI Testing Studio для web приложений то точно нету в web load тестах Visual Studio.
Это точно прикрутить не долго — у них пол-года на это было и есть :)
Я делал Assertion'ы прямо в Recorder'е, где нет завязок на код, а где есть — естественно нужно руками вписывать, а по-другому никак. Только у меня после ручного редактирования тест перестал в «проигрывателе» запускаться :)
Вообще, мне больше нравится не рекордером, а руками тесты писать, т.к. гибкость выше, можно свои библиотечки подключать и дополнительные условия например на слой доступа к данным прописывать, плюс автоматизация как правило выигрывает на типовых вещах, которые легко в обобщеном виде писать — например тестирование отображения таблиц и их сортировки или типичные окна редактирования/добавления сущностей — и кода мало и покрытие хорошее.
У вас наверное, процесс более формализован и без кучи тестов на одно окно приложения не обойтись?
На счет веба говорить не буду — мне WatiN'а для функциональных тестов интерфейса хватало «выше крыши» и с ajax'ом пробел не заметил, хотя его и не много было.
На счет WatiN- честно говоря мне для ботов маленьких и для каких нибудь утилиток его вполне хватало, но после того как, записав скрипт на прохождение теста на сотню вопросов, он мне на каждом щелчке мышью начал выдавать какие то ошибки в именовании, при всплывающих окнах тоже начал какие то необъяснимые ошибки выдавать, я решил WatiN использовать аккуратнее для небольших таких тестиков.
На счет более формализованого процесса- я на microsoft user group, когда в декабре доклад читал, как раз про автоматизированное тестирование, меня там везде на модуле отчетности у всех простых frameworkов просто распилили. Там был какой то мужчина, глава отдела тестировщиков который меня с списками, планами просто убил морально. В общем с его слов я понял, что фиг бы с функционалом, главное что бы модуль отчетности был хороший. Мол раз посомтрел на отчет и сразу все ясно большим начальником стало, как хорошо работает отдел тестировки.(очень хочу увидеть такую систему где по одному отчету для начальства можну судить о качестве софт, тестам к ним и дрругим показателям...)