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