Практика автоматического тестирования проектов Windows на основе платформы распознавания изображений Airtest
Практика автоматического тестирования проектов Windows на основе платформы распознавания изображений Airtest

напиши впереди

поделился на прошлой неделе«Практика автоматического тестирования клиента ПК на основе платформы распознавания изображений Sikuli GUI»,Но сикули выглядит как стиль интерфейса прошлого века.,И функция слишком простая. И Airtest, который также основан на системе распознавания изображений.,Это несомненно намного сильнее,На этот раз представленный контент представляет собой реализацию приложения Windows на основе Airtest.,Схема содержания:

  • Введение в структуру Airtest: применимые проекты Airtest, функции Airtest, преимущества Airtest
  • Состав и принцип работы фреймворка Airtest
  • Настройка среды Airtest и простое использование IDE
  • AirtestвыполнятьWindowsприложение Автоматизированное тестированиеупражняться: Подключите приложения Windows Общие API-интерфейсы Windows Напишите тестовый код Проектирование тестовых случаев Эффект операции Посмотреть отчет об испытаниях
  • Резюме и размышления

1. Введение в среду Airtest

1. Знакомство с Airtest

Airtest — это пользовательский интерфейс, созданный NetEase на основе распознавания изображений и распознавания элементов управления Poco. тестированиеинструмент。Этот фреймворк основан на новом языке графических сценариев.Sikuli,оSikuliФреймворк можно найти в предыдущей статье, которой поделились.«Практика автоматического тестирования клиента ПК на основе платформы распознавания изображений Sikuli GUI»。иSikuliПринцип построения тот же,Пользователям не нужно писать код построчно.,Вместо этого сделайте снимок экрана,Программа, которая объединяет вырезанную графику в артефакты.,Это часть Airtest. кроме того,Airtest также может выполнять поиск по платформе на основе poco элемента управления пользовательского интерфейса.,Найдите целевой элемент управления по его имени, идентификатору и т. д.,Принцип аналогичен appium。Официальный сайт:http://airtest.netease.com/

2. Airtest применимые элементы

  • игра
  • Android
  • iOS
  • Web
  • Windows

3. Возможности тестирования

  • Кросс-платформенный
  • Простота в эксплуатации
  • Расширяемый
  • Поддержка редактора графического интерфейса

4. Преимущества Airtest

По сравнению с другими средами автоматизированного тестирования Airtest имеет следующие два преимущества:

  • Значительно сократить затраты на написание и поддержку скриптов автоматизации.
  • Устранение болевых точек тестирования игр

2. Состав и принцип работы системы Airtest

1. Состав фреймворка Airtest

  • Airtest: это пользовательский интерфейс, основанный на распознавании изображений Кросс-платформенного. Платформа обучения, подходящая для игр и приложений, поддерживаемые платформы включают Windows, Андроид и iOS;
  • Poco: Это автоматизированное устройство, основанное на распознавании элементов управления пользовательского интерфейса. Платформа обучения, в настоящее время поддерживает Unity3D/cocos2dx/родное приложение для Android/родное приложение для iOS/ Апплет WeChat также можно использовать, подключившись к poco-sdk в других движках;
  • AirtestIDE:Кросс-платформенныйизUIАвтоматизированное Редактор тестов имеет встроенные подключаемые модули для Airtest и Poco, которые позволяют быстро и легко Напишите код Airtest и Poco;
  • AirLab: платформа облачного тестирования для автоматизации реальных машин,В настоящее время он предоставляет такие услуги, как тестирование совместимости мобильных телефонов TOP100 и тестирование совместимости с реальными компьютерами за рубежом;

2. Как работает Airtest

3. Создание среды Airtest и простое использование IDE.

Официальная документация:https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/

1. Загрузите и установите

1) Установите питон

Поскольку платформа Airtest разработана на основе языка Python, необходимо настроить локальную среду, связанную с Python. Рекомендуется использовать python3.

Python Скачать адрес:https://www.python.org/downloads/

2) Загрузите клиент AirtestIDE.

AirtestIDEЗагрузка клиента:http://airtest.netease.com

Пользователи системы Windows загружают zip-пакет, соответствующий 32-битной или 64-битной версии, с официального сайта. После распаковки вы получите папку AirtestIDE. Дважды щелкните AirtestIDE/AirtestIDE.exe, чтобы запустить ее.

2. Использование Airtest IDE

1) Создать отчет

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

2) Переключение режима изображения/кода

Щелкните правой кнопкой мыши в Airtest IDE, чтобы переключиться между двумя режимами.

Эффект после переключения следующий:

4. Airtest проводит практику автоматического тестирования приложений Windows.

1. Подключите приложения Windows

Существует три способа подключения к приложениям Windows, а именно:

  • Подключиться через окно поиска: Окно устройства-Окно подключения Windows-Окно поиска, после выбора окна нажать Подключиться
  • Подключайтесь через дескриптор (поскольку дескрипторы подвержены изменению, этот метод подключения не рекомендуется): 67330 на рисунке ниже — это дескриптор Enterprise WeChat.
  • Подключиться по названию приложения, соответствующему регулярному выражению
Язык кода:javascript
копировать
if not cli_setup:
    auto_setup(__file__, logdir=True, устройства = ["Windows:///?title_re=.*Юэюн*"])

2. Общие API Windows

Официальная документация: https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.win.win.html.

Исходный код: https://airtest.readthedocs.io/zh_CN/latest/_modules/airtest/core/win/win.html.

  • подключить: подключить устройство
  • оболочка: выполнить команду cmd
  • снимок: скриншот
  • keyevent: выполнять события клавиатуры
  • текст: введите текст
  • key_press: нажать клавишу
  • key_release: отпустить клавишу
  • touch: событие щелчка мыши
  • double_click: двойной щелчок мышью
  • проведите пальцем по экрану: слайд
  • move_mouse: переместить мышь
  • mouse_down: нажать кнопку мыши (левую/правую)
  • mouse_up: отпустить кнопку мыши (левую/правую)

3. Напишите тестовый код

Давайте сначала посмотрим на макет страницы тестируемого приложения Windows:

1) Состав кода

  • Как импортировать ядро ​​API и инициализировать клиент
Язык кода:javascript
копировать
# -*- encoding=utf8 -*-
__author__ = "Administrator"
import random
from airtest.core.api import *
from airtest.cli.parser import cli_setup
  • Подключите приложения Windows
Язык кода:javascript
копировать
# Подключите приложения Windows
if not cli_setup:
    auto_setup(__file__, logdir=True, устройства = ["Windows:///?title_re=.*Юэюн*"])
  • IDE Airtest следует стилю кодирования Python, поэтому каждое тестовое действие/сценарий можно инкапсулировать в функции одну за другой. Конечно, их также можно инкапсулировать в другие файлы, а затем импортировать для справки.

2) Случай

  • Отправьте текстовое сообщение:

Этапы операции::Войдите в окно чата>Введите текстовое содержимое>отправлять

Язык кода:javascript
копировать
def send_text(time):
    setup_send_msg()  # Войдите в окно чата
    for i in range(time):
        text("Это сообщение %s, отправленное AIRTEST"%str(i))  # Введите текст текстового сообщения
        keyevent("{ENTER}")  # Нажмите клавишу Enter на клавиатуре, чтобы написать заглавную букву.
        keyevent("{ENTER}")  # Нажмите Enter в первый раз, чтобы в настоящее время метод ввода не был китайским, и нажмите Enter во второй раз для отправки.
  • Отправить скриншот

Этапы операции::Войдите в окно чата>Нажмите кнопку скриншота>Сдвиньте мышь, чтобы выдвинуть область снимка экрана.>подтверждатьотправлятьскриншот

Язык кода:javascript
копировать
def send_screenshot():
    setup_send_msg()
    touch(Template(r"tpl1656061157595.png", record_pos=(-0.028, 0.138), resolution=(959, 654)))
    sleep(1)
    swipe((300,400), (600,800), duration=0.8, steps=2)
    keyevent("{ENTER}")

4. Разработайте тестовые примеры

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

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

① Сценарий 1: Отправка различных типов сообщений.

Вызовите следующие функции соответственно:

  • Вызов функции отправки текста
  • Вызов функции отправки смайлика
  • Вызов функции отправки изображения
  • Вызов функции отправки скриншота
  • ......

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

② Сценарий 2: Постоянная отправка текстовых/графических сообщений.

Добавив цикл к вышеуказанной функции, вы можете непрерывно отправлять сообщения типа xx, однако это не столько тестовый пример, сколько имитация стабильности программы при длительной ручной работе или помощь в других специальных тестах; Сценарии, такие как:

  1. В прошлом году, когда я тестировал мобильный терминал, я смоделировал один терминал и продолжил отправлять большое количество графических сообщений.,Таким образом, была протестирована ошибка «мобильный терминал iOS отключается при получении большого количества автономных файловых сообщений в условиях слабой сети».
  2. Сегодня, когда я использовал Airtest для имитации непрерывной отправки текстовых сообщений и проверки стабильности программы, я обнаружил ошибку, заключающуюся в том, что [неправильный параметр типа передавался при отправке сообщения в одиночный чат и отправке в групповой чат, что привело к сбою сообщения и отсутствию записи об отправке сообщения]. Это было очень странно. Я отправил его вручную без каких-либо проблем. Я еще не нашел закономерности, а исследования и разработки все еще находятся в процессе позиционирования. Хотя Airtest не обнаруживал ошибок напрямую, он создавал больше возможностей для обнаружения ошибок.

5. Эффект операции

6. Просмотр отчета об испытаниях

После завершения Airtest автоматически будет создан отчет о тестировании. С помощью кнопки «Просмотреть отчет» в строке меню консоли отчет о тестировании можно автоматически открыть в браузере:

5. Резюме и размышления

  • Airtest также можно использовать в редакторе pycharm. Вам необходимо заранее вручную установить библиотеку airtest: pip install -U airtest. После установки вы можете создать новый скрипт airtest. Синтаксис тот же, что и при написании в Airtest IDE. . Кроме того, редактор pycharm также может напрямую открыть сценарий airtest;
  • Для автоматизации веб-сайтов и приложений в основном используется специальная платформа автоматизации.,нравитьсяселен, аппиум,Операции приложений Windows, которые не может реализовать этот тип среды тестирования.,Этого можно добиться с помощью Airtest.,тем самым открываясквознойАвтоматизированное тестированиепроцесс;
  • Автоматизированное будущая реализация кодирования просто Автоматизированное Обучение — это небольшое звено в процессе, но, что более важно, разработка сценария, реализация вариантов использования и способы игры. Автоматизированное. Ценность обучения;
  • Автоматизированное тестирование может не найти много ошибок, но оно создает больше возможностей для обнаружения ошибок;
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose