froglogic squish

Post on 29-Nov-2014

1.241 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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\*.*

• etc\paths.ini

• etc\squish.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

Мой Круг

Если вам нужны какие-то материалы – не

стесняйтесь – пишите!

Спасибо!!!

Тестеры,

тестировать –

круто!

top related