RPA Testes de velocidade de robô de software

1. Introdução


Alguns dias atrás, em um evento interno, meus colegas e eu discutimos o tópico de robotização de processos em projetos para implementar um EDMS. As notícias e análises de fornecedores da RPA dizem que podemos substituir o conector da API por um robô de software. Ou seja, use um RPA para transferir grandes quantidades de dados.

Os céticos acreditam que o RPA é uma "muleta". E se a situação exigir uma interação completa dos aplicativos, o RPA não funcionará e você ainda precisará de um conector de API.
Nossos vendedores e especialistas da implementação cumprem a tarefa de migração de dados em cada projeto.

Uma característica da migração é um grande volume e um período muito curto. A empresa está pronta para alocar isso por apenas 2-3 dias. Os especialistas em implementação se preparam com muito cuidado, literalmente planejam seu trabalho em minutos. Os desenvolvedores preparam utilitários.

Uma questão lógica foi levantada: em que momento o robô poderá arrastar pelo menos vários milhares de registros de um banco de dados para outro?

Em um artigo anterior ( link ), analisamos os RPAs do Automation Anywhere. Desta vez, testaremos o robô de outro estúdio conhecido - o UiPath RPA. Testaremos a velocidade do trabalho: transfira 64 mil registros de um banco de dados para outro.

Para comparação, faremos isso de várias maneiras:
  • conector API de baixo nível no YP;
  • robô através da API incorporada;
  • um robô através de um arquivo intermediário do Excel no cartão de forma da base final;
  • um robô do formulário do cartão de origem até o cartão do formulário base final;
  • mãos de cartão para cartão.


O resultado pode ser útil para “pensar” para desenvolvedores, administradores e todos que procuram uma maneira de estabelecer interação entre softwares diferentes, evitando uma programação profunda.

Além disso, descrevemos alguns dos recursos do UiPath RPA que conhecemos em nosso mini-estudo.

Neste artigo, reduziremos a economia - esse tópico merece uma consideração separada e detalhada. Apenas indicaremos circunstâncias específicas para cada cenário.

Portanto, a tarefa: transferir a lista de contatos do banco de dados de origem para o banco de dados de destino.
O número de registros - 64.000 unidades. Cada entrada contém Nome, Sobrenome, Email, Organização.
Os bancos de dados de origem e destino são bancos de dados simples do MS Access, com uma tabela para armazenar contatos e um formulário para exibir um contato individual.

Uma breve descrição de cada cenário


Conector da API


Espera-se que o desenvolvedor possua competências de API para ambos os sistemas e tenha acesso ao banco de dados. Em nosso exemplo, escreveremos um conector na linguagem VBA interna do MS Access.
Os nomes dos campos na fonte e no receptor podem não coincidir - no código nós mesmos configuramos quais dados o conector extrai da fonte e onde ele os grava no receptor.
O programa transferiu toda a quantidade de dados em 26 segundos.

Robô API


Espera-se que o robô consiga configurar o administrador do sistema atual. Para fazer isso, você precisa fazer um curso de treinamento em desenvolvimento de RPA, o treinamento é gratuito para muitos fornecedores.
Não é necessário conhecimento aprofundado do DAO. Para trabalhar com bancos de dados no nível "baixo", o RPA possui um conjunto de comandos especiais - atividades de banco de dados. As configurações de conexão necessárias são definidas pelo UiPath usando o próprio assistente. Pegamos a linha da consulta SQL diretamente do designer de consulta do Access.

O ponto principal é que os títulos de campo devem coincidir nos bancos de dados inicial e final. Nesse caso, a ordem dos campos na solicitação não é importante.
O robô arrastou o volume inteiro em 1 minuto e 52 segundos. Embora seja mais longo que o conector da API, o pedido ainda é proporcional.

Robô através do Excel


Temos que, na maioria dos DBMSs, você pode exportar dados para algum formato intermediário - xls, xlsx, xml, html, csv. O robô UiPath pode trabalhar diretamente com esses arquivos por meio das atividades internas.

Espera-se que o desenvolvedor do RPA esteja familiarizado com a interface do programa de origem para carregar dados em um arquivo intermediário. Você também precisa conhecer a GUI do programa receptor de dados. Ou seja, um administrador treinado irá lidar com a tarefa.

Exportamos a lista de todos os contatos para um arquivo do Excel. No Excel, os dados podem ser lidos da seguinte maneira:
  • inteiramente em uma variável do tipo DataTable (mas você precisa levar em consideração a quantidade de RAM e conhecer a estrutura de dados desse tipo);
  • podem ser linhas (menos memória é necessária);
  • mas você pode pegar uma célula por vez (a memória está quase livre + a montagem do robô é mais fácil, o DataTable não é usado). Faremos a última opção.

No lado do sistema final, o robô abre um cartão de formulário para um novo registro e o preenche com dados do Excel.
Em 10 minutos e 24 segundos, o robô migrou 64 registros. Ou seja, ~ 173 horas terão uma transferência completa. A razão para essa desaceleração é o tempo de inicialização da GUI em cada operação.

Cartão para cartão de robô


Espera-se que o usuário personalizado possa configurar essa transferência. Você só precisa se familiarizar com o curso simplificado do desenvolvimento de RPA (1-2 dias de estudo). De todos os métodos robóticos, este é o mais fácil de desenvolver.
Aqui, o robô atua como um "clicker" avançado: encontre o campo no cartão de origem => pegue seu valor => encontre o campo no cartão de destinatário => insira o valor => clique em "salvar".

Pegamos cartões padrão. O Access gera esses cartões de forma sem nenhuma programação.
Tempo de operação 9 minutos e 02 segundos para 64 registros. Ou seja, ~ 151 horas para uma transferência completa.

Transporte manual


Espera-se que um usuário comum do sistema lide com essa tarefa. O nível de competências necessárias é o mais baixo: apenas o conhecimento da interface do software de origem e do software destinatário é suficiente. Não é necessário treinamento adicional.

Usamos o mouse e Ctrl + A, Ctrl + C, Ctrl + V, Alt + Tab e os mesmos cartões.
A transferência de 10 registros levou 5 minutos. Ou seja: ~ 533 horas para todo o volume. E este é apenas o tempo artesanal. E uma pessoa deve descansar, se distrair com outras tarefas e corrigir os erros de seu próprio descuido. Se o robô substituir uma pessoa em operações pela GUI, o processo ganha em velocidade várias vezes.
Os resultados gerais estão resumidos nas tabelas abaixo.

Resumo Resultados


imagem

Recursos RPA


Vários recursos que nos conheceram neste teste:
  • ao trabalhar com o Access em um sistema de 64 bits, você deve instalar o AccessDatabaseEngine.exe de 32 bits;
  • no cenário "Robô através do Excel", o processo "tropeçou" no campo "Organizações" no cartão do destinatário. O campo no cartão e o campo na própria tabela são do tipo "Campo com Substituição". Quando a operação de gravação neste campo foi enquadrada pela velocidade do obturador de dois segundos, o processo estabilizou;
  • O assistente do UiPath Studio para conectar-se aos bancos de dados insere aspas extras na linha de configurações - isso deve ser verificado duas vezes;
  • no campo com a consulta SQL, o texto não deve conter um retorno de carro; caso contrário, o UiPath Studio retorna um erro. O texto da solicitação deve ter uma linha;
  • É muito conveniente quando há botões de navegação no formulário no cartão de formulário: próximo cartão / anterior / primeiro / último. Com esses botões, é mais fácil montar o robô e ficará mais estável em operação. Isso pode ser considerado como uma recomendação geral para o desenvolvimento de uma GUI. Por exemplo, o Access em seus formulários de cartão fornece esses recursos por padrão;
  • ao configurar robôs, não precisamos programar no sentido usual. O algoritmo é montado a partir de blocos, como um diagrama. Os blocos são configurados na janela de propriedades. O conceito de código baixo / sem código realmente funcionou em nossa tarefa;
  • Outro cenário de migração está disponível com o RPA - por meio da GUI da área de trabalho remota. O próprio robô é lançado localmente e, com a ajuda do CV e do OCR, realiza ações no terminal. Os dados podem ser transferidos diretamente através da área de transferência.


A questão permanece de viabilidade econômica. Mas o retorno depende muito do projeto de implementação específico e da disponibilidade de recursos. No lado técnico, obtivemos boas impressões do desempenho do robô e da conveniência das ferramentas de desenvolvimento do RPA.

Source: https://habr.com/ru/post/pt479930/


All Articles