Автоматическая обработка — автоматизация приложений

StackOverflow https://stackoverflow.com/questions/529442

Вопрос

Я ищу информацию [я не решаюсь сделать вывод о «лучших практиках»] для автоматизации приложений.Я конкретно имею в виду замену того, что предсказуемо повторяется с помощью традиционных ручных средств (людей, манипулирующих графическим пользовательским интерфейсом), чем-то, что запланировано пользователем и выполняется «автоматически».

Мы используем AutoIT внутри компании для выполнения автоматического тестирования и рассматриваем тот же подход для обеспечения автоматической обработки наших приложений, но мы не хотим этого делать из-за возможности «случайного» взаимодействия пользователя с приложением. в параллели с выполнением плановой «автоматизации» и, следовательно, «ломкой» автоматики.

Стесняемся встраивать собственный планировщик с известными событиями и фиксированными аргументами для управления предопределенным набором действий. Какие подходы мне следует оценить/рассмотреть и какие инструменты потребуются?

Дополнительная информация:Некоторые называют эту возможность «пакетной обработкой» в контексте приложения.

Это было полезно?

Решение

В целом автоматизация пользовательских интерфейсов является опасной практикой.Это может быть полезным решением краткосрочной проблемы:В некоторых ситуациях я использую AutoHotKey для выполнения некоторых утомительных задач...но только если задача не достойна написания кода для реализации изменения (т. е. одноразовая 15-минутная задача).

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

В неудачной, но возможной ситуации, когда пользовательского интерфейса нет и вам приходится выполнять очистку/манипулирование экраном, инструмент, выполняющий автоматическое тестирование, вероятно, будет настолько хорош, насколько вы сможете получить.Это позволяет вам проверять состояние приложения (в некоторой степени) и, таким образом, может создать некоторую систему безопасности.Кроме того, я бы выделил для этой задачи рабочую станцию...с клавиатурой и мышью, запертыми от любопытных пользователей.(Для этого хорошо подойдет подключение к удаленному рабочему столу или в стиле VNC:вы можете запустить процесс и отключиться, что сделает его устойчивым к несанкционированному вмешательству.)

Однако я бы рассматривал такой подход только как крайнее отчаянное средство.Манипулирование API намного, намного, намного, намного (набрал ли я там достаточно «фаров»?) более устойчиво.

Другие советы

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

Я бы посоветовал вам избегать использования инструментов, предназначенных для тестирования, для выполнения обработки.Многие основные программные системы имеют общедоступные API, которые можно использовать для выполнения действий без прямого взаимодействия с пользователем.Это гораздо более надежный способ планирования автоматизированных процессов.Свяжитесь с поставщиком программного обеспечения, с которым вы работаете, иногда API доступны по запросу.

Годеке и Дэйв абсолютно правы в том, что API, если он доступен, является лучшим способом.Однако на практике это иногда невозможно, и вам приходится идти по пути автоматизации графического интерфейса.В дополнение к ранее упомянутым выделенным рабочим станциям для запуска автоматизации я рекомендую запрограммировать некоторые контрольные журналы, чтобы было легче отлаживать или отступать в случае возникновения проблем.Ваша система автоматизации пакетной обработки должна вести подробный журнал того, какие записи были обработаны, когда они обрабатывались и как они обрабатывались.Вам следует настроить его так, чтобы сами записи (в родном приложении) отображали, что они были обновлены/обработаны посредством автоматизации.Например, если каждая запись имеет обновляемое поле примечаний/комментариев, система автоматизации должна добавить в это поле текст типа «Обработано пользователем автоматизации, 25 февраля 2009 г., 10:05:11, поле «Учетная запись» изменено с «ABC123» на « DEF456'» Таким образом, автоматические моды будут легко видны пользователю, вручную открывающему запись в графическом интерфейсе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top