Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обзор Tester Bench for jQuery - pls, ваше мнение о продукте?

64K
15 ноября 2010 года
greenazbuk
1 / / 14.11.2010
Приветствую, коллеги. Топы и разработчики компании Mouse Technologies (Санкт-Петербург) очень хотят узнать ваше мнение о продукте для автоматизации тестирования сайтов Tester Bench for jQuery для составления ToDo листа и оценки перспектив. Кстати, демка отличается от полнофункциональной версии только упрощенным репортингом, так что продукт в плане бесплатности недалеко ушел от действительно бесплатных продуктов и может всерьез облегчить жизнь в тех случаях, когда устраивает и такой репортинг — так что возможно, что немного потраченного вами времени на анализ продукта с лихвой компенсируется за счет использования продукта в своих целях.

Ниже — мой собственный обзор продукта.

Думать о приемлемой автоматизации тестирования одного проекта приходится не только тестерам. Причем если проект никак нельзя назвать выскобюджетным, обычно хочется заложить на это как можно меньше ресурсов.
Конечно, на рынке присутствует море самых разных платных и бесплатных решений – Selenium, QuickTest Pro, SilkTest и т. д. Часто советуют Selenium – бесплатный и относительно широко распространенный. Но на рынке имеется и почти никому не известное изделие компании MouseClick Technologies. Группа разработки находится в Питере – так что при желании можно получить и поддержку на русском. Компанией разработана оригинальная система “ TesterBench For jQuery”. Эта система не бесплатная, но ее стоимость меньше месячных расходов на одного тестера. Хотя отличия демо-версии от коммерческой касаются только отчетов да поддержки, так что в некотором смысле продукт от бесплатного недалеко ушел: демо-версии для многих целей хватит за уши.

Похоже, что при создании своего продукта компания озаботилась следующей целью: сделать процесс тестирования web – сайтов как можно более простым и как можно менее затратным, требующим лишь минимальной квалификации . Надо заметить, что у них это получилось просто отлично. Продукт вышел настолько простым как в установке, так и в использовании, что может заинтересовать не только фирмы, имеющие команды тестировщиков – но даже частных лиц, желающих без особого напряжения автоматизировать какие-либо свои действия на чужих сайтах. Тем более, что демки (ZIP на 2 мб) для этого вполне достаточно. Так что этот продукт явно найдет пару применений, не предусмотренных разработчиками и связанных больше с автоматизацией действий на web-сайтах, чем с тестированием.

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

Вся установка с настройкой сводится к запуску setup и нажатию кнопок “согласен” – и в меню “Пуск” появляется “Mouseclick Technologies” с тремя ярлыками. Эти три ярлыка - Demonstration, Readme и Uninstall. Запуск демонстрационного скрипта, ссылка на страничку на сайте производителя с поздравлением об успешной установке и запуск деинсталляции. Все! Никакой IDE, только интерфейс командной строки плюс конфигурационный файл(обычный XML, лежит в директории установки). Необычно. Хотя что-нибудь простенькое из трех полей (к примеру, что запускать, куда сохранять логи и автоматические скриншоты, какой браузер использовать) и энного количества чекбоксов не помешало бы.

Своей IDE нет, зато нет и никаких лишних серверных компонентов: все, что этому движку нужно – скрипт да доступ по HTTP к тому сайту, который нужно протестировать (я для начала немного побаловался с В Контакте, Яндексом и Google) . Ну и набор браузеров, для которых нужно протестировать сайт (если нужен не браузер по умолчанию, то можно указать конкретный браузер в командной строке). Так что к тестированию можно привлечь любого обладателя компьютера с доступом к интернету.

Написание скриптов – процесс нудный, но тоже несложный. Язык скриптов – JavaScript. Скрипты представляют собой имитацию обращений из JavaScript к jQuery, но фактически для написания скриптов достаточно знать всего несколько конструкций. Так что на самом деле для большинства задач нет необходимости ни в знании JavaScript, ни в знакомстве с jQuery .

Из одного файла вызывать другие файлы можно, так что управление наборами тестов не превращается в кошмар. Также можно подключать дополнительные модули CommonJs.
Один скрипт представляет собой текстовый файл с расширением jsq, который содержит набор блоков вида
 
Код:
test(
    function(){
            open('http://www.testjquery.com/demonstration.html');
             ....
   }
)

Open('…') – обязательная конструкция, открывающая страничку.
После команды Open идут блоки команд к элементам страницы. К примеру, ниже – строчка, которая переводит курсор на текстовое поле “ firstTabTextArea'” и вводит в него текст в точности так же, как это сделал бы человек:

 
Код:
$('#firstTabTextArea', 'Text Area').mousemove('top left', +5, +5).click('top left', +5, +5).type("PLEASE DON'T USE YOUR MOUSE DURING THIS DEMONSTRATION");


Подвести мышиный курсор к элементу, кликнуть с небольшим отступом, ввести текст с клавиатуры… Все прозрачно. Причем все это делается не изнутри браузера, а через Windows API . Так что получается действительно полная имитация действий человека.

При желании команды к элементу можно разделять таймаутами при помощи wait(…):

 
Код:
$('#firstTabTextArea', 'Text Area').wait(1500).mousemove('top left', +5, +5).wait(1500).click('top left', +5, +5).type(‘one’).wait(1500);


В этом случае создается иллюзия, что наблюдаешь за чужими действиями через какой-нибудь RemoteDesktop. Зачем это нужно? На самом деле это - самый простой способ просмотреть внешний вид в разных браузерах, а скрипт – гарантия того, что ничего не будет забыто.


А строчка ниже - проверка, что в текстовом поле находится именно текст “ DON'T USE YOUR MOUSE ”
 
Код:
$('#firstTabTextArea', 'Text Area').mousemove('bottom right').val().contains("DON'T USE YOUR MOUSE");


Если текст не тот, что нужен, то тест помечается как failed.
Для проверок значений может быть использовано энное количество методов типа .contains(value), .is(value), .not(value) и т. д. Плюс – замечательный метод .matches, который позволяет использовать регулярные выражения.

Что приятно – если сорвется какая-либо из промежуточных операций над элементом, то в лог пишется, что именно сорвалось и почему. К примеру, если возник сбой при попытке кликнуть по элементу из-за того, что элемент находится за пределами видимости, то в логе и будет написано: “click position outside of browser window”.

Не менее приятно и то, что есть метод .screenshot(name) – как из названия и следует, он позволяет получить скриншот. Но вот с местом расположения скриншотов (да и логов) тут перемудрили – по умолчанию они выкладываются в C:\ Documents and Settings\...\Application Data\Mouseclick Technologies\Tester Bench\TestResults\...\Images. Понятно, что все это настраивается в config.xml – но ведь ожидаешь, что если ты ничего не указывал, то логи и скриншоты будут сохранены по умолчанию в какой-нибудь поддиректории рядом с файлом конфигурации. Файл конфигурации ведь положили именно на привычное место - в директорию установки, а не закопали в application data.

В общем, если человек имеет хоть какие-то навыки программирования и представление об HTML – уйдет всего несколько часов на то, чтобы по диагонали просмотреть документацию и разобраться. Хотя многим будет достаточно просто заглянуть в пример скрипта - http://www.testjquery.com/support/testDemo.jsq .

Именно этот скрипт и исполняется при щелчке по ярлычку “Demonstration”. Но таймауты, которые в этом скрипте расставлены, не являются обычной практикой: они нужны только для того, чтобы он не пролетел слишком быстро для человеческих глаз и пользователь успел увидеть “киношку” про манипуляции мышкой и ввод текстовых данных в поля на демонстрационной странице со вполне приличным набором контролов.

И эта “киношка” – отнюдь не покоординатная запись движений мышкой и действий пользователя в духе “record macros & replay”. В качестве основного способа предполагается именно выбор элементов по именам, по классам, перебором списка. Важная именно для тестирования деталь: движок, несмотря на использование в скриптах jQuery, является на самом деле внешним по отношению к браузерам. Движения мышью, ввод данных с клавиатуры – все это делается через операционную систему. Благодаря этому выполняется действительно полная имитация действий пользователя.
То есть идет не просто инициирование события click. Без лишних усилий со стороны автора скрипта сначала подводится курсор мышки к элементу. Поэтому происходит полный набор событий, включая всякие mouseout(), mouseover() и т д

В общем, вкусностей и полезностей предостаточно. А из минусов… Многое зависит от сферы применения.
Но вот с документацией они однозначно не доработали. В поставке явно не хватает такого руководства именно по написанию скриптов к системе, которое позволит быстро и с минимальными усилиями привлечь к работе людей, вообще ничего не знающих ни о JavaScriipt, ни о jQuery. Ведь в принципе система такое позволяет.

Вообще продукт выглядит достойным пристального внимания. Сложно сказать, потеснит ли он системы, уже использующиеся в устоявшихся подразделениях QA крупных компаний. Но он точно в силу своих особенностей может быть полезен для организации тестирования своей продукции удаленно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог