Повышаем надёжность тестов через JavaScript

50 %
50 %
Information about Повышаем надёжность тестов через JavaScript
Technology

Published on March 1, 2014

Author: khroliz

Source: slideshare.net

Description

Доклад с конференции SeleniumCamp'2014

Повышаем надёжность тестов через JavaScript Игорь Хрол http://www.khroliz.com

О себе • Игорь Хрол • QA Automation Team Lead в Wargaming • Более семи лет в автоматизации тестирования • Десятки проектов • Инженер, тренер, консультант, менеджер, докладчик • Опыт работы с Selenium’ом – более 5 лет • Мой блог: http://ru.khroliz.com Постоянный участник SeleniumCamp 

О чём говорим? • Теоретические рассуждения и общие размышления • Практическая применимость идеи

Зависимость между уровнем тестов и поддержкой

UI-тесты ненадёжны

UI-тесты ненадёжны Одна из причин - современные пользовательские интерфейсы: – Сложные – Асинхронные

Современные интерфейсы строятся на уже готовых компонентах

Современные интерфейсы строятся на уже готовых компонентах

Готовые компоненты можно меньше тестировать

Кастомные компоненты можно тестировать отдельно http://seleniumcamp.com/archive/selenium-camp-2013/materials/unit-testing/ Спасибо, Dmitriy Kovalenko

Большинство современных UI имеет внутренний API

Преимущества API • Заточен для взаимодействия с контролами • Синхронный (или есть методы для синхронизации)

1. UI на готовых компонентах 2. Готовые компоненты можно не тестировать или тестировать отдельно 3. Компоненты имеют свой API 4. API компонент более надёжен, чем WebDriver API Использование JavaScript API вместо WebDriver

Пример из жизни

Особенности пользовательского интерфейса: • Много фреймов • ActiveX

Изначальное решение driver.findElement(By.id(“fancy-id”)).click(); WebDriver API Browser

Проблемы • Интерфейс сильно асинхронный, методы работали нестабильно • Много фреймов (более пяти вложенных) – сложно перейти к нужному контролу • Невозможность работы с ActiveX

Browser Script API http://docs.oracle.com/cd/B40099_02/books/OI Ref/OIRefBrowseScript.html Browser Script HTTP Server Script

Примеры

Получившийся результат • Быстрый • Надёжный • Синхронный

Проблемы

Синхронные запросы и Alert’ы • Вызов метода не заканчивается, пока не закрыт Alert • Нельзя вызвать alert.accept(), так как предыдущий вызов еще не завершён

window.setTimeout

Отсутствие 100%-й эмуляции пользователя

Другие применения данной идеи

Процент сайтов с jQuery - 50-60%

Синхронизация

Преобразование jQuery-объектов в WebElement и обратно

Поиск элементов

Получение родительского элемента

Упрощение взаимодействия со сложными элементами Календарь Спасибо @barancev

«Самописные» элементы

«Самописные» элементы

Общая схема

Способ быстро обойти существующие проблемы в WebDriver’e

Делать обходные пути осознанно • Делать только как временный workaround • Нужно разобраться, почему стандартный метод не подходит

Итого • Погружение в технические детали реализации позволяет делать более эффективные тесты • Изучение JavaScript и UI-библиотеки – логичный шаг для UI-автоматизации • Но нужно понимать, чем жертвуем и искать баланс

Спасибо! Вопросы? Игорь Хрол http://ru.khroliz.com khroliz@gmail.com / i_khrol@wargaming.net We are hiring!  http://wargaming.com/ru/careers/

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Повышаем надёжность Selenium ...

Выступление Игоря Хрола на онлайн-конференции Selen ConfeT&QA, 2013 год
Read more

Повышаем надёжность Selenium ...

Повышаем надёжность Selenium тестов через JavaScript ... Разработка тестов на Java с ...
Read more

How to inject Javascript in Selenium IDE to bring new ...

How to inject Javascript in Selenium IDE to ... Повышаем надёжность Selenium тестов через JavaScript ...
Read more

Повышаем надёжность Selenium ...

Повышаем надёжность Selenium тестов через JavaScript: 12.10.2015 12:32 View Comments.
Read more

Selen ConfeT&QA, осень 2013

1 Повышаем надёжность Selenium тестов через JavaScript. Игорь Хрол (Беларусь, Минск)
Read more

Selenium / WebDriver - Статьи

Повышаем надёжность Selenium тестов через JavaScript
Read more

Quality Assurance, STUdying, GAmification, MAny other ...

Повышаем надёжность Selenium тестов через JavaScript, ... запуска Selenium тестов в ...
Read more

Программа онлайн-конференции ...

Повышаем надёжность Selenium тестов через JavaScript, ... запуска Selenium тестов в ...
Read more