Creación de robots (RPA) con herramientas de AutoTest

Autores: Lebedev A., Nazarova E. La

necesidad de usar la robótica surge por varias razones: la necesidad de nuevas aplicaciones para intercambiar datos con aplicaciones que no tienen una API, la rápida integración de aplicaciones heterogéneas, la automatización de procesos rutinarios con un mínimo de costos, etc.

Tradicionalmente, los robots o RPA (automatización de procesos robóticos) se construyen sobre la base de marcos prefabricados. Aquí, los líderes son, en nuestra opinión, productos de UiPath, Automation Anywhere, Blue Prism, NICE. Estas son plataformas comprobadas que le permiten tomar decisiones de calidad. Sin embargo, no es barato. Debe pagar las licencias en la cantidad de trabajos futuros, pagar la personalización para su tarea específica y la puesta en servicio. En algunos casos, puede obtener más barato. Nos las arreglamos y estamos listos para compartir experiencias.

Hace algún tiempo, en uno de los bancos, comenzó la transformación ágil. Nuevos enfoques para desarrollar aplicaciones para las necesidades del banco. Para mostrar a otros el camino, formaron equipos piloto para desarrollar nuevos productos.

El banco tiene sistemas clave tradicionales para llevar a cabo actividades contables y operativas. El trabajo con los productos de los nuevos equipos se implementó en forma de microservicios, que deberían intercambiar datos con sistemas clave. Y el desarrollo en equipos comenzó bastante rápido. Pero el problema es que los enfoques tradicionales de la política de liberación de los sistemas clave no se ajustaban a este ritmo. Y la API para los nuevos microservicios estaba en el plan para el futuro.

Resulta que, como el de Pechkin, "te traje un paquete, pero no te lo daré". En estas condiciones, los representantes de los equipos piloto se dirigieron a nuestro equipo de pruebas automáticas con la idea de usar pruebas automáticas de UI de procesos similares para crear robots.

Naturalmente, primero discutimos los riesgos. El hecho de que, al usar herramientas de autotest, es que la confiabilidad de las soluciones de software para los requisitos de prueba es menor que para las aplicaciones de sistemas de pago, se anunció de inmediato. Pero impulsados ​​por la ola ágil, los equipos tomaron riesgos.

El kit de herramientas se usó de manera tradicional y gratuita: Java para el desarrollo, ensamblaje a través de Maven. Para trabajar con el navegador, se utilizó Selenium (la aplicación donde se requería ingresar datos tiene una interfaz web).

Las principales características distintivas del robot en comparación con la prueba automática de la interfaz de usuario del mismo proceso es la necesidad de manejar correctamente las situaciones de error y las excepciones, la integración como un subsistema a través del intercambio de archivos.

Para que el robot funcione, se asignó un servidor virtual, una cuenta de dominio técnico y se creó un usuario separado en el sistema donde se ingresaron los datos. Con autoridad, como un empleado vivo que realiza acciones similares.

Se instaló un agente Jenkins en este servidor, que le permite ejecutar el robot. El informe sobre el trabajo del robot se formó en forma de un registro de ejecución y en forma de un Informe Allure. Ambos están disponibles en Jenkins y no requieren un permiso especial para acceder a los recursos de la red.

El trabajo del robot se estructuró de la siguiente manera: un archivo con datos para ingresar al sistema se coloca en la carpeta de entrada en un recurso de red y el robot se inicia a través de Jenkins; compara los registros del archivo de entrada por el campo clave con el archivo de servicio, donde se almacenan todos los registros ya procesados, y selecciona solo aquellos que aún no se han procesado. A continuación, la matriz de registros se procesa en un bucle. Además, en cada paso de procesamiento de cada registro, se procesan excepciones y errores (intente ... capturar) y las "caídas" del proceso se anotan en el archivo resultante. Al mismo tiempo, el procesamiento de la matriz de entrada no se detiene, simplemente pasamos al siguiente registro. Como resultado, cuando se completa el procesamiento de toda la matriz, se elimina el archivo de entrada, en la salida hay todos los registros procesados ​​con el resultado y el tiempo de ejecución. Allure Report se muestra como información sobre el procesamiento de cada registro,y una lista general con los resultados de procesamiento de cada registro. Esto facilita la evaluación del resultado y la localización de problemas, si los hay.

imagen

Además, en el proceso de uso del robot, resultó que el flujo de aplicaciones en los días pico es bastante grande y para cumplir con el tiempo de procesamiento aceptable, se requiere un mayor número de usuarios concurrentes.

El sistema ha creado varios usuarios más. La ejecución paralela se implementó utilizando subprocesos (subproceso). El conjunto completo de registros de entrada se distribuye equitativamente entre las secuencias, en cada uno de los cuales el procesamiento se realiza bajo su propio usuario. Los resultados se escriben en un archivo y el informe también es único. Es cómodo. Al mismo tiempo, se lanzó un solo servidor Selenium, que puede hacer frente al lanzamiento paralelo de varios navegadores (según el número de usuarios que trabajan). Trabajamos con el navegador Chrome, respectivamente, se utilizó chromedriver.

Esto es sorprendente, pero durante los nueve meses de operación, los problemas solo se debieron a datos de entrada incorrectos. Los problemas técnicos surgieron solo en la etapa de puesta en servicio y se asociaron con la coordinación de codificaciones en el registro y la expansión de la memoria utilizada al iniciar Selenium Server (instalado 1G).

Después de un tiempo, para el mismo equipo Agile, se desarrolló otro robot. Su característica es que no se inicia bajo demanda, sino que funciona continuamente escaneando la carpeta de entrada. Cuando aparece un archivo entrante, lo lleva al procesamiento. En consecuencia, el agente Jenkins no se utiliza. Si el proceso es exitoso, el archivo de entrada se mueve a la carpeta con los archivos procesados ​​con éxito, de lo contrario, a la carpeta con los archivos erróneos. A diferencia del robot anterior, Allure Report está ausente, pero los registros de ejecución se escriben en un archivo separado para su análisis en caso de cualquier problema. Y una característica más: el navegador se cierra por la fuerza al final del procesamiento y se inicia cuando el usuario necesita iniciar sesión.

Por lo tanto, en algunos casos, al crear un RPA, puede sobrevivir de una manera notablemente más barata utilizando las herramientas de autotensión.

All Articles