SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Froglogic
Мастер класс          Squish
(начального уровня)
Беляевский Андрей
Благодарности
 Align  Technology RDITG Moscow
 Start Innovation
Что такое Squish
   http://www.froglogic.com/squish/gui-
    testing/index.php
   Кросс-платформенный инструмент
    автотестирования GUI
   Изначально создан для тестирования Qt
    приложений
   Используется более 1100 компаниями
   Команда разработчиков возглавляется бывшими
    разработчиками Qt
Поддерживаемы платформы
 Windows
 Mac     OS X
 Linux
 Unix
 iOS
    (iPhone, iPad, iPod)
 Meego
 embedded Linux
Варианты 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
Языки Squish
 Python
  •     Python 2.x (2.4+)
 JavaScript
 Tcl
 Perl
 Ruby
  •     Добавился недавно
Что нам интересно в Squish
 Мультиплатформенность
        Но   демка на Windows 7
 Отличная     поддержка Qt
     включая QML
 Python
     Можно на нем построить гетерогенную
      инфраструктуру автотестов
 Легкость     в освоении и работе
     важно для команд-новичков в автотестировании
Как устроен Squish
   Согласно, документации для проведения
    тестирования нужны две вещи:
    •   Тестируемое приложение
    •   Скрипт тестирования
   Тестируемое приложение и тестовый скрипт
    (запускаемый Squish) – всегда изолированные
    процессы
Как устроен Squish
 Изолированные        процессы теста и приложения
 позволяют:
  •   избежать падения Squish при падении приложения
  •   организовать удаленный запуск тестов
       •   в том числе на мобильных устройствах
  •   распределенный запуск тестов
Как устроен Squish
 Лучше   официальной документации не скажу…
Как устроен Squish
 squishserver
  •   запускает приложение
  •   инициирует работу библиотеки squishhook
  •   посредством squishhook опрашивает объекты о
      состоянии и выполняет команды от squishrunner на
      них
 squishrunner
  •   выполняет тестовый скрипт, коммуницируя через
      сокеты с squishserver
 squishhook
  •   открывает доступ к объектам
Как определить тип компилятора
1.   Качаем отсюда Strings утилиту от бывших
     Sysinternals
2.   Делаем так
Как определить тип компилятора
3.   Смотрим полученный файл
Как определить тип компилятора
4.   Выбираем соответствующий дистрибутив на
     портале Froglogic
Установка (базовая)
1.   Выбираем дистрибутив
      Версии компиляторов собравших Squish и
       приложение должны совпадать
      Версии Qt, с которыми собраны приложение и
       Squish должны совпадать
2.   Если шаг 1 не выполнен – собираем Squish из
     исходников
      Не сложно, но нужно быть аккуратным
3.   Проходим 7 простых установочных шагов
      точно указать Qt Core, используемый
       приложением
4.   Видео примера простой установки
Установка расширенная
 Squishможно установить в виде плагина к Eclipse
 Интерпретатор языка программирования также
  можно использовать отличный от того, что идет в
  сборке Squish
 Но в данной демонстрации всего этого не будет
Установка для запусков тестов
 Для
    запусков тестов (в batch режиме) нужен
 сокращенный набор файлов
  •   bin*.*
  •   lib*.*
  •   etcpaths.ini
  •   etcsquish.ini
  •   etc*wrapper_descriptors.xml
Шаг 1:Qt+Windows Запись теста
    Возьмем Squish и запишем рекордером
     простой тест для Qt Creator на Windows
     •   Что нажимать чтобы записать самый простой
         тест
    Немного причешим и локально запустим.
    Проверим что все работает.
Шаг 1:Qt+Windows Структура кейза
 init()
      – выполняет код до запуска приложения
 main() – обязательная функция в каждом тест-
  кейзе
 cleanup() – код, выполняющийся в любом случае
  после main() – удобен, если потенциально могут
  появиться неперехваченные исключения
Шаг 1:Qt+Windows Структура теста
 Формат       файлов Squish – текстовый
 suite_test
     shared – общие ресурсы
        testdata
        scripts

     tst_case1
       •   test.py – код тест-кейза
     …
     tst_casen – тут могут быть внутренние ресурсы
  •   object.map – репозиторий объектов
  •   suite.conf – файл конфигураций
Шаг 1:Qt+Windows Структура теста
 Структура   нашего простого примера
Шаг 2:Qt+Windows Результаты
 Результаты      можно получить в виде
  •   xml2.1
  •   xmljunit
  •   xml2
  •   xml
  •   xls
  •   html
       •   python squishxml2html.py --dir html –i *.xml
А    можем писать в БД
Шаг 3:Qt+Windows Event Handlers
 Используются
             для обработки событий
 определенного типа (например, появление окон
 ошибок)
  •   installEventHandler(eventName,
      handlerFunctionName)
  •   installEventHandler(className, eventName,
      handlerFunctionName)
  •   installEventHandler(object, eventName,
      handlerFunctionName)
Шаг 3:Qt+Windows Event Handlers
 События
  •   любое стандартное Qt событие
  •   или из списка
       o   Crash
       o   DialogOpened
       o   MainWindowOpened
       o   MessageBoxOpened
       o   Timeout
       o   ToplevelWidgetOpened
Шаг 4:Qt+Windows Keyword DD
 Считываем  их входного файла имена функций
  для выполнения и их параметры
 тест
    source(findFile("scripts", "driver.py"))
    def main():
        drive("keywords.tsv")
Шаг 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)
Шаг 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();
     }
Шаг 5: Qt+Windows attach to run
 Можноподключаться к уже работающему
 Приложение должно быть зарегистрировано
  •   squishserver --config addAttachableAUT aut
      [host:]port
 Используем   attachToApplication() вместо
 startApplication()
По секрету
Ближайшие планы развития
1. Squish для Android
2. Более тесная Squish <-> Squish Coco интеграция
3. Поддержка распознавания объектов по
   изображению (для работы с OpenGL,
   например)
4. Визуальный язык программирования тестов
5. Поддержка Qt 5
Это не «спонсорский доклад», но все же …
Скидка 10%
1. Промокод MCSRU12
2. Запишитесь у меня или заполните опрос в
   блоге о мастер классе
3. Скидка действует в течение 60 дней
4. Сайт производителя www.froglogic.com
Каждый должен расти над собой
 Хотите  узнать про Squish+iOS?
 Интересна тема Squish on Linux/Mac OS – пишите
  – сделаю свободный вебинар!
 Буду благодарен за критику в опросе
  http://zubactik.blogspot.com/
 Спасибо!
 «Ваше мнение важно для нас!»@
Мои контакты
 abelyaevsky@gmail.com
 Skype: andrey.belyaevsky
 ICQ: 348-925-702
 Блог АвтоТестировщика
 Vkontakte
 Мой Круг


 Есливам нужны какие-то материалы – не
 стесняйтесь – пишите!
Спасибо!!!
Тестеры,
тестировать –
круто!

Más contenido relacionado

La actualidad más candente

Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingSQALab
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...JSC “Arcadia Inc”
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктовScrumTrek
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?SQALab
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci COMAQA.BY
 
Альтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляCOMAQA.BY
 
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языкеКак автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языкеSQALab
 
Резюме Стасенко А.П
Резюме Стасенко А.ПРезюме Стасенко А.П
Резюме Стасенко А.ПAlexander Stasenko
 

La actualidad más candente (20)

Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
C#5 What's new?
C#5 What's new?C#5 What's new?
C#5 What's new?
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
 
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктов
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
Альтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуляАльтернативные способы изучения программирования с нуля
Альтернативные способы изучения программирования с нуля
 
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языкеКак автоматизировать рутинные задачи или учимся разговаривать на змеином языке
Как автоматизировать рутинные задачи или учимся разговаривать на змеином языке
 
Резюме Стасенко А.П
Резюме Стасенко А.ПРезюме Стасенко А.П
Резюме Стасенко А.П
 

Destacado

froglogic Squish (Qt edition)
froglogic Squish (Qt edition)froglogic Squish (Qt edition)
froglogic Squish (Qt edition)Amanda Burma
 
Инструменты и подходы к сессионному тестированию
Инструменты и подходы к сессионному тестированиюИнструменты и подходы к сессионному тестированию
Инструменты и подходы к сессионному тестированиюSQALab
 
Светлана Федянина - Роль тестировщика в Lean
Светлана Федянина - Роль тестировщика в LeanСветлана Федянина - Роль тестировщика в Lean
Светлана Федянина - Роль тестировщика в LeanSQALab
 
Я занимаюсь Fitnesse`ом каждый день
Я занимаюсь Fitnesse`ом каждый деньЯ занимаюсь Fitnesse`ом каждый день
Я занимаюсь Fitnesse`ом каждый деньSQALab
 
Послание аналитиков тестировщикам
Послание аналитиков тестировщикамПослание аналитиков тестировщикам
Послание аналитиков тестировщикамSQALab
 
Parasoft SOAtest
Parasoft SOAtestParasoft SOAtest
Parasoft SOAtestSQALab
 
Feature Injection: работаем с требованиями
Feature Injection: работаем с требованиямиFeature Injection: работаем с требованиями
Feature Injection: работаем с требованиямиSQALab
 
Роли, в которые играют тестировщики
Роли, в которые играют тестировщикиРоли, в которые играют тестировщики
Роли, в которые играют тестировщикиSQALab
 
Развитие в тестировании: включаем реактивный двигатель!
Развитие в тестировании: включаем реактивный двигатель!Развитие в тестировании: включаем реактивный двигатель!
Развитие в тестировании: включаем реактивный двигатель!SQALab
 
User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?SQALab
 
Тестирование спецификаций
Тестирование спецификацийТестирование спецификаций
Тестирование спецификацийSQALab
 
Аналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуАналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуSQALab
 
Impact Analysis в тестировании
Impact Analysis в тестированииImpact Analysis в тестировании
Impact Analysis в тестированииSQALab
 
Шаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииШаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииSQALab
 

Destacado (15)

froglogic Squish (Qt edition)
froglogic Squish (Qt edition)froglogic Squish (Qt edition)
froglogic Squish (Qt edition)
 
qmake入門
qmake入門qmake入門
qmake入門
 
Инструменты и подходы к сессионному тестированию
Инструменты и подходы к сессионному тестированиюИнструменты и подходы к сессионному тестированию
Инструменты и подходы к сессионному тестированию
 
Светлана Федянина - Роль тестировщика в Lean
Светлана Федянина - Роль тестировщика в LeanСветлана Федянина - Роль тестировщика в Lean
Светлана Федянина - Роль тестировщика в Lean
 
Я занимаюсь Fitnesse`ом каждый день
Я занимаюсь Fitnesse`ом каждый деньЯ занимаюсь Fitnesse`ом каждый день
Я занимаюсь Fitnesse`ом каждый день
 
Послание аналитиков тестировщикам
Послание аналитиков тестировщикамПослание аналитиков тестировщикам
Послание аналитиков тестировщикам
 
Parasoft SOAtest
Parasoft SOAtestParasoft SOAtest
Parasoft SOAtest
 
Feature Injection: работаем с требованиями
Feature Injection: работаем с требованиямиFeature Injection: работаем с требованиями
Feature Injection: работаем с требованиями
 
Роли, в которые играют тестировщики
Роли, в которые играют тестировщикиРоли, в которые играют тестировщики
Роли, в которые играют тестировщики
 
Развитие в тестировании: включаем реактивный двигатель!
Развитие в тестировании: включаем реактивный двигатель!Развитие в тестировании: включаем реактивный двигатель!
Развитие в тестировании: включаем реактивный двигатель!
 
User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?
 
Тестирование спецификаций
Тестирование спецификацийТестирование спецификаций
Тестирование спецификаций
 
Аналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качествуАналитик и Тестировщик в одном лице – путь к качеству
Аналитик и Тестировщик в одном лице – путь к качеству
 
Impact Analysis в тестировании
Impact Analysis в тестированииImpact Analysis в тестировании
Impact Analysis в тестировании
 
Шаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникацииШаблоны проектирования письменной коммуникации
Шаблоны проектирования письменной коммуникации
 

Similar a Froglogic Squish

Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммыPlatonov Sergey
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)Yandex
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияSQALab
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyDmytro Zharii
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...Vadim Ponomarev
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”GlobalLogic Ukraine
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в ЯндексеAndrey Kazarinov
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandexaviatakz
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...MskDotNet Community
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCOMAQA.BY
 
Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...SQALab
 

Similar a Froglogic Squish (20)

Асинхронность и сопрограммы
Асинхронность и сопрограммыАсинхронность и сопрограммы
Асинхронность и сопрограммы
 
Automation testing desktop applications
Automation testing desktop applicationsAutomation testing desktop applications
Automation testing desktop applications
 
iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)iPhone Unit Testing (Google tool Box)
iPhone Unit Testing (Google tool Box)
 
Использование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестированияИспользование Open Source инструментов для автоматизации тестирования
Использование Open Source инструментов для автоматизации тестирования
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 
PowerShell
PowerShellPowerShell
PowerShell
 
UI+unit testing in iOS
UI+unit testing in iOSUI+unit testing in iOS
UI+unit testing in iOS
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
OpenStack - Python Project with 12 Million Lines of code (RUS, Moscow Python ...
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Процессы разработки в Яндексе
Процессы разработки в ЯндексеПроцессы разработки в Яндексе
Процессы разработки в Яндексе
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
Кирилл Ветчинкин Практика использования .NET Core на ОС Linux с применением а...
 
Codeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышлоCodeception + Docker + Robo и что из этого вышло
Codeception + Docker + Robo и что из этого вышло
 
Dev collaboration
Dev collaborationDev collaboration
Dev collaboration
 
Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...Система управления автоматическими тестами на примере использования Visual St...
Система управления автоматическими тестами на примере использования Visual St...
 

Más de SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Más de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Froglogic Squish

  • 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 утилиту от бывших Sysinternals 2. Делаем так
  • 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 для Android 2. Более тесная Squish <-> Squish Coco интеграция 3. Поддержка распознавания объектов по изображению (для работы с OpenGL, например) 4. Визуальный язык программирования тестов 5. Поддержка Qt 5
  • 30. Это не «спонсорский доклад», но все же … Скидка 10% 1. Промокод MCSRU12 2. Запишитесь у меня или заполните опрос в блоге о мастер классе 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  Мой Круг  Есливам нужны какие-то материалы – не стесняйтесь – пишите!