Ч а с т ь I главный редактор



Pdf көрінісі
бет37/77
Дата01.10.2023
өлшемі7,26 Mb.
#183162
1   ...   33   34   35   36   37   38   39   40   ...   77
Байланысты:
moluch 366 ch1

.
№ 24 (366)
 .
Июнь 2021 г.
34
Информационные технологии
Автоматизация кроссбраузерного тестирования
Мешканова Марина Александровна, студент магистратуры
Поволжский государственный университет сервиса (г. Тольятти)
В статье рассматриваются особенности предлагаемого подхода в процессе автоматизированного кроссбраузерного тестиро-
вания web-приложений.
Ключевые слова:
 кроссбраузерное тестирование, веб-приложение, cross-browser compatibility testing, image processing
Н
аиболее популярные подходы автоматизации кроссбра-
узерного тестирования интерфейса web-приложений ис-
пользуют идеи и инструментарий модульного тестирования. 
Рассматриваемый в статье подход к автоматизизации кроссбра-
узерного тестирования, основанный на сегментации и срав-
нении изображения, отражает также и особенности ручного 
кроссбраузерного тестирования.
Предлагаемый метод автоматизации кроссбраузерного те-
стирования состоит из четырех этапов.
Сначала делаются скриншоты веб-страницы в тестируемом 
браузере и в базовом браузере, где корректность рендеринга 
веб-страницы утверждается заранее.
Далее к полученным снимкам экрана применяется сегмен-
тация изображений, чтобы равномерно разделить их на об-
ласти.
После этого применяется автоматического сопоставления 
и сравнения этих областей, извлеченных из тестируемого бра-
узера и базового браузера.
И в конце применяются методы машинного обучения для 
классификации выявленных различий в приемлемые различия, 
основанные на попарных сравнениях выборок, проведенных 
реальными тестировщиками [4].
Вводная часть для этой фазы — это url-адрес тестируемой 
веб-страницы и конфигурации браузера, в которых предстоит 
провести тестирование. На выходе получается одно изобра-
жение всей отрисовки веб-страницы для каждой конфигурация 
браузера. Эти изображения используются для обнаружения не-
соответствий на более поздних этапах [1].
Рендеринг веб-страниц в различных конфигурациях тре-
бует больших вычислительных ресурсов. Поэтому предполага-
ется запуск ряда виртуальных машин, которые воспроизведут 
каждую конфигурацию (эмулятор устройства, операционная 
система, настройки браузера). Для поддержки большого коли-
чество итерационных тестов, инструмент должен выдать ре-
зультаты от нескольких секунд до нескольких минут. Для до-
стижения этой цели применяется несколько оптимизаций. При 
этом загрузка и захват снимков экрана веб-страницы может за-
нять до десятков секунд.
Чтобы получить результаты тестирования за секунды, не-
обходимо распараллелить захват экрана. Это означает, что вир-
туальные машины, производящие скриншоты запускаются па-
раллельно. Кроме того, для выполнения множества тестовых 
запросов от потенциально большого пула одновременно ра-
ботающих пользователей, нужно добавить систему очередей. 
Например, использовать Resque — основанного на Redis, би-
блиотеку Ruby для организации очередей и бэкэнд-обработки 
различных задач [3]. Разные рабочие (Ruby) процессы исполь-
зуются для различных задач: снимок экрана, изменение размера 
и сегментация изображения и сравнение регионов.
Такая архитектура делает систему асинхронный, что позво-
ляет масштабировать систему по горизонтали.
Блок «Capture Worker» отвечает за создание снимков экрана 
(за открытие браузера, загрузку веб-страницы, настройку об-
ласти просмотра браузера и снимаем скриншот). Worker за-
хвата резервирует задание, опрашивая одну или несколько 
очередей, которые соответствуют установленным браузерам 
базовой операционной системы. Для каждой конфигурации 
есть специальный файл настроек, который включает точные 
координаты, область просмотра браузера. Когда Worker запу-
скается впервые и когда настройки конфига для определенного 
конфигурации не найдены, размеры обрезки калибруются с по-
мощью тестовой веб-страницы.
В течение этой процедуры определяется размер и поло-
жение области просмотра и его полос прокрутки, а также не-
которые специфичные для браузера атрибуты измеряются 
и сохраняются в файле конфигурации. Затем эти параметры ис-
пользуются для захвата экрана.
Автоматизация процессора захвата браузера выполняется 
основе Selenium WebDriver, основанный на связи JSON между 
сервером WebDriver и клиентом. Это решение позволяет авто-
матизировать большинство манипуляций с браузером, за ис-
ключением того факта, что библиотека WebDriver не имеет 
полной поддержки конфигурации OSX Safari, поэтому для 
этой цели вместо Selenium WebDriver используется библиотека 
WatiR Ruby для автоматизации OSX Safari.
В процессе захвата используются два альтернативных ме-
тода для получения изображения на всю страницу.
Первый метод прокручивает веб-страницу и сшивает части 
изображения в полноразмерное изображение. Второй метод 
изменяет размер окна браузера, чтобы он соответствовал пол-
ному размеру веб-страницы, после которого изображение 
может быть сразу захвачено [2].
Второй способ намного быстрее и надежнее по сравнению 
с первым. Дополнительно, используя первый способ, элементы 
веб-страницы с фиксированным положением на экране могут 
появляться несколько раз на разных сегментах изображения 
при прокрутке страницы — и, следовательно, это дублиро-
вание необходимо обнаруживать и устранять при сшивании 
нескольких изображений вместе, что иногда может приводить 
к неточности в полученном скриншоте. Следовательно, второй 
метод используется только тогда, когда первый не поддержи-
вается данной платформой (например, OS X вместе с WatiR не 


“Young Scientist”


Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   77




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет