Лучшие практики для общего распознавания элементов AI в тестировании автоматизации пользовательского интерфейса

искусственный интеллект

предисловие

При автоматическом тестировании пользовательского интерфейса после определения элементов соответствующее поведение пользователя может быть смоделировано более точно, а другое содержание автоматизации может быть выполнено лучше. Как правило, мобильные приложения имеют атрибуты элемента страницы, такие как идентификатор, имя класса, текст и т. д., которые могут легко найти элементы управления элементами, которыми необходимо управлять. Для относительно сложных приложений, особенно появления кроссплатформенных сред разработки мобильных приложений, таких как RN или Flutter, и небольших программ, атрибуты элементов могут быть расположены на основе протокола chrome devtool, а также существуют методы сопоставления сходства изображений.

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

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

01 Перед вызовом

Вызов 1:Недостаточная способность идентифицировать элементы системы автоматизации

Например, многие приложения в настоящее время не имеют платформы автоматизации, которая может идентифицировать элементы на стороне ПК, поэтому они не могут выполнять автоматическое тестирование пользовательского интерфейса.python-uiautomator2Зависит от среды разработки и именования элементов для идентификации, даСтраница РН, H5, апплет и другие элементы идентификациислужба поддержкиТоже не здорово.

Вызов 2:Совместимость с несколькими моделями и несколькими разрешениями

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

Задача 3:Элементы с несколькими стилями, полупрозрачные элементы, элементы без атрибутов

Как и во многих приложениях, теперь есть темы скинов, соответствующие ЗНАЧКИ, используемые для разных цветов фона скинов, также различаются.При отсутствии разумного именования элементов управления трудно исключить влияние цвета фона на результат сопоставления изображений, если используется только метод сопоставления изображений.

Сравнение приложений под разными скинами на разных устройствах

кожа кожа
Элементы показывают:меньше Элементы показывают:больше
Середина элемента показывает:светло-серый Середина элемента показывает:чернить
Края элемента показывают:светло-серый Края элемента показывают:чернить
Множественный интервал табуляции внизу:Шире Множественный интервал табуляции внизу:уже

02 Исследование технологий

Первоначальный план:

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

(1. Хэш изображения 2. Сопоставление шаблона 3. Обнаружение функции SIFT)

Это в основном удовлетворяет поиск изображений одного устройства и одного цвета фона.

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

Техническая задача:

После исследования было обнаружено, что ИИ может выполнять распознавание объектов,теперь, когдаобученныйAIЕсли модель может идентифицировать людей, объекты, тела и т. д., может ли она идентифицироватьAPP UI контролируетА как насчет элементов и изображений?

Прежде всего, нам нужно выбрать подходящую модель, существует много видов сетевых моделей для обнаружения.

Решение проблемы сложного обнаружения крупных целей - SSD. SSD использует многоуровневые карты объектов для обнаружения, но использует только верхние слои для обнаружения без нижнего слоя и не используется для обнаружения объектов SSD работает быстро, но по сравнению с другими объектами производительность мелких объектов низкая.

Решение проблемы сложного обнаружения малоразмерных целей - FPN. Пирамида признаков интегрирована в FPN, и высококачественная пирамида признаков создается снизу вверх для повышения точности обнаружения целей, особенно при обнаружении небольших объектов. FPN может лучше обнаруживать мелкие объекты, недостатком является то, что затраты времени слишком высоки.

Используемая сетевая модель — YOLOv3

YOLOv3 поглощает сильные стороны SSD и добавляет многомасштабное прогнозирование, подобное FPN, которое может обнаруживать и идентифицировать большие цели и маленькие цели, а скорость обнаружения также очень высока; недостатком является то, что положение цели смещено, что не очень полезно для обнаружения перекрывающихся плотных целей.хорошо.

На следующем рисунке показаны данные YOLOv3 (из сети)

Эффект обнаружения цели Сравнение данных с другими моделями

YOLOv3 удовлетворяет нашу потребность в обнаружении как больших, так и малых целей, и в то же время быстро, нам нужно оптимизировать недостатки.

03 Реализация

Автоматический сбор и обработка материалов

Обучение ИИ требует много материалов, как быстро собрать много материалов, с трех направлений.

  1. Добавьте автоматические снимки экрана в сценарии регрессионного тестирования, которые автоматически собираются и загружаются при выполнении вариантов использования автоматической регрессии;

  2. При проверке стабильности новой версии APP автоматически собираются и загружаются скриншоты изменений экрана;

  3. Пройти тест ИИ на средней стадииобеспечить входРазрешить пользователям загружать и собирать самостоятельно;

Чтобы повысить скорость вспоминания обучения, мы единообразно дедуплицируем изображения с помощью MD5, корректируем изображения до размера, необходимого для обучения, и, наконец, единообразно сохраняем материалы на сервере библиотеки материалов.

После сбора материалов мы приступили к этапу обучения.

Блок-схема учебного пакета:

Недостатком плохой способности распознавания YOLOv3 является то, что элементы в нашем приложении не будут отображаться плотно, когда элементы перекрываются, это ошибка пользовательского интерфейса.

Устранение недостатков идентификации смещений:

Распознавание элементов, извлечение изображений

Анализ изображений для определения границ

удалить края

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

Ситуация посадки интерфейса прогнозирования элементов 1

Приземлился в записи и воспроизведении теста автоматизации пользовательского интерфейса

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

Как видно из приведенного выше рисунка, мы поместим распознаваемый ИИ экран устройства элемента, и в то же время с правой стороны будет отображаться СПИСОК, и элементом можно будет управлять.Во время работы будет выполняться скрипт генерируется автоматически, и скрипт будет отправлен в библиотеку py.Если да, то библиотека операций щелчка py будет работать с координатами центральной точки элемента.

# 录制脚本生成的代码示例

# 判断搜索元素是否存在

if iqy.AI(btn=”btnsearch”).exists():

 # 搜索元素存在则点击

iqy.AI(btn=”btnsearch”).click()

# 也可以写成

iqy.AI(btn=”btnsearch”).click_exists()

# 进阶用法

els=iqy.AI(btn=”btnsearch”)

#获取相关属性

data=els[0]

print(data["ratio"],"AI 预测匹配度")

print(data["w"],"矩形 width")

print(data["h"],"矩形 height")

print(data["x"],"矩形左上 x 坐标")

print(data["x0"],"矩形左上 x 坐标")

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

Используйте iqy.AI(btn="close").click_exists() для точной обработки различных рекламных всплывающих окон в приложении. Исправлена ​​ошибка, из-за которой выполнение дела не удавалось из-за того, что действие не могло быть закрыто.

Когда проигрыватель воспроизводит программу, экран постоянно меняется, а также часто используются кнопки воспроизведения и паузы в проигрывателе.

Его трудно идентифицировать с помощью традиционных средств, и становится легко использовать ИИ.

iqy.AI(btn="play")

iqy.AI(btn="pause")

На данный момент мы обучили более 200 элементов (60+ на мобильных устройствах и 140+ на ПК). Уровень отзыва распознавания, например, кнопки закрытия, составляет 94%, других кнопок 80%+.

Реальные преимущества: Он получил широкое распространение при записи и воспроизведении, а показатель стабильности ежедневного автоматического запуска CASE-задач увеличился на 15% при использовании ИИ и его неиспользовании.

Ситуация посадки интерфейса прогнозирования элементов 2

Не используется на странице свойств (сторона Android, сторона IOS, сторона ПК).

Мы используем прогнозирование элементов + алгоритм изображения + распознавание текста для разработки функции разделения структуры страницы.

Тест стабильности приземлившегося приложения, тест стабильности на стороне ПК.

Функция разделения страниц представляет собой эффективное решение для автоматизации страниц (мини-программы, RN, H5) без контроля атрибутов.

Конкретная реализация выглядит следующим образом:

Оригинальная обработка изображения

Элемент, изображение, распознавание текста

агрегация элементов

Фактические преимущества: Android APP использует алгоритм с улучшенным ИИ для увеличения охвата активности на 60% и общего количества ошибок на 30% по сравнению с предыдущим использованием.

04 Расширение возможностей искусственного интеллекта за пределы

Стыковка с другими компаниями для создания и развертывания интегрированной тестовой платформы ИИ

Платформа тестирования ИИ дает пользователям возможность управлять полной ссылкой от независимой загрузки материалов, маркировки материалов, маркировки и просмотра до обучения и вывода моделей.

Вызывающему объекту службы прогнозирования ИИ нужно только отправить изображение или URL-адрес изображения, и служба прогнозирования вызовет интерфейс API для вывода соответствующей классификации элемента управления, координат и других результатов прогнозирования.

После того, как пользователь отправит изображение, центр тестирования ИИ выведет результат предсказания на экран, а также даст пример метода написания библиотеки Py и пример API запроса python.

Стыковка с мобильной облачной платформой тестирования

На платформе облачного тестирования пользователи могут напрямую вызывать интерфейс прогнозирования ИИ одним щелчком мыши.

Трудности, возникающие при развертывании тестов ИИ на промежуточном этапе

  1. Цена процессора и графического процессора одинаковой производительности также может быть близка к десятикратной;

  2. Разница в скорости между CPU и GPU при одинаковой цене может быть более чем в десять раз.

Поэтому интерфейс прогнозирования нашей тестовой платформы ИИ использует среду графического процессора.

Наиболее часто используемыми брендами графических процессоров являются Intel и NVIDIA, и мы столкнулись с серьезной проблемой при прогнозировании развертывания интерфейса. Мы обучили модель на графическом процессоре Inter, и после развертывания выяснилось, что графический процессор не использовался для вычислений. Из-за этого запрос занимает 5-10 секунд, а такое долгое время запроса плохо для пользователя.

Разница между временем вычислений на GPU и CPU составляет десятки раз. Обычно прогнозы графического процессора составляют сотни миллисекунд. После расследования выяснилось, что причина в типе модели.Разные типы моделей предъявляют разные требования к среде графического процессора.Модель YOLOv3, обученная на графическом процессоре Inter, не может использоваться в графической среде NVIDIA.И наконец, модель преобразования используется для решения отнимающая много времени среда предсказания графического процессора.слишком длинный вопрос.

Решение. Преобразуйте модель весов YOLOv3 в модель Keras.

05 Последующее планирование

Автоматическое тестирование с поддержкой ИИ, мы сделали первый шаг. По сравнению с исходной схемой сравнения изображений мы достигли определенных результатов в распознавании элементов. Реализация также была хорошо принята пользователями, что принесло больше преимуществ пользователям более качественных услуг. также сталкиваются с более серьезными проблемами.

  1. Необходимо увеличить количество элементов управления, которые тесно интегрированы с фоном в сложных изображениях, и необходимо поддерживать больше распознавания элементов значков.

  2. Возможности разборки сложных страниц ограничены, и необходимо добавить поддержку небольших плавающих значков и сложенных изображений.

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

4. Идентификация Баннера, меню, вкладок, ввода.

  1. Обучение основано на материалах, а разнообразие и количество материалов напрямую влияют на скорость припоминания.Исходные материалы изображений поступают из автоматизированных задач, а рост новых и разнообразных изображений, создаваемых автоматизацией, ограничен. Последующие исследования будут обрабатывать изображения на основе исходных изображений для создания различных учебных материалов.

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