DOM, ваш союзник в тестировании веб-приложений |
05.09.2022 00:00 |
Автор: Валери Роле (Valery Raulet) С того момента, как Тим Бернерс Ли изобрел "Всемирную паутину" в 1989, браузер довольно серьезно изменился. Теперь он может запускать веб-приложения, используя технологию, которая исходно вообще для этого не предназначена. Язык HTML был создан для того, чтобы исследователи могли сотрудничать и делиться информацией. Веб-приложения стали сложными и используют комплекс из HTML/XML, JavaScript и CSS. Веб-разработчикам нужно тратить значительное время на изучение этой технологии и всех ее ответвлений (JQuery, Ajax, REST), которые позволяют создавать приложения еще мощнее. Для тестировщика-автоматизатора веб-приложения могут выглядеть, как обычные приложения с кнопками, чекбоксами, полями ввода и всеми базовыми компонентами GUI. Однако если мы стремимся к более богатому взаимодействию с конечным пользователем, появляются более сложные элементы GUI – деревья, сетки, меню, окна, и т. д. Этот богатый набор функций часто называют Web 2.0. Он не "стандартизован", каждый внедряет эти функции так, как считает нужным, но этот набор все еще полагается на базовые "кирпичи" из HTML, JavaScript и CSS. Эти сложные компоненты – то, что обычно заставляет тестировщика волноваться, так как инструмент автоматизации зачастую не может правильно с ними обращаться. Этот инструмент, как правило, не понимает суть компонента, и вместо этого записывает низкоуровневые взаимодействия вроде клика тут и отметки там. Неудивительно – эти компоненты созданы с использованием базовых блоков. Итак, как решить эту проблему? Прежде чем ответить на этот вопрос, посмотрим на архитектуру веб-браузера. Элементы:
Обычный процесс Обычный процесс состоит из следующих шагов:
Как можно видеть, DOM играет центральную роль в архитектуре браузера. Это его краеугольный камень. Различия между разными браузерами (Chrome, Firefox, Internet Explorer, Opera, Safari, и т. д.) в основном связаны с тем, как именно генерируется репрезентация DOM. Любой инструмент тестирования, серьезно поддерживающий веб-приложения, должен иметь способ для доступа к DOM, дабы дать тестировщику больше свободы. Эту функциональность можно использовать для:
К примеру, BorlandSilkTest и HP QuickTest Professional, два крупных инструмента функционального тестирования, доступные на рынке, такое взаимодействие позволяют. В QuickTest Professional есть свойство Object, дающее доступ к соответствующему объекту в DOM, а у SilkTest есть метод ExecMethod(), делающий то же самое. См. примеры ниже. Borland SilkTest Print(Browser.ExecMethod(“all.tags(“”INPUT””)(0).outerHTML”) HP QuickTest Professional Print Browser(“Browser”).Page(“Page”).Object.all.tags(“INPUT”)(0).outerHTML Можно шагнуть еще дальше – если ваш инструмент тестирования поддерживает расширяемость для Web, вы можете улучшить поведение инструмента и автоматически распознавать сложные объекты GUI. Это обычно требует хорошего знания Web-технологий (JavaScript, DOM, HTML) и язык, используемый для создания расширений. Благодаря DOM вам больше не придется ограничивать свою тест-мощь! Дополнительные материалы Mozilla — Document Object Model (DOM) |