Your SlideShare is downloading. ×
Automation  Flex Applications with Selenium rc
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Automation Flex Applications with Selenium rc

1,163
views

Published on

Published in: Technology

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

  • Be the first to like this

No Downloads
Views
Total Views
1,163
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Май 2010 по Gartner – в лидерах 2 решения в eCommerce: ATG и IBM WebSphere Commerce.
  • Watir с FunFX – мы не смогли стабильно автоматизировать эталонный сценарий.Различие технологий Ruby-Java остановило от дальнейшего рассмотрения этого сценария.
  • История про Firefox + WebSphere.Усилия на поддержку кроссбраузерности сократились на Flex.
  • Отсутствует синхронизация в первой ветке if’a.
  • Есть определённая нестабильность.
  • Пример с «Browse…» - ограничения по Security FlashPlayer’a.
  • 5-10человеко-лет разработки
  • Transcript

    • 1. Автоматизация Flex-приложений с помощью Selenium RC
      Игорь Хрол
    • 2. Немного о себе
      Игорь Хрол
      Специализируюсь на автоматизации тестирования с 2006года
      Инструменты:
      Selenium, HP QTP, Watir, TestComplete, Jmeter
      E-mail: khroliz@gmail.com
    • 3. Что будет в докладе?
      Немного о проекте
      Какой стоял выбор для автоматизации Flex’a?
      Сравнение инструментов
      Выбранное решение и архитектура
      Tips&Tricks
      Текущие результаты работы
    • 4. О проекте
      www.atg.com (с января 2011-го – часть Oracle)
      Середина 2009-го – вся UI-автоматизацияна HP QTP
      Конец 2009-го – первые версии приложения с Flexи решение начать автоматизацию на Selenium
    • 5. Варианты Flex-автоматизации
      HP QTP + Flex QTP add-in
      Selenium-Flex API + Selenium RC + Java
      FunFX + Watir + Ruby
    • 6. Результаты оценки – скорость работы (JSP)
      Цикличное создание-удаление 100 сущностей в JSP
      Время выполнения сценария в минутах
    • 7. Результаты оценки – скорость работы (Flex)
      Цикличное создание-удаление 100 сущностей вo Flex
      Время выполнения сценария в минутах
      QTP не поддерживает Firefox с Flex
    • 8. Результаты оценки – скорость работы (Flex)
      Цикличная навигация по Flex – 100 раз
      Время выполнения сценария в минутах
      QTP не поддерживает Firefox с Flex
    • 9. Недостатки QTP
      Нестабильная работа
      Распознавание UI-объектов с учётом практически всей иерархии объектов
      Отсутствие удобного языка и средств разработки
    • 10. Схема работы Selenium Flex API
      Selenium RC
      Код тест-кейса (С#, Java, Python, Ruby и другое)
      HTTP
      Браузер
      Selenium Core
      user-extensions.js
      Тестируемое приложение
      ExternalInterface
      Flex
    • 11. Поддержка различных браузеров
      Нужна ли вообще?
      Различные версии IE
      Google Chrome, Safari, Opera…
      Ну и конечно Firefox
    • 12. Структура фреймворка - локаторы
      Подобие ХPath, но не совсем
      Общая структура:
      property:value
      property1:value1,property2:value2
      property1:value1/property2:value2
      property1.subproperty11:value11,property2:value2/property3.subproperty31:value31
      Примеры…
    • 13. Пример локатора
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/className:BrowsePanel/id:ancestorNavBar/id:dropdownButtonArea/id:nodeText
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/className:BrowsePanel/id:ancestorNavBar/id:dropdownButtonArea/id:nodeText
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/className:BrowsePanel/id:ancestorNavBar/id:dropdownButtonArea/id:nodeText
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/className:BrowsePanel/id:ancestorNavBar/id:dropdownButtonArea/id:nodeText
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/className:BrowsePanel/id:ancestorNavBar/id:dropdownButtonArea/id:nodeText
    • 14. Пример локатора
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/name:mainPanel/className:HBox,numChildren:2,getChildAt(0).className:PropertyStatusIndicatorPanel,getChildAt(1).getChildAt(0).getChildAt(0).text:SKUs/styleName:defaultPropertyLabel
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/name:mainPanel/className:HBox,numChildren:2,getChildAt(0).className:PropertyStatusIndicatorPanel,getChildAt(1).getChildAt(0).getChildAt(0).text:SKUs/styleName:defaultPropertyLabel
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/name:mainPanel/className:HBox,numChildren:2,getChildAt(0).className:PropertyStatusIndicatorPanel,getChildAt(1).getChildAt(0).getChildAt(0).text:SKUs/styleName:defaultPropertyLabel
      id:merchandising.manageCommerceAssets_0,root.numModalWindows:0/name:mainPanel/className:HBox,numChildren:2,getChildAt(0).className:PropertyStatusIndicatorPanel,getChildAt(1).getChildAt(0).getChildAt(0).text:SKUs/styleName:defaultPropertyLabel
    • 15. Структура фреймворка
      Соотношение:
      класс из Flex’a↔класс из Java-фреймворка
    • 16. Структура фреймворка
      Java-класс инициализируется:
      своим локатором
      локатором контейнера
    • 17. Структура фреймворка
      «Склейка» локаторов на уровне базового конструктора
    • 18. Структура фреймворка - синхронизация
      При обращении к Java-объекту – ждём соответствующего объекта на UI
      Синхронизации нет???
    • 19. Tips&Tricks – FlexSpy
      Особенности:
      Запускается внутри флеш-объекта (может вызывать побочные эффекты)
      Лучше добавить его вызов на какую-нибудь комбинацию клавиш
    • 20. FlexSpy
    • 21. Обнаружение свойств объектов FlashInspector
      Плагин к Firefox
      Требует:
      Установки Firebug
      Debug-версию FlashPlayer’а
      FlashFirebug – другой аналог
    • 22. Сложности
      Альтернативная разработка
      Selenium Flex API своими силами
      Улучшена система локаторов
      Исправлено несколько дефектов
      Разработаны методы для работы с DataGrid’ами
      Расширено количество вызываемых событий
      Надеемся скоро это внести в виде своей доли в проект sfapi
    • 23. Сложности
      «Нативные» нажатия на кнопки – например для закачивания/скачивания файлов
      Решение: AutoIT
      Создание выполняемых exe-файлов
      Использование DLL через JNA
    • 24. Интеграция с существующим кодом на QTP
      Цель: выполнение действий во Flex-еиз QTP с помощью существующего Java-кода
      Алгоритм:
      Запуск браузера из Selenium’a
      Сохранение сессии
      Работа с отрытым браузером из QTP
      Вызов отдельных java-процессов с передачей в них сессии
    • 25. Поддержка WebDriver (Selenium 2)
      Браузер
      Код тест-кейса (С#, Java, Python, Ruby и другое)
      WebDriver API
      JavaScript evaluation
      ExternalInterface
      Тестируемое приложение
      Flex
    • 26. Результаты
      ~400k строк кода
      ~4500 java-классов (~3500 автоматизированных тест кейсов)
      Около 5 суток работы тестов
      Расширяемое решение
    • 27. Вопросы