Your SlideShare is downloading. ×
  • Like
Froglogic Squish
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Froglogic Squish

  • 849 views
Published

SQA Days-11. День 1. Секция B …

SQA Days-11. День 1. Секция B
Андрей Беляевский

Published in Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
849
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
17
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. FroglogicМастер класс Squish(начального уровня)Беляевский Андрей
  • 2. Благодарности Align Technology RDITG Moscow Start Innovation
  • 3. Что такое Squish http://www.froglogic.com/squish/gui- testing/index.php Кросс-платформенный инструмент автотестирования GUI Изначально создан для тестирования Qt приложений Используется более 1100 компаниями Команда разработчиков возглавляется бывшими разработчиками Qt
  • 4. Поддерживаемы платформы Windows Mac OS X Linux Unix iOS (iPhone, iPad, iPod) Meego embedded Linux
  • 5. Варианты Squish Qt : Включая QML, Qt Quick Java : Swing/AWT/SWT/RCP, JNLP, GEF Web : IE (6.x - 9.x), FF (1.x - 4.x), Safari, Chrome, Opera Windows : .NET/.NET WPF/MFC/Sybase/Exontrol/Plex Mac : Cocoa, Carbon iPhone : both device and simulator, CocoaTouch Tcl/Tk 4js : Four J’s Genero GUI
  • 6. Языки Squish Python • Python 2.x (2.4+) JavaScript Tcl Perl Ruby • Добавился недавно
  • 7. Что нам интересно в Squish Мультиплатформенность  Но демка на Windows 7 Отличная поддержка Qt  включая QML Python  Можно на нем построить гетерогенную инфраструктуру автотестов Легкость в освоении и работе  важно для команд-новичков в автотестировании
  • 8. Как устроен Squish Согласно, документации для проведения тестирования нужны две вещи: • Тестируемое приложение • Скрипт тестирования Тестируемое приложение и тестовый скрипт (запускаемый Squish) – всегда изолированные процессы
  • 9. Как устроен Squish Изолированные процессы теста и приложения позволяют: • избежать падения Squish при падении приложения • организовать удаленный запуск тестов • в том числе на мобильных устройствах • распределенный запуск тестов
  • 10. Как устроен Squish Лучше официальной документации не скажу…
  • 11. Как устроен Squish squishserver • запускает приложение • инициирует работу библиотеки squishhook • посредством squishhook опрашивает объекты о состоянии и выполняет команды от squishrunner на них squishrunner • выполняет тестовый скрипт, коммуницируя через сокеты с squishserver squishhook • открывает доступ к объектам
  • 12. Как определить тип компилятора1. Качаем отсюда Strings утилиту от бывших Sysinternals2. Делаем так
  • 13. Как определить тип компилятора3. Смотрим полученный файл
  • 14. Как определить тип компилятора4. Выбираем соответствующий дистрибутив на портале Froglogic
  • 15. Установка (базовая)1. Выбираем дистрибутив  Версии компиляторов собравших Squish и приложение должны совпадать  Версии Qt, с которыми собраны приложение и Squish должны совпадать2. Если шаг 1 не выполнен – собираем Squish из исходников  Не сложно, но нужно быть аккуратным3. Проходим 7 простых установочных шагов  точно указать Qt Core, используемый приложением4. Видео примера простой установки
  • 16. Установка расширенная Squishможно установить в виде плагина к Eclipse Интерпретатор языка программирования также можно использовать отличный от того, что идет в сборке Squish Но в данной демонстрации всего этого не будет
  • 17. Установка для запусков тестов Для запусков тестов (в batch режиме) нужен сокращенный набор файлов • bin*.* • lib*.* • etcpaths.ini • etcsquish.ini • etc*wrapper_descriptors.xml
  • 18. Шаг 1:Qt+Windows Запись теста  Возьмем Squish и запишем рекордером простой тест для Qt Creator на Windows • Что нажимать чтобы записать самый простой тест  Немного причешим и локально запустим.  Проверим что все работает.
  • 19. Шаг 1:Qt+Windows Структура кейза init() – выполняет код до запуска приложения main() – обязательная функция в каждом тест- кейзе cleanup() – код, выполняющийся в любом случае после main() – удобен, если потенциально могут появиться неперехваченные исключения
  • 20. Шаг 1:Qt+Windows Структура теста Формат файлов Squish – текстовый suite_test  shared – общие ресурсы  testdata  scripts  tst_case1 • test.py – код тест-кейза  …  tst_casen – тут могут быть внутренние ресурсы • object.map – репозиторий объектов • suite.conf – файл конфигураций
  • 21. Шаг 1:Qt+Windows Структура теста Структура нашего простого примера
  • 22. Шаг 2:Qt+Windows Результаты Результаты можно получить в виде • xml2.1 • xmljunit • xml2 • xml • xls • html • python squishxml2html.py --dir html –i *.xmlА можем писать в БД
  • 23. Шаг 3:Qt+Windows Event Handlers Используются для обработки событий определенного типа (например, появление окон ошибок) • installEventHandler(eventName, handlerFunctionName) • installEventHandler(className, eventName, handlerFunctionName) • installEventHandler(object, eventName, handlerFunctionName)
  • 24. Шаг 3:Qt+Windows Event Handlers События • любое стандартное Qt событие • или из списка o Crash o DialogOpened o MainWindowOpened o MessageBoxOpened o Timeout o ToplevelWidgetOpened
  • 25. Шаг 4:Qt+Windows Keyword DD Считываем их входного файла имена функций для выполнения и их параметры тест source(findFile("scripts", "driver.py")) def main(): drive("keywords.tsv")
  • 26. Шаг 4:Qt+Windows Keyword DD драйвер source(findFile("scripts", "actions.py")) def drive(datafile): for row, record in enumerate(testData.dataset(datafile)): command = testData.field(record, "Keyword") + "(" comma = "" for i in range(1, 5): arg = testData.field(record, "Argument %d" % i) if arg: command += "%s%r" % (comma, arg) comma = ", " else: break command += ")" eval(command)
  • 27. Шаг 5: Qt+Windows attach to run Можноподключаться к уже работающему приложению с помощью attachToApplication()  Используем built-in-hook в коде приложения #include <QApplication> #include "qtbuiltinhook.h" int main(int argc, char **argv) { QApplication app(argc, argv); Squish::allowAttaching(11233); //... return app.exec(); }
  • 28. Шаг 5: Qt+Windows attach to run Можноподключаться к уже работающему Приложение должно быть зарегистрировано • squishserver --config addAttachableAUT aut [host:]port Используем attachToApplication() вместо startApplication()
  • 29. По секретуБлижайшие планы развития1. Squish для Android2. Более тесная Squish <-> Squish Coco интеграция3. Поддержка распознавания объектов по изображению (для работы с OpenGL, например)4. Визуальный язык программирования тестов5. Поддержка Qt 5
  • 30. Это не «спонсорский доклад», но все же …Скидка 10%1. Промокод MCSRU122. Запишитесь у меня или заполните опрос в блоге о мастер классе3. Скидка действует в течение 60 дней4. Сайт производителя www.froglogic.com
  • 31. Каждый должен расти над собой Хотите узнать про Squish+iOS? Интересна тема Squish on Linux/Mac OS – пишите – сделаю свободный вебинар! Буду благодарен за критику в опросе http://zubactik.blogspot.com/ Спасибо! «Ваше мнение важно для нас!»@
  • 32. Мои контакты abelyaevsky@gmail.com Skype: andrey.belyaevsky ICQ: 348-925-702 Блог АвтоТестировщика Vkontakte Мой Круг Есливам нужны какие-то материалы – не стесняйтесь – пишите!
  • 33. Спасибо!!!Тестеры,тестировать –круто!