|
|
Строка 4: |
Строка 4: |
| * Написан на java | | * Написан на java |
| * В данный момент бета-версия | | * В данный момент бета-версия |
− | Используется в проекте [[ШБ:Горзаказ|школьные библиотеки]], был выбран в результате [[Выбор_инструмента_автоматического_тестирования_Web-приложений|исследования]].
| |
| | | |
| == Описание == | | == Описание == |
Строка 30: |
Строка 29: |
| | | |
| === Про браузер === | | === Про браузер === |
− | Для работы нужен мощный современный браузер (проверено IE, Firefox). Всякие их младшие, не графические и прочие собратья работать с Sahi не будут. Под Linux браузера надо запускать из под графической консоли (он же графический). | + | Для работы нужен мощный современный браузер (IE, Firefox). Всякие их младшие, не графические и прочие собратья работать с Sahi не будут. Под Linux браузер надо запускать из под графической консоли (ведь он графический). |
| | | |
| == Скрипты == | | == Скрипты == |
Строка 41: |
Строка 40: |
| * простые ссылки | | * простые ссылки |
| * таблицы | | * таблицы |
− | * всякие другие | + | * прочее |
| * не было обнаружено не работающих элементов | | * не было обнаружено не работающих элементов |
| | | |
Строка 55: |
Строка 54: |
| * логгирование из скриптов | | * логгирование из скриптов |
| * закачка файлов | | * закачка файлов |
− | * всяческие assert`ы: null, true, not | + | * разнообразные assert`ы: null, true, not |
| * проверка текста на содержание строки/html | | * проверка текста на содержание строки/html |
| * чтение из файлов | | * чтение из файлов |
Строка 61: |
Строка 60: |
| == Баги == | | == Баги == |
| * не латинские символы в скриптах записываются через escape метод юникода (\\uXXXX), и при воспроизведении не работают. | | * не латинские символы в скриптах записываются через escape метод юникода (\\uXXXX), и при воспроизведении не работают. |
− | :замена "\\u" на "\u" в скриптах решает проблему | + | :исправлено в последних версиях |
| | | |
| * (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца. | | * (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца. |
Версия 12:08, 30 июля 2007
Sahi - opensource инструмент для автоматического тестирования web-приложений.
Описание
Архитектура
Архитектура представлена на рисунке.
Из рисунка можно понять, что sahi:
- использует браузер как движок
- работает прокси-сервером
Преимущества
- позволяет записывать скрипты по действиям
- мощное API
- простой язык скриптов - JavaScript
- интеграция с Ant - удобно при автоматизации
- создает html логи
- кроссплатформенность
Недостатки
- бета версия
- не решенные баги
Про браузер
Для работы нужен мощный современный браузер (IE, Firefox). Всякие их младшие, не графические и прочие собратья работать с Sahi не будут. Под Linux браузер надо запускать из под графической консоли (ведь он графический).
Скрипты
Язык скриптов JavaScript, можно использовать стандартные функции. Есть свое API - достаточно удобное и мощное.
Поддерживаемые элементы
- элементы форм (textbox, passwordbox, select, ...)
- radiobutton/button
- image
- простые ссылки
- таблицы
- прочее
- не было обнаружено не работающих элементов
Функции
- работа с пременными в том числе глобальными
- клики, клики по изображениям
- симуляция событий JavaScript
- highlight
- drag-and-drop
- пауза при исполнении
- функции с сервера
- работа с mock-объектами
- логгирование из скриптов
- закачка файлов
- разнообразные assert`ы: null, true, not
- проверка текста на содержание строки/html
- чтение из файлов
Баги
- не латинские символы в скриптах записываются через escape метод юникода (\\uXXXX), и при воспроизведении не работают.
- исправлено в последних версиях
- (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца.
- или вообще отключить эту функцию браузера
Заключение
Не смотря на простоту Sahi является мощным инструментом для тестирования web-приложений. Интеграция с Ant и логи в html позволяют эффективно использовать его при автоматическом регрессивном тестировании. Именно в таком режиме Sahi применяется в проекте школьные библиотеки. Его простота в данном случае является большим преимуществом, а функциональности достаточно.