Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

CodeFest
September 23, 2010

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

CodeFest

September 23, 2010
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. Хочу работать с Flex Automation Framework Нужно:  Понять как

    работает  Выбрать Инструменты
  2. Ничего не понял. Объясните проще Нужно:  Написать делегаты 

    Сделать отдельную сборку  Начать писать тесты
  3. Зачем писать делегаты? Для того чтобы работать с:  Новыми

    событиями  Новыми объектами  Сложными объектами
  4. Дешево и сердито:  Flash-Selenium.  Доступ до FlexExternalInterface 

    FunFx.  WatiR  Flex-ui-Selenium.  Внезапно... Selenium
  5. Прочее  TestComplete  Увы только MSAA  Ranorex 

    Скрипты на C#, vb.NET и т. д.  RIATest  Свой простой скриптовый язык  FlexMonkey  Тесты в ActionScript  Sauce OnDemand  Облачный сервис
  6. Пример #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; }
  7. Пример #2. Идентификаторы. Что делать?  Попросить разработчиков проставлять идентификаторы

    и делать это хорошо.  Самим залезть в код и проставить идентификаторы.  Переопределить get для AutomationName.
  8. Пример #3. Сложный и последний.  Не графический объект может

    существовать в приложении  Такие объекты не являются AutomationObject  Если такой объект будет обнаружен агентом, то мы получим исключение
  9. Пример #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);}
  10. Flex Automation Checklist  Выбрать инструменты  Подготовить тестовую среду

     Специальная сборка  Делегаты  Что-то еще  Начать писать тесты