(Seleniumcamp) Selenium RC for QA Engineer

9,753 views
9,610 views

Published on

The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.

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

No Downloads
Views
Total views
9,753
On SlideShare
0
From Embeds
0
Number of Embeds
6,145
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Демонстрация работы Selenium на мобильном устройстве (длительность 5 – 10 минут).Для этой демонстрации необходим WiFi + камера, для просмотра аудиторией телефона с проектора.
  • Демонстрация включит в себя рассказ о framework, оргнизации тестов, отчетахЗапуск тестов реального проектаДлительность порядка 20 – 30 минут.
  • Продолжительность демонстрации 5 – 10 минут.
  • Продолжительность демонстрации 5 – 10 мин.
  • Продолжительность демонстрации 5 мин.
  • Продолжительность демонстрации 5 мин.
  • (Seleniumcamp) Selenium RC for QA Engineer

    1. 1. Selenium RC для QAинженеров: возможности, трудности и нюансы в использовании<br />ЯнАлексеенко<br />GGA Software Services<br />
    2. 2. Содержание<br />Возможности<br />Наш подход к тестированию<br />Недостатки<br />Проблема синхронизации<br />Проблемы кросс-браузерного тестирования<br />Что нужно знать?<br />Работа с файлами<br /> XSS инъекции<br /> Flash/Flex приложения<br /> Silverlight приложения<br />Демонстрации<br />
    3. 3. ПоддержкаOS<br />Windows <br />Solaris<br />Apple<br />Linux<br />
    4. 4. ПоддержкаOS<br />Selenium 2.0 дает возможность тестировать<br />Мобильные версии сайтов,<br />используя WebDriver<br />
    5. 5. Демонстрация<br />Пример работы с мобильными<br />устройствами<br />Установить Android SDK на ПК<br />Установить Android WebDriver на<br />телефон<br />Подключить телефон к USB в<br /> debug режиме<br />Выполнить следующие команды<br />cd/android_sdk/tools/adb devices<br />Вернёт <serialID><br />adb-s <serialId> forward tcp:8080 tcp:8080<br />http://code.google.com/p/selenium/wiki/AndroidDriver<br />
    6. 6. Поддерживаемые Браузеры<br />Internet Explorer 6+<br />Safari 3+<br />Fire Fox 2+<br />Google Chrome 3+<br />Opera 8+<br />
    7. 7. Популярность браузеров<br />
    8. 8. Популярность браузеров<br />
    9. 9. Время Тестирования<br />
    10. 10. Языки Программирования<br />Программируй на<br />А так же создавай свои языки, используя API<br />
    11. 11. Тестирование & Selenium<br />Функциональность Web-приложений<br />Работа JavaScript<br />JavaScript ошибки<br />Стиль страниц (вёрстка)<br />Орфография<br />Безопасность приложения<br />XSS уязвимости<br />SQL инъекции<br />и д.р.<br /> Flash, Silverlight…<br /> Performance<br />
    12. 12. Результаты тестирования<br />Имена выполняемых операций, <br />а также имена бизнес-функций<br />Время выполнения операций<br />Функциональные ошибки<br /> JavaScriptошибки<br />Проверка валидности HTML<br />(http://validator.w3.org/)<br /> Screenshots & Locatorshots<br />
    13. 13. Результаты тестирования<br />Html формат<br />txt формат<br />log<br />Удалённый доступ к результатам <br />с визуальным оформлением<br />Упрощённый формат для <br />сканера логов<br />Установка Errorcode при <br />завершении теста с ошибкой<br />
    14. 14. Результаты тестирования<br />
    15. 15. Результаты тестирования<br />
    16. 16. Наш выбор<br />+<br />SVN: разработка<br />тестов в команде<br />Компилирует<br />Запускает<br />Хранит историю<br />Hudson<br />
    17. 17. Структура Фреймворка<br />конфигурация теста<br />сценарий<br />тестирования<br />Runner<br />отчеты<br />редактор<br />сценариев<br />код тестов<br />вспомогательный<br />функционал<br />Локаторы объектов<br />
    18. 18. Организациятестов<br />Параметры<br />теста<br />Функциональность<br /> приложения<br />сценарий тестирования<br />Тестирование<br />код тестов<br />Локаторы объектов<br />
    19. 19. Проект на этапе разработки<br />
    20. 20. Готовый проект<br />
    21. 21. Демонстрация<br />Web-application:<br />Компоненты интерфейса:<br />библиотека MooTools<br /> HTML 5<br />CKEditor<br /> Flash<br />Видео ролик:<br />http://screencast.com/t/KlhRzHxzn<br />
    22. 22. Недостатки Selenium<br />Нативные окна браузера<br />Исключение: метод keyPressNative<br /> Digest & NTLM Authentication Scheme forHTTP<br />Необходимо настроить браузер<br /> Flash/Flex, Silverlight<br />Синхронизация<br />
    23. 23. Digest & NTLM Authentication<br /> Internet Explorer (regedit):<br />Создать ключ HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerMainFeatureControlFEATURE_HTTP_USERNAME_PASSWORD_DISABLE<br />СоздатьDWORDзначенияiexplore.exe & explorer.exeиустановить их значения0.<br />FireFox (about:config):<br />Установить network.http.phishy-userpass-length = 255<br />Добавить тестируемые домены вnetwork.automatic-ntlm-auth.trusted-uris<br />http://stackoverflow.com/questions/3021602<br />
    24. 24. Синхронизация<br />Java: Sleep для потока<br />Selenium: waitForPageToLoad<br />Достаточно? Нет, т.к. На странице есть JavaScript<br />Пути решения: <br />Ждать конкретные объекты на странице Это не универсальный метод<br />Флаги, вставляемые на страницуразработчиками<br />Универсальный подход<br />
    25. 25. Синхронизация<br />Загрузка/Выгрузка объекта по Xpath, CSS, ID<br />Загрузка/Выгрузка текста целиком/частично<br />Загрузка/Выгрузка объекта/текста после Refresh<br />Загрузка объектов по их численности<br />Ожидание изменений в JavaScript<br />Ожидание новых окон<br />
    26. 26. Проблемы кросс-браузерного тестирования<br /> Самопроизвольное закрытие теста<br />– Разбивай тесты на небольшие кусочки<br /> Медленная работа с Xpath<br />– Используй CSS & JavaScript<br /> Рассинхронизация работымежду Xpath & CSS<br />– Используй JavaScript<br /> Не поддерживает HTML 5 в полной мере<br />
    27. 27. Проблемы кросс-браузерного тестирования<br />HTTP authentication (ver. 4)<br />– Воспользуйся асинхронной работой Selenium<br />waitForPageToLoad(ver. 5): Result of expression‘this.getCurrentWindow’[undefined] is not a function<br />Работает только в режиме *safariproxy(ver. 5)<br />
    28. 28. Проблемы кросс-браузерного тестирования<br />HTTP authentication<br />Возможны проблемы с сертификатами<br />waitForPageToLoad:<br />Object[object HTMLIFrameElement] has no method 'getCurrentWindow‘ <br />
    29. 29. Проблемы кросс-браузерного тестирования<br />При обычном обновлении FireFoxс версии 3.5 до 3.6и использовании профиля для запуска тестов возникает проблемас сертификатом: services.addons.mozilla.org:443<br />– Необходимо устанавливать новую версию FireFox, полностью удалив старую, вместе с имеющимеся профилями.<br />
    30. 30. Работа с IFrame<br />Для активации элемента используй<br />и/или <br />Пример:<br />
    31. 31. Что нужно знать<br />Нет доступа к нативным формам<br />Какие компоненты используются(будут использоваться) <br />в Web приложении<br />Трудности при работе с IFrame<br /> Digest & NTLM Authentication<br />Нестабильная работа IE<br />Медленная работа IE c XPath<br />Асинхронное выполнение операций<br />
    32. 32. Работа с файлами<br />Upload:<br />keyPressNative<br /> JavaScript<br />Flash + JS + keyPressNative<br />Download:<br />Selenium +wget<br />wget -q –header “Cookie:$cookie” –P $path $url<br />FireFox Profile<br />keyPressNative<br />
    33. 33. Проблемы кросс-браузерного тестирования<br />VS<br />
    34. 34. Демонстрация<br /> Web-application:<br />Загрузчик файлов использует:<br />Flash<br />Для скачивания используем:<br />Wget<br />Видео ролики:<br />Safari: http://screencast.com/t/DGBoC41f<br />Google Chrome: http://screencast.com/t/pvQjDkNuScqO<br />
    35. 35. XSS injection<br />Пример уязвимости:<br />…<br /> Selenium:<br />Verify JS variable‘inject’ using<br />http://ha.ckers.org/xss.html<br />
    36. 36. Демонстрация<br /> Web-application:<br /> SeleniumIDE для наглядности<br />
    37. 37. Flash/Flex application<br />Открыть доступ к необходимым функциям,<br />используяExternalInterface<br />Воспользоваться JavaScript для вызова <br />соответствующих функций Flash<br /> Native keyboard events<br /> Native mouse events <br />Интеграция стороннихсредств тестирования<br />
    38. 38. Демонстрация<br /> Web-application: <br /> http://linux.ria.ua/JsFlash/simple.html<br /> http://www.uni-dubna.ru/~sidorov/workz/flash/operate2.html<br /> SeleniumIDE для наглядности<br />
    39. 39. Silverlight application<br />Открыть доступ к необходимым функциям<br />атрибут[ScriptableType]для странице<br />атрибут[ScriptableMember]для функции<br />Воспользоваться JavaScript для вызова <br /> соответствующих функций Silverlight<br /> Native keyboard events<br /> Native mouse events <br />Интеграция сторонних средств тестирования<br />
    40. 40. Демонстрация<br /> Web-application: Демонстрационное приложение <br /> – Сумма чисел<br /> SeleniumIDE для наглядности<br />
    41. 41. Спасибо за внимание<br />Вопросы<br />ЯнАлексеенко<br />GGA Software Services<br />Санкт-Петербург<br />alexeenko@ggasoftware.com<br />

    ×