CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI

1,242 views
1,145 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,242
On SlideShare
0
From Embeds
0
Number of Embeds
666
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI

  1. 1. Codefest 2010 Автоматизация Тестирования Flex/Flash GUI
  2. 4. <ul><li>Долго </li></ul><ul><li>Сложно </li></ul><ul><li>Причем тут Flash ? </li></ul>
  3. 6. <ul><li>Автоматизировать черный ящик </li></ul><ul><li>Сделать ящик более прозрачным </li></ul>
  4. 10. <ul><li>Слишком сложно писать </li></ul><ul><li>Слишком сложно поддерживать </li></ul>
  5. 12. <ul><li>Ограниченный доступ до информации </li></ul><ul><li>Ограниченные возможности по расширению </li></ul><ul><li>Не все объекты поддерживают </li></ul>
  6. 13. <ul><li>Очень </li></ul><ul><li>Много </li></ul><ul><li>Работы </li></ul>
  7. 14. <ul><li>Все отлично </li></ul>
  8. 15. <ul><li>Нужно: </li></ul><ul><li>Понять как работает </li></ul><ul><li>Выбрать Инструменты </li></ul>
  9. 18. <ul><li>Нужно: </li></ul><ul><li>Написать делегаты </li></ul><ul><li>Сделать отдельную сборку </li></ul><ul><li>Начать писать тесты </li></ul>
  10. 20. <ul><li>Для того чтобы работать с: </li></ul><ul><li>Новыми событиями </li></ul><ul><li>Новыми объектами </li></ul><ul><li>Сложными объектами </li></ul>
  11. 22. <ul><li>Flash-Selenium . </li></ul><ul><ul><li>Доступ до FlexExternalInterface </li></ul></ul><ul><li>FunFx. </li></ul><ul><ul><li>WatiR </li></ul></ul><ul><li>Flex-ui-Selenium. </li></ul><ul><ul><li>Внезапно... Selenium </li></ul></ul>
  12. 23. <ul><li>HP QuickTest Professional </li></ul><ul><li>IBM Rational Functional Tester </li></ul><ul><li>SilkTest </li></ul>
  13. 24. <ul><li>TestComplete </li></ul><ul><ul><li>Увы только MSAA </li></ul></ul><ul><li>Ranorex </li></ul><ul><ul><li>Скрипты на C# , vb.NET и т. д. </li></ul></ul><ul><li>RIATest </li></ul><ul><ul><li>Свой простой скриптовый язык </li></ul></ul><ul><li>FlexMonkey </li></ul><ul><ul><li>Тесты в ActionScript </li></ul></ul><ul><li>Sauce OnDemand </li></ul><ul><ul><li>Облачный сервис </li></ul></ul>
  14. 25. WARNING: будут куски кода
  15. 26. <ul><li>Pop-Up не видно  </li></ul>
  16. 27. SystemManager Pop-up Приложение Агент
  17. 28. SystemManager Pop-up Приложение Агент Какая-то Кнопка
  18. 29. <ul><li>public override function get numAutomationChildren():int </li></ul><ul><li>{ </li></ul><ul><li>return popUp is IAutomationObject ? 1 : 0; </li></ul><ul><li>} </li></ul><ul><li>public override function getAutomationChildAt(index:int):IAutomationObject </li></ul><ul><li>{ </li></ul><ul><li>return popUp as IAutomationObject; </li></ul><ul><li>} </li></ul>
  19. 30. Login Password ? ?
  20. 31. <ul><li>Попросить разработчиков проставлять идентификаторы и делать это хорошо. </li></ul><ul><li>Самим залезть в код и проставить идентификаторы. </li></ul><ul><li>Переопределить get для AutomationName. </li></ul>
  21. 32. <ul><li>Не графический объект может существовать в приложении </li></ul><ul><li>Такие объекты не являются AutomationObject </li></ul><ul><li>Если такой объект будет обнаружен агентом, то мы получим исключение </li></ul>
  22. 33. <ul><li>private function get automationContent():Array </li></ul><ul><li>{ </li></ul><ul><li>var children:Array = []; </li></ul><ul><li>if (container != null) </li></ul><ul><li>{ </li></ul><ul><li>for (var i:int=0; i < container.numChildren; i++) </li></ul><ul><li>{ </li></ul><ul><li>var child:IAutomationObject = container.getChildAt(i) as IAutomationObject; </li></ul><ul><li>if (child != null) </li></ul><ul><li>{ </li></ul><ul><li>children.push(child); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>return children; </li></ul><ul><li>} </li></ul><ul><li>public override function getAutomationChildAt(index:int):IAutomationObject </li></ul><ul><li>{ return automationContent.length ? automationContent[index] : super.getAutomationChildAt(index);} </li></ul>
  23. 34. <ul><li>Выбрать инструменты </li></ul><ul><li>Подготовить тестовую среду </li></ul><ul><ul><li>Специальная сборка </li></ul></ul><ul><ul><li>Делегаты </li></ul></ul><ul><ul><li>Что-то еще </li></ul></ul><ul><li>Начать писать тесты </li></ul>

×