Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CodeFest'10. Высоцкий С. — Автоматизация тестир...
Search
CodeFest
September 23, 2010
Programming
79
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CodeFest'10. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest
September 23, 2010
More Decks by CodeFest
See All by CodeFest
CodeFest 2019. Илья Редько (ONLY) — Дизайн без правок
codefest
1
920
CodeFest 2019. Александр Зезюлин (Wargaming) – Прекрасное далёко
codefest
0
870
CodeFest 2019. Александр Баяндин (Badoo) — Нетрадиционное использование автотестов
codefest
0
1.4k
CodeFest 2019. Антон Кочепасов (Rambus) — Как считать на питоне быстрее, чем на C++
codefest
0
860
CodeFest 2019. Александр Лысковский (iFarm Project, Alawar, Welltory) — Как придумывать новое: продукты, бизнесы, ниши
codefest
0
960
CodeFest 2019. Роман Квартальнов (Zephyr) — Почему Project Manager косячит?
codefest
0
1.2k
CodeFest 2019. Florian Rival (Facebook) — Beyond Web-Apps: WebAssembly, JS and React to rewrite native apps
codefest
0
1.2k
CodeFest 2019. Андрей Паньгин (Одноклассники) — JVM TI: как сделать «плагин» для виртуальной машины
codefest
0
1.3k
CodeFest 2019. Владимир Плизга (ЦФТ) — Перевод Spring Boot микросервисов с Java 8 на 11: что может пойти -не- так?
codefest
0
1.8k
Other Decks in Programming
See All in Programming
Lessons from Spec-Driven Development
simas
PRO
0
210
CSC307 Lecture 17
javiergs
PRO
0
320
dRuby over BLE
makicamel
2
380
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.2k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
Creating Composable Callables in Contemporary C++
rollbear
0
150
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
240
Performance Engineering for Everyone
elenatanasoiu
0
160
3Dシーンの圧縮
fadis
1
780
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
200
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.6k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Odyssey Design
rkendrick25
PRO
2
700
Building Applications with DynamoDB
mza
96
7.1k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
HDC tutorial
michielstock
2
720
Evolving SEO for Evolving Search Engines
ryanjones
0
220
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Design in an AI World
tapps
1
240
The Spectacular Lies of Maps
axbom
PRO
1
810
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Codefest 2010 Автоматизация Тестирования Flex/Flash GUI
Очень простой подход к тестам GUI:
Более сложный подход к тестам GUI:
Мы это пропустим, потому что: Долго Сложно
Причем тут Flash?
В чем проблема?
Как решить? Автоматизировать черный ящик Сделать ящик более
прозрачным
Автоматизация черного ящика
Распознавание образов
Использовать координаты на экране
Победа? Слишком сложно писать Слишком сложно поддерживать
Сделать черный ящик прозрачным
MSAA Ограниченный доступ до информации Ограниченные возможности по
расширению Не все объекты поддерживают
Flash ExternalInterface Очень Много Работы
Flex Automation Framework Все отлично
Хочу работать с Flex Automation Framework Нужно: Понять как
работает Выбрать Инструменты
Flex Automation Framework. Принципы работы
Как работает Flex Automation Framework?
Ничего не понял. Объясните проще Нужно: Написать делегаты
Сделать отдельную сборку Начать писать тесты
Когда надо писать делегаты? Не надо Надо
Зачем писать делегаты? Для того чтобы работать с: Новыми
событиями Новыми объектами Сложными объектами
Какие же есть инструменты?
Дешево и сердито: Flash-Selenium. Доступ до FlexExternalInterface
FunFx. WatiR Flex-ui-Selenium. Внезапно... Selenium
Дорого и надежно: HP QuickTest Professional IBM Rational
Functional Tester SilkTest
Прочее TestComplete Увы только MSAA Ranorex
Скрипты на C#, vb.NET и т. д. RIATest Свой простой скриптовый язык FlexMonkey Тесты в ActionScript Sauce OnDemand Облачный сервис
Примеры WARNING: будут куски кода
Пример #1. Pop-up. Проблема: Pop-Up не видно
Пример #1. Pop-up. Почему? SystemManager Pop-up Приложение Агент
Пример #1. Pop-up. Что делать? SystemManager Pop-up Приложение Агент Какая-то
Кнопка
Пример #1. Pop-up. Кусок кода. public override function get numAutomationChildren():int
{ return popUp is IAutomationObject ? 1 : 0; } public override function getAutomationChildAt(index:int):IAutomationObject { return popUp as IAutomationObject; }
Пример #2. Идентификаторы. Login Password ? ?
Пример #2. Идентификаторы. Что делать? Попросить разработчиков проставлять идентификаторы
и делать это хорошо. Самим залезть в код и проставить идентификаторы. Переопределить get для AutomationName.
Пример #3. Сложный и последний. Не графический объект может
существовать в приложении Такие объекты не являются AutomationObject Если такой объект будет обнаружен агентом, то мы получим исключение
Пример #3. Сложный и последний. Кусок кода: private function get
automationContent():Array { var children:Array = []; if (container != null) { for (var i:int=0; i < container.numChildren; i++) { var child:IAutomationObject = container.getChildAt(i) as IAutomationObject; if (child != null) { children.push(child); } } } return children; } public override function getAutomationChildAt(index:int):IAutomationObject { return automationContent.length ? automationContent[index] : super.getAutomationChildAt(index);}
Flex Automation Checklist Выбрать инструменты Подготовить тестовую среду
Специальная сборка Делегаты Что-то еще Начать писать тесты
Сергей Высоцкий
[email protected]