Персональные инструменты
 

Sahi — различия между версиями

Материал из CustisWiki

Перейти к: навигация, поиск
м (реплицировано из внутренней CustisWiki)
 
м (реплицировано из внутренней CustisWiki)
(не показана 1 промежуточная версия 1 участника)
Строка 4: Строка 4:
 
* Написан на java
 
* Написан на java
 
* В данный момент бета-версия
 
* В данный момент бета-версия
 +
Используется в проекте [[ШБ:Горзаказ|школьные библиотеки]], был выбран в результате  [[Выбор_инструмента_автоматического_тестирования_Web-приложений|исследования]].
  
 
== Описание ==
 
== Описание ==
Строка 29: Строка 30:
  
 
=== Про браузер ===
 
=== Про браузер ===
Для работы нужен мощный современный браузер (IE, Firefox). Всякие их младшие, не графические и прочие собратья работать с Sahi не будут. Под Linux браузер надо запускать из под графической консоли (ведь он графический).
+
Для работы нужен мощный современный браузер (проверено IE, Firefox). Всякие их младшие, не графические и прочие собратья работать с Sahi не будут. Под Linux браузера надо запускать из под графической консоли (он же графический).
  
 
== Скрипты ==
 
== Скрипты ==
Строка 40: Строка 41:
 
* простые ссылки
 
* простые ссылки
 
* таблицы
 
* таблицы
* прочее
+
* всякие другие
 
* не было обнаружено не работающих элементов
 
* не было обнаружено не работающих элементов
  
Строка 54: Строка 55:
 
* логгирование из скриптов
 
* логгирование из скриптов
 
* закачка файлов
 
* закачка файлов
* разнообразные assert`ы: null, true, not
+
* всяческие assert`ы: null, true, not
 
* проверка текста на содержание строки/html
 
* проверка текста на содержание строки/html
 
* чтение из файлов
 
* чтение из файлов
Строка 60: Строка 61:
 
== Баги ==
 
== Баги ==
 
* не латинские символы в скриптах записываются через escape метод юникода (\\uXXXX), и при воспроизведении не работают.
 
* не латинские символы в скриптах записываются через escape метод юникода (\\uXXXX), и при воспроизведении не работают.
:исправлено в последних версиях
+
:замена "\\u" на "\u" в скриптах решает проблему
  
 
* (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца.
 
* (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца.

Версия 07:56, 2 февраля 2007

Sahi - opensource инструмент для автоматического тестирования web-приложений.

  • Сайт http://sahi.sourceforge.net
  • Лицензия - Apache Licence V2.0
  • Написан на java
  • В данный момент бета-версия

Используется в проекте школьные библиотеки, был выбран в результате исследования.

Описание

Архитектура

Архитектура представлена на рисунке. Sahi architecture.gif

Из рисунка можно понять, что 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), и при воспроизведении не работают.
замена "\\u" на "\u" в скриптах решает проблему
  • (на заметку) если в web-приложении есть процедура аутенфикации, то смена его доменного имени приводит к тому, что браузер (firefox) снова запрашивает его запоминание. Так что надо снова зайти на него и руками объяснить Firefox никогда не запоминать пароль для этого сайта. В противном случае он спрашивает "запомнить пароль для этого сайта" и автоматизированные тесты не выполняются до конца.
или вообще отключить эту функцию браузера

Заключение

Не смотря на простоту Sahi является мощным инструментом для тестирования web-приложений. Интеграция с Ant и логи в html позволяют эффективно использовать его при автоматическом регрессивном тестировании. Именно в таком режиме Sahi применяется в проекте школьные библиотеки. Его простота в данном случае является большим преимуществом, а функциональности достаточно.


Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».

Репликация: База Знаний «Заказных Информ Систем» → «Sahi»