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

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

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

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

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


person SAMills    schedule 09.02.2009    source источник


Ответы (3)


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

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

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

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

person Godeke    schedule 09.02.2009

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

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

person Dave Swersky    schedule 09.02.2009

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

person Tom E    schedule 26.02.2009