Тестирование → Установка Sahi
Думаю написать пару записей про автоматическое тестирование в веб-разработке. Не потому, что информации по этой теме не хватает, а для того, чтобы у меня это было всегда под рукой :) Сразу всё в одной заметке не опишешь, конечно, так что буду по частям. Сегодняшняя часть будет про Sahi.
Если в двух словах, то это некий драйвер, который будет самостоятельно кликать по кнопкам и ссылкам, заполнять поля форм и выполнять прочие операции на сайте. Самостоятельно - это немного не то слово, будет происходить именно то и только то, что описано в тестовом сценарии. В отличии от других (но не всех, конечно) "эмуляторов" браузеров, Sahi умеет работать с динамическими веб-приложениями, т.е. AJAX и прочий javascript ему по зубам. Ладно, закончим с лирическим вступлением...
Идём на официальный сайт, перемещаемся в раздел с Open Source версией и кликаем на загрузку. Скачиваем. Скачается, скорее всего, jar-файл, но бояться его не стоит, всё отлично запустится и установится, если, конечно, Java JDK (или JRE) уже установлен.
Далее перемещаемся в раздел с документаций. Там читаем как запустить Sahi Dashboard. Либо ярлык в панели пуск, либо bat-файл по адресу /path/to/sahi/userdata/bin/sahi_dashboard.bat. На этом этапе меня поджидала неожиданность, т.к. этот самый дашборд отказался запускаться. Но у нас есть командная строка, где можно посмотреть ошибки, если они туда выводятся.
"java не является внутренней или внешней командой, исполняемой программой или пакетным файлом."
Лечение элементарное, надо прописать в Дополнительные параметры системы → Переменные среды → Path путь к бинарным файлам Java JDK (или JRE). У меня это, например, C:\Program Files (x86)\Java\jre6\bin. Речь идёт о Windows, естественно, если кто не понял :)
Казалось бы всё, программа должна запускаться и функционировать, но не тут то было. Смотрим в командную строку и видим, что Sahi Dashboard не может обнаружить браузеры, которые прописаны в /path/to/sahi/userdata/config/browser_types.xml. Открываем и редактируем пути. Должно получиться что-то вроде такого:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <browserTypes>
<browserType>
<name>firefox</name>
<displayName>Firefox</displayName>
<icon>firefox.png</icon>
<path>$ProgramFiles\Mozilla Firefox\firefox.exe</path>
<options>-profile "$userDir/browser/ff/profiles/sahi$threadNo" -no-remote</options>
<processName>firefox.exe</processName>
<capacity>5</capacity>
</browserType>
<browserType>
<name>ie</name>
<displayName>IE 9</displayName>
<icon>ie.png</icon>
<path>$ProgramFiles\Internet Explorer\iexplore.exe</path>
<options>-noframemerging</options>
<processName>iexplore.exe</processName>
<useSystemProxy>true</useSystemProxy>
<capacity>5</capacity>
</browserType>
<browserType>
<name>chrome</name>
<displayName>Chrome</displayName>
<icon>chrome.png</icon>
<path>$ProgramFiles\Google\Chrome\Application\chrome.exe</path>
<options>--user-data-dir=$userDir\browser\chrome\profiles\sahi$threadNo --proxy-server=localhost:9999 --disable-popup-blocking</options>
<processName>chrome.exe</processName>
<capacity>5</capacity>
</browserType>
<browserType>
<name>opera</name>
<displayName>Opera</displayName>
<icon>opera.png</icon>
<path>$ProgramFiles\Opera\opera.exe</path>
<options> </options>
<processName>opera.exe</processName>
<useSystemProxy>true</useSystemProxy>
<capacity>1</capacity>
</browserType>
</browserTypes>
|
Да, Safari у меня пока ещё не установлен :) Ну вот как бы и всё. Запускаем и наблюдаем правильную панель управления Sahi, которая красуется на первой картинке к этой записи. Собственно об автоматизированных тестах как-нибудь в другой раз.
Комментарии
Можно организоваться в конфе скайпа, если будет желание стучите в мой Skype: proxodnoydvor
Только "шевеляться" эти сахи и селениумы PHP-приложением, посредством соответствующего драйвера, т.е. для меня всё различие заключается в одной строчке конфигурации. Как эти инструменты выглядят ближе и сами по себе - не знаю.
мне сил не очень подходит из-за проблем с java а вообще есть мысль освоить Test Complite
мне необходимо, найти на странице элемент, в виде картинки например, и в случае если этот элемент есть, сделать одно действие, если нет, другое.
Если подскажешь как правильно составить условие, буду благодарен.
Я объявляю переменную, заношу в нее значение полученное из Sahi путем зажатой клавиши ctrl и выбора элемента. И это же значение пишу в условии if, но условие не выполняется.
если (есть искомая картинка на странице) то { одно... } иначе { другое... }
сейчас как раз занимаюсь переводом доков по Sahi так как в англ не силен.
Может подскажите как это сделать в Sahi?
Там тесты идут по очереди, если тестовый сценарий не проходит, то он пропускается с пометкой об ошибке и тесты идут дальше.
А как у тебя это происходит - не знаю. И подсказать сходу ничего не могу.
Буду ждать других статей про веб-тестирование, такое ощущение что мысли мои угадали, давно интересуют этой темой, но все руки не доходили покопаться.
Очень не хватало такой информации, все очень подробно и доступно.
Я начинающий тестировщик, и надеюсь Вы меня простите за, возможно глупый, вопрос: - я правильно понимаю, если программа которую я тестирую пишется на C#, то я не могу использовать Sahi для авто-тестов, т.к. она работает с Java?
Будет статья про программирование тестов на java c использованием framework Sahi? Хотя бы самое начало, но именно программирования, а не установки и настройки.
Есть ещё такой момент. Сам Sahi или Selenium для меня лишь строчка в конфиге, по большому счёту, а тесты пишу с использованием Mink/Behat, получаются более-менее человекопонятные сценарии при минимуме программирование. Хотя оно тоже надо, и необходимо понимать, что умеет тот или иной драйвер, который, собственно, тесты и гоняет.