ОТКРОЙТЕ ДЛЯ СЕБЯ НОВЫЙ ИНТЕЛЛЕКТУАЛЬНЫЙ ГЕНЕРАТОР XPATH ОТ KATALON STUDIO

Введение

При автоматизированном тестировании веб-интерфейса тестировщики в первую очередь беспокоятся о высоких затратах на обслуживание тестовых сценариев, которые обычно вызваны нестабильными и неработающими локаторами. Локатор — это механизм, используемый Selenium для идентификации элемента во время выполнения теста. Популярным механизмом поиска является XPath. К сожалению, локаторы легко ломаются или не могут идентифицировать целевой элемент при изменении тестируемого приложения (AUT). Существующее исследование показало, что на локаторы приходится более 70 % сбоев в сценариях тестирования пользовательского веб-интерфейса.

Следовательно, создание и использование правильных и устойчивых локаторов имеет решающее значение для успеха автоматизации тестирования веб-интерфейса.

В этой статье мы описываем совершенно новый и интеллектуальный метод, представленный в Katalon Studio для автоматического создания надежных локаторов на этапе записи теста. Этот продвинутый метод позволяет создавать новые локаторы, более удобные в сопровождении и менее уязвимые к изменениям в AUT, чем Selenium и другие инструменты автоматизации тестирования.

Случаи, когда обычные локаторы неадекватны

Давайте посмотрим на ted.com, веб-сайт, созданный с использованием фреймворка EmberJS. На снимке экрана ниже показаны карточки веб-сайта, каждая из которых содержит разные элементы (текст, изображение, ссылку и т. д.).

ОТКРОЙТЕ ДЛЯ СЕБЯ СОВЕРШЕННО НОВЫЙ ИНТЕЛЛЕКТУАЛЬНЫЙ ГЕНЕРАТОР XPATH KATALON STUDIO

Предположим, вы хотите записать простое действие по нажатию на миниатюру видео с надписью «Как ИИ может спасти человечество», например, вы получите следующие XPath, сгенерированные Selenium:

XPaths Selenium

//div[@id='react-container1′]/div/div/div/div/div/div[2]/div/div[2]/div/div/div/a/div/div[2]

//div[2]/div/div[2]/div/div/div /a/дел/дел[2]

Хотя эти XPath могут найти элемент, они слишком длинные и сложные. Но главная проблема в том, что их легко сломать, так как они работают только в том случае, если содержимое не изменено. TED — это быстрорастущий веб-сайт, на котором каждый день появляются новые материалы. Поэтому неудивительно, что первое видео сегодня может стать третьим видео завтра. Если вы посмотрите на эти XPath или только на последние 3 символа, вы заметите, что они полностью основаны на предположении, что порядок видео не изменится. Такое предположение противоречит действительности, как описано. Короче говоря, эти локаторы ненадежны, их трудно читать и поддерживать.

Возьмем другой пример, профиль Microsoft в Linkedin.

ОТКРОЙТЕ ДЛЯ СЕБЯ СОВЕРШЕННО НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Предположим, вы хотите проверить информацию профиля Microsoft и используете Selenium для записи, щелкая каждое из полей, чтобы получить XPaths, вот что вы получите:

ОТКРОЙТЕ ДЛЯ СЕБЯ НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Давайте рассмотрим приведенную выше таблицу построчно. Поле веб-сайта расположено по его идентификатору, что кажется разумным выбором. Теперь вы можете сказать, что, по крайней мере, ваш тестовый пример успешно найдет это поле. Однако позже вы обнаружите, что этого не произойдет, потому что каждый раз, когда вы посещаете эту страницу, идентификатор меняется. Другими словами, этот идентификатор является динамическим. Поэтому использование идентификатора в качестве локатора в этой ситуации не лучший выбор.

Поле штаб-квартиры расположено относительно кратким XPath. К сожалению, этот локатор идентифицирует пять веб-элементов вместо одного уникального элемента, как ожидалось. (Вы можете проверить это, открыв Chrome и нажав Ctrl + Shift + I, чтобы открыть инструмент проверки и выполнить поиск XPath в документе, как показано ниже).

ОТКРОЙТЕ ДЛЯ СЕБЯ СОВЕРШЕННО НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Результат не удивителен, поскольку веб-элементов действительно пять. с тегом <p>в разделе информации о компании. Некоторые механизмы воспроизведения автоматически выбирают первый элемент из этих пяти, а некоторые нет.

Остальные пути XPath страдают теми же проблемами, которые мы уже обсуждали на веб-сайте TED.

Соседи XPath: элемент адекватная форма XPath для описанных выше ситуаций

Если элемент не может быть последовательно расположен с использованием его прямых атрибутов, то его идентификация с использованием его более надежных соседей. Это простая, но мощная идея нового метода поиска, представленного в Katalon Studio. Этот метод визуально интуитивно понятен, поскольку он отражает то, как пользователи часто идентифицируют видимый элемент в пользовательском интерфейсе.

Сгенерированный этим методом XPath (также называемый соседним XPath) имеет следующую форму:

ОТКРОЙТЕ ДЛЯ СЕБЯ СОВЕРШЕННО НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Эта форма предполагает, что сосед целевого элемента является надежным и идентифицируется его текстом. Каждый столбец в этой форме поясняется следующим образом:

ОТКРОЙТЕ СОВЕРШЕННО НОВЫЙ KATALON STUDIO’S SMART XPATH GENERATOR

Вернемся к примеру с TED:

ОТКРОЙТЕ ДЛЯ СЕБЯ НОВЫЙ ИНТЕЛЛЕКТУАЛЬНЫЙ ГЕНЕРАТОР XPATH KATALON STUDIO

Вот несколько XPath-путей, которые принимают приведенную выше форму для идентификации миниатюры, предшествующей «Как ИИ может спасти человечество».

Соседи XPath

xpath=(.//*[normalize-space(text()) and normalize-space(.)='Как ИИ может спасти человечество'])[2]/preceding ::div[3]

xpath=(.//*[normalize-space(text()) and normalize-space(.)='Newest Talks'])[1]/следующий::div[11]

The “xpath=(.//*[normalize-space(text()) and normalize-space(.)”часть фиксирована, поэтому мы можем игнорировать ее при обслуживании. Вместо этого мы сосредоточимся на остальном, что относится к меткам, отображаемым в пользовательском интерфейсе, и поэтому оно удобочитаемо.

Первый XPath является наиболее интуитивным, поскольку он согласуется с тем, как пользователи обрабатывают и взаимодействуют с миниатюрой — меткой, представляющей миниатюру. Этот локатор прост в обслуживании, так как при изменении метки в пользовательском интерфейсе вам просто нужно обновить соответствующий текст в сценарии. Более того, общий шаблон видео часто более стабилен, чем контент (например, YouTube не меняет свои шаблоны годами). Таким образом, связь между целевым элементом и его соседним элементом в составном элементе или карточке сохраняется, несмотря на динамическое упорядочение между элементами.

Для примера профиля Microsoft:

ОТКРОЙТЕ ДЛЯ СЕБЯ СОВЕРШЕННО НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Вот соответствующие соседние XPath:

ОТКРОЙТЕ СОВЕРШЕННО НОВОЕ KATALON STUDIO’S SMART XPATH GENERATOR

Опять же, игнорируя фиксированную часть XPath выше, мы видим, что поля профиля Microsoft встроены в XPath. Во время выполнения теста, если поле отсутствует, выполнение останавливается, чтобы указать, что именно не так. Однако в Selenium отображается неправильный элемент сбоя, поскольку порядок изменяется из-за удаления элемента.

Использование генератора Smart XPath в Katalon Studio

Конечно, вам не нужно сильно беспокоиться о том, как создавать соседние XPath, как описано выше. Katalon Studio автоматически выполняет эту работу. Соседние XPath создаются во время записи. Katalon Studio пытается выбрать подходящие XPath, но вы все равно можете вручную выбрать наиболее подходящие, как показано ниже.

ОТКРОЙТЕ ДЛЯ СЕБЯ НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

С помощью настройки стратегии пользовательских локаторов вы можете выбрать стратегию по умолчанию для интеллектуального генератора XPath для всех тестовых элементов.

ОТКРОЙТЕ ДЛЯ СЕБЯ НОВЫЙ ГЕНЕРАТОР SMART XPATH KATALON STUDIO

Заключение

Мы показали несколько примеры, демонстрирующие, что XPath в Selenium хрупки и сложны в обслуживании. Распространенной причиной является то, что Selenium полагается на индекс и порядок элементов.

В этой статье описывается передовой и интеллектуальный метод Katalon Studio для автоматического создания локаторов или соседних XPath в сценариях автоматизированного тестирования. XPath более устойчивы к изменениям в AUT и удобнее в сопровождении, чем созданные Selenium. Этот расширенный метод доступен в версии 5.7 Katalon Studio. Узнайте больше о версии 5.7
TAG: qa

От QA genius

Adblock
detector