3. Содержание доклада
1. Постановка задачи
2. Jenkins - сервер автоматизации процесса тестирования
3. Sikuli – автоматизация с помощью изображений
4. Robot Framework – инструмент для автоматизации
тестирования ПО
5. Staf – мультиплатформенное решения для соединения
с удаленными машинами
6. Демонстрaция примера
7. Вопросы
3
4. Постановка задачи
AVAST антивирус
Сборка инсталлятора
(setup.exe)
Сценарии тестов
и вспомогательные файлы
Результаты
Автоматизация
• передача файлов
• выполнения тестов
• оценка результатов
4
6. Jenkins – сервер автоматизации
Особенности
• open source
• простая инсталляция и конфигурация
• мультиплатформенность (Java)
• планирование периодичности выполнения задач
используя механизм подобный cron
• поддерживает работу с системами контроля версий
(CVS, Subversion, Mercurial, Git, Clearcase)
• визуализация результатов теста
• исполняет shell-скрипты и команды Windows
6
8. Особенности
• open source
• мультиплатформенность (Windows, Mac OS X
и Linux)
• собственная IDE
• написание скриптов в Jython (Python)
• широкие возможности API (запуск аппликаций
и контроль над ними, действия
мыши, клавиш, исключения)
• окружение – Java 6 + Jython 2.5
8
SIKULI (www.sikuli.org)
9. SIKULI
• + Независимость на платформе (Java)
• + Независимость от тестируемой технологии
• + Высокая надежность
• + Простота создания сценариев
• – Зависимость от разрешения экрана
• – Высокая чувствительность к измненениям GUI
• – Низкая способность распознавания текста
9
10. Robot Framework
(code.google.com/p/robotframework/)
Особенности
Поддерживаемые библиотеки
• внутренняя (OperatingSystem, Screenshot, Telnet,
Collections, String, Dialogs, Remote, XML)
• вннешние (SeleniumLibrary, watir-robot, Watir,
WatinLibrary, SwingLibrary, EclipseLibrary, AutoItLibrary,
DatabaseLibrary, SSHLibrary, HTTP test library)
• open source
• мультиплатформенность
• поддержка библиотек в Python (Jython,
IronPython) и Java
• standalone JAR дистрибуция с Jython
• поддержка языка C (Python C API)
10
11. STAF (staf.sourceforge.net)
Особенности
• open source
• мультиплатформенность
• peer-to-peer среда
• поддержка политики безопасности
• внутренне сервисы-команды
(пересылка файлов, управлние
процессами ...)
• поддержка внешних сервисов (Java
jar, C ++ dll)
• возможность управления как
локальной машиной так и удаленной
• конфигурационный файл STAF.cfg
11
STAF клиент STAF клиент
peer-to-peer
12. STAF – сервисы
12
• Внутренние сервисы
Вызываемые из процесса STAFProc
• Внешние сервисы
Подлючаемые из Java jar или C++ dll файлов
• Пользовательские сервисы
13. STAF – внутренние сервисы
13
• DIAG Provides diagnostics services Internal ("DIAG")
• DELAY Provides a means to sleep a specified amount of time Internal ("DELAY")
• ECHO Echos back a supplied message Internal ("ECHO")
• FILE SYSTEM Allows you to get and copy files across the network Internal ("FS")
• HANDLE Provides information about existing STAF handles Internal ("HANDLE")
• HELP Provides Help on STAF error codes Internal ("HELP")
• MISC Handles miscellaneous commands such as displaying the version of STAF
• that is currently running Internal ("MISC")
• PING Provides a simple is-alive message Internal ("PING")
• PROCESS Allows you to start, stop, and query processes Internal ("PROCESS")
• QUEUE Provides a network-enabled IPC mechanism for STAF Programs Internal
("QUEUE")
• SEMAPHORE Provides network-enabled named event and mutex semaphores Internal
("SEM")
• SERVICE Allows you to list services available on a machine and to examine the
• Requests that have been submitted on a machineInternal ("SERVICE")
• SHUTDOWN Provides a means to shutdown STAF and register for shutdown
• Notifications Internal ("SHUTDOWN")
• TRACE Provides tracing information for STAF services Internal ("TRACE")
• TRUST Interfaces with STAF's security Internal ("TRUST")
• VARIABLE Provides a method for maintaining configuration and runtime data
• (variables) Internal ("VAR")
14. STAF – внешние сервисы
14
• CRON Calls into STAF services at a specified time interval External (Java)
• EMAIL Allows you to send email messages External (Java)
• EVENT Provides a publish/subscribe notification system External (Java)
• EVENTMANAGER Allows you to call STAF services when a specified Event
occurs External (Java)
• HTTP Allows you to make HTTP requests which can be grouped together in a
session External (Java)
• LOG Provides a full-featured logging facility External (C++)
• MONITOR Allows a testcase to publish its current running execution status for
others to read External (C++)
• RESOURCE POOL Allows you to manage exclusive access to pools of
elements, e.g. VM UserIDs or Software Licenses External (C++)
• STAX Provides an XML-based execution engine External (Java)
• ZIP Provides a means to zip/unzip/list/delete PKZip/WinZip compatible
archives External (C++)
15. STAF – политика безопасности
15
• Политика безопасности в STAF определена уровнем
доверия машин machine level и/или пользователей
user level
• Уровень trust level равный 0 – нет доступа
• Уровень trust level равный 1 – только PING и HELP
• Уровень trust level равный 2 – только query/view
• Уровень trust level равный 3 – доступ к протоколам ...
• Уровень trust level равный 4 – копирование файлов ... удаление логов
• Уровень trust level равный 5 – доступ без ограничений
• По умолчанию машинам присваивается default trust
level
• Каждый STAF сервис определен минимальным
необходимым уровнем доверия
25. Основные тезисы доклада
1. Постановка задачи
2. Jenkins – взгляд тестировщика
3. Sikuli – автоматизация с помощью изображений
4. Robot Framework – инструмент для автоматизации
тестирования ПО
5. Staf – мультиплатформенное решения для соединения
с удаленными машинами
6. Демонстрация примера
25