Pregunta

Estoy buscando información [No me atrevo a inferir "Buenas Prácticas"] para la automatización de aplicaciones. Me refiero específicamente a la sustitución de lo que es previsible repetible a través de medios manuales tradicionales [seres humanos que manipulan la GUI] con algo que está programado por el usuario y realiza "automáticamente".

Utilizamos AutoIT internamente para realizar pruebas automáticas y hemos considerado el mismo enfoque para proporcionar procesamiento desatendida de nuestras aplicaciones, pero somos reacios debido a la posibilidad de que el usuario "accidentalmente" interactuar con la aplicación en paralelo con la ejecución de un "automatización" programada y por lo tanto "romper" la automatización.

tímida de la construcción en nuestro propio programador con eventos conocidos y argumentos fijos para controlar un conjunto predefinido de acciones, lo que se aproxima debería evaluar / examinar y qué herramientas se requeriría?

Información adicional: Algunos se refieren a esta capacidad como "procesamiento por lotes" dentro del contexto de aplicación.

¿Fue útil?

Solución

En general es una práctica peligrosa para automatizar las interfaces de usuario. Puede ser un truco útil para un problema a corto plazo: Me encuentro con AutoHotKey para ejecutar algunas tareas tediosas en algunas situaciones ... pero sólo si la tarea no es digno de escribir código para implementar el cambio (es decir, una sola vez, 15 minutos de tareas).

De lo contrario, es probable que sufren de carreras inconsistentes debido a la respuesta de lag algunas pantallas, interfaces de usuario inconsistentes, etc. La mayoría de las aplicaciones tienen una API disponible, y no usarlo va a ser mucho más dolorosa que la adquisición y el uso que en el 99 % de los casos.

En la situación lamentable, pero es posible que no existe una interfaz de usuario y se le reduce a captura de imágenes / manipulación, una herramienta que realiza pruebas automatizado es probablemente tan bueno como se puede obtener. Se le permite a verificar el estado de la aplicación (hasta cierto punto) y por lo tanto puede construir algunas redes de seguridad. Además, me gustaría dedicar una estación de trabajo para esta tarea ... con el teclado y el ratón bloqueado lejos de usuarios curiosos. (Un escritorio remoto o una conexión VNC estilo funciona bien para esto:. Se puede poner en marcha el proceso de desconexión y, lo que es resistente a la manipulación)

Sin embargo, consideraría que el enfoque sólo como un último recurso desesperado. La manipulación de una API es mucho, mucho, mucho, mucho (he llegado suficientes "Fars" ahí?) Más sostenible.

Otros consejos

Si he entendido bien, que quiere hacer automatizado procesamiento utilizando alguna herramienta que ejecutará una lista predefinida de acciones en un sistema de software determinado. Esto es diferente de automatizado prueba .

Le insto a evitar el uso de herramientas destinadas al laboratorio para realizar el procesamiento. Muchos de los principales sistemas de software tienen API públicas que puede utilizar para realizar acciones sin la intervención directa del usuario. Esta es una manera mucho más robusto y fiable para programar procesos automatizados. En contacto con el proveedor del software que está trabajando, a veces las APIs están disponibles bajo petición.

Godeke y Dave son absolutamente correcto que, si está disponible, la API es la mejor ruta. Sin embargo, en la práctica a veces esto no es posible, y tienes que ir a la ruta de automatización de interfaz gráfica de usuario. Además de la estación de trabajo dedicada anteriormente mencionado (s) para ejecutar la automatización, recomiendo la codificación en algunas pistas de auditoría, de modo que es fácil de depurar o dar marcha atrás si surgen problemas. Su automatización de procesamiento por lotes debe mantener un registro detallado de lo que se procesan los registros, cuando se procesaron y cómo fueron procesados. Usted debe configurarlo de manera que los registros propios (en la aplicación nativa) reflejarán que se actualiza / procesada a través de la automatización. Por ejemplo, si cada registro tiene un campo de notas / comentarios actualizable, la automatización debe añadir texto a este campo como "Procesado por el usuario automatización, 2009-02-25 10:05:11 AM, campo Cuenta cambió de 'ABC123' a" DEF456' " de esa manera, las modificaciones automatizadas será fácilmente evidente para un usuario tirando manualmente el registro en la interfaz gráfica de usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top