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

Короткий ответ: остановитесь, когда следующее действие больше не оправдано.
Условие остановки автоматизации Android - это правило, которое предотвращает продолжение рабочего процесса, когда текущий экран, результат или время больше не поддерживают следующее действие. Это может закончить бег, вернуть контролируемый результат, собрать доказательства или отправить дело человеку. Главное не останавливаться на каждом сюрпризе. Суть в том, чтобы избежать превращения неопределенности в еще один кран.
Надежные рабочие процессы отвечают на четыре вопроса перед каждым важным действием: в каком состоянии должен быть телефон? Какое наблюдение доказывает это состояние? Сколько попыток восстановления приемлемо? Какие доказательства должны быть сохранены, если государство никогда не появится? Android UI Automator включает в себя условное ожидание и проверку стабильности, а WorkManager отменяет документы и прекращает работу. Общий урок дизайна прост: ожидание, повторная попытка и остановка требуют четких ограничений.
- Продолжать только тогда, когда ожидаемое состояние определено положительно.
- Повторяйте только тогда, когда сбой является временным, и повторный запуск имеет четкий предел.
- Остановите или запросите просмотр, когда экран неизвестен, действие чувствительно или условие не работает.
Продолжать, ждать, повторять, останавливать или пересматривать?
| Решение | Используйте, когда | Требуемый лимит | Доказательства для сохранения |
|---|---|---|---|
| Продолжать | Текущее состояние и следующие действия ожидаются. | Пересмотренный переход | Наблюдаемое состояние и состояние |
| Подожди. | Приложение все еще загружается или осваивается | Тайм-аут или названное готовое состояние | Время и последний экран |
| повторять | Временное условие может быть решено без изменения бизнес-смысла. | Максимальные попытки плюс интервал | Подсчет и результат каждого наблюдения |
| Стоп! | Государство неизвестно, недействительно, небезопасно или вне утвержденного пути. | Немедленное прекращение | Stop Reason, скриншот, структурированный результат |
| Человеческий обзор | Рабочий процесс не может решить безопасно или следующее действие имеет материальные последствия. | Четкий срок передачи и владелец | Полный пакет доказательств и предлагаемый следующий шаг |
Эти варианты не являются взаимозаменяемыми. Ожидание дает тому же государству время для урегулирования. Повторение повторяет ограниченное наблюдение или действие восстановления. Ветвь выбирает между известными результатами. Остановка завершает рассмотренный путь. Человеческое обозрение уместно, когда автоматизации не хватает доказательств для безопасного выбора.
Шаг 1: Назовите государства перед выбором действий
К концу этого шага у каждого важного экрана есть имя и небольшой набор наблюдаемых фактов. Начните с узкого рабочего процесса, такого как открытие сборки тестов, навигация по странице настроек, изменение одной нечувствительной опции и подтверждение нового состояния. Не начинайте с длинной последовательности координат.
- Напишите начальное состояние, ожидаемое следующее состояние и приемлемые альтернативные состояния.
- Для каждого состояния выберите самый узкий полезный сигнал: свойство пользовательского интерфейса, видимый текст, известное изображение, обнаруженный объект или сфокусированный скриншот.
- Отметьте любой экран, который никогда не должен получать автоматические действия, такие как неожиданный аккаунт, разрешение, покупка, удаление или экран производственных данных.
Проверка проста: другой рецензент должен иметь возможность взглянуть на определение состояния и объяснить, почему допускается следующее действие. TheРуководство по распознаванию изображенийПочему найти визуальную цель недостаточно Рабочий процесс по-прежнему нуждается в предварительном условии перед краном и после него.
Шаг 2: выберите одно наблюдение, которое доказывает каждое состояние
К концу этого этапа каждое государство имеет первичное наблюдение и резервный источник доказательств. Используйте структуру пользовательского интерфейса для семантических фактов, таких как ярлык, выбранное состояние, включенный контроль или количество элементов. Используйте OCR, когда имеет значение видимый текст, но дерево пользовательского интерфейса не раскрывает его надежно. Используйте шаблон, соответствующий известной визуальной цели и объекту для проверенного класса, положение или размер которого варьируется.
Избегайте укладки нескольких слабых сигналов и вызова комбинации. Широкий скриншот, непроверенный шаблон и частичный результат OCR автоматически не принимают надежного решения. Вместо этого определите одно несущее наблюдение и запишите другие сигналы в качестве подтверждающих доказательств. TheAndroid визуальное тестирование сравнениеобъясняет, где состояние пользовательского интерфейса, OCR, скриншоты, шаблоны и обнаружение каждый подходит.
Проверка означает тестирование как положительных, так и отрицательных образцов. Состояние должно пройти на предполагаемом экране и выйти из строя на визуально похожем, но неправильном экране. Если он не может различить эти состояния, сузьте область, измените сигнал или остановите рабочий процесс перед действием.
Шаг 3: настройте бюджет на каждое ожидание и повторную попытку
К концу этого этапа ни один цикл не может работать вечно. Каждое ожидание требует либо тайм-аута, либо названного готового условия. Каждая повторная попытка требует максимального количества попыток, разумного интервала и причины, по которой повторная попытка может быть успешной, не ухудшая ситуацию.
| Модель провала | Почему может помочь другая попытка | Безопасная граница | Остановить причину |
|---|---|---|---|
| Экран все еще загружается | Государство может быть готово | Дождитесь стабильного или тайм-аута | Готовое состояние не достигнуто |
| Элемент временно отсутствует | Контент может появиться после короткой задержки | Повторите наблюдение за фиксированным числом попыток. | Ожидаемый элемент так и не появился |
| Tap не производит переходов | Ввод может быть пропущен один раз | Один просмотренный повтор после проверки экрана | Пост-условие все еще отсутствует |
| Неизвестный диалог или аккаунт | Еще одна попытка не уменьшает неопределенность | Без повторения | Неожиданное государство требует пересмотра |
| Действие может удалять, покупать, отправлять или публиковать | Слепое повторение может дублировать последствия | Автоматическая повторная проверка не проводится, если не доказана идемпотенция | Результаты чувствительных действий неопределенны |
Вопросы сообщества об автоматизации Android часто описывают циклы, которые ждут вечно, или задачи, которые кажутся застрявшими. Правило максимальной попытки полезно, но счет должен следовать за операцией. Проверка только для чтения может выдержать больше попыток, чем изменение состояния. Правильное число — это наименьший пересмотренный бюджет, который покрывает нормальную задержку.
Шаг 4: проверьте состояние, прежде чем объявить об успехе
К концу этого шага доставленный кран больше не рассматривается как завершенная задача. После каждого действия, изменяющего состояние, ждите, пока интерфейс осядет, и наблюдайте ожидаемый результат. Если последующее состояние отсутствует, рабочий процесс не должен молча продолжать в следующем действии.
- Запишите государство, которое санкционировало действие.
- Выполняйте единое утвержденное действие.
- Дождитесь названного состояния или ограниченного тайм-аута.
- Путь к следующему состоянию и неспособность захватить доказательства, пересмотреть восстановление или остановить.
Это защищает от наложений, задержки навигации, пропущенного ввода, устаревших координат и похожих экранов. Он также дает лучший отчет о сбоях: рецензент видит, что ожидалось, какие действия произошли, и какое следующее состояние не появилось.
Шаг 5: Сохранить достаточно доказательств для принятия решения
К концу этого шага каждая остановка производит компактный пакет доказательств вместо расплывчатой неудачной этикетки. Захват доказательств перед восстановлением меняет экран. Храните только то, что необходимо для диагностики, и обрабатывайте скриншоты или журналы в соответствии с политикой данных для тестируемого приложения.
- Рабочий процесс и название шага, сборка приложений, устройство, версия Android, локализация и ориентация.
- Ожидаемое состояние, наблюдаемое состояние, результат состояния, попытка подсчета и прошедшее время.
- Фокусированный скриншот или урожай, плюс текст OCR, счет матча, свойства пользовательского интерфейса или результат обнаружения, когда это уместно.
- Последнее успешное состояние, попытка действий, упущенное условие и явная причина остановки.
- Предлагаемый выбор рецензента: повторить после известного исправления, обновить принятое состояние или исследовать продукт.
Полезная передача позволяет кому-то принять следующее решение, не воспроизводя сначала весь пробег. TheАвтоматизация Android QA руководство по тестированию дымаПриведем более широкий пример сохранения узких и воспроизводимых проверок реальных устройств.
КакLaiCai FlowБезопасные границы
LaiCai FlowФункция автоматизации внутриLaiCai Screen MirroringПоток может наблюдать структуру пользовательского интерфейса или визуальное состояние, ветвь между известными результатами, визуально ждать, повторять ограниченное количество раз, вызывать поток ребенка до успеха или предела и заканчиваться явным возвращением или прекращением поведения. Эти строительные блоки делают решение о безопасности видимым для рецензента.
В типичном шаблоне UI, OCR, шаблон или узел обнаружения наблюдает за телефоном один раз. Ветвь направляет известный успех или неудачу. Ожидание представляет собой реальную задержку в бизнесе. Ограниченная петля обрабатывает временное условие. Неудачное наблюдение без ребра восстановления может закончить текущий поток вместо того, чтобы питать одно и то же действие навсегда.
LaiCai Flow InsideМожно запустить совместимый профиль черезLaiCai Android AgentПо телефону после установки. Совместимость по-прежнему зависит от каждого узла, актива, модели и сетевой зависимости, используемой этим профилем. Работа на устройстве не устраняет необходимость в ограничениях, доказательствах или обзоре.
Контрольный список практических обзоров перед развертыванием
- Каждое действие имеет предварительное условие и проверяемое условие.
- Каждое ожидание имеет тайм-аут или готовое состояние, и каждая повторная попытка имеет максимальное количество попыток.
- Неизвестные государства останавливаются или идут по пересмотренному пути восстановления.
- Чувствительные действия никогда не повторяются вслепую, когда их результат неясен.
- Доказательства неисправности фиксируются до того, как экран снова изменится.
- Положительные, отрицательные, медленные, прерванные и неожиданные случаи были протестированы на авторизованных устройствах.
Если одно из этих утверждений является ложным, рабочий процесс не готов к работе без присмотра. Он может быть полезен в контролируемом режиме.Автоматизация Androidгде человек может наблюдать за устройством, уточнять условия состояния и просматривать доказательства отказа.
Автоматизация Android остановит состояние FAQ
Является ли фиксированная задержка условием остановки?
Нет. Фиксированная задержка только приостанавливает рабочий процесс. Это не доказывает, что приложение достигло ожидаемого состояния. Совместите любую задержку с государственным наблюдением и тайм-аутом.
Должна ли каждая неудача остановить весь рабочий процесс?
Нет. Известный временный сбой может следовать пересмотренному и ограниченному пути восстановления. Неизвестное состояние, отсутствующее состояние или неопределенное деликатное действие обычно должны прекратиться или потребовать пересмотра.
Сколько повторов безопасно?
Универсального числа не существует. Используйте наименьший предел, который охватывает измеренную нормальную задержку, и уменьшите предел для действий, которые изменяют состояние. Если повторение действия может дублировать следствие, проверьте идемпотенцию или не повторяйте ее автоматически.
Устраняет ли ИИ необходимость в правилах остановки?
Нет. ИИ может помочь интерпретировать экран или предложить рабочий процесс, но для его выполнения по-прежнему требуются явно разрешенные состояния, бюджеты, пост-условия и границы обзора. Неопределенность является причиной для сбора доказательств, а не разрешения на продолжение.
Сделайте неопределенность видимой вместо того, чтобы автоматизировать ее.
Надежный рабочий процесс Android не самый длинный. Именно он может объяснить, почему каждое действие было разрешено, какой результат оно ожидало, и почему оно прекратилось, когда доказательства изменились.
Назовите состояния, выберите одно несущее наблюдение, свяжите каждое ожидание и повторите, проверьте каждое последующее состояние и сохраните полезную передачу. Этот дизайн превращает условия остановки из защитного кода в операционную политику рабочего процесса.