Conteúdo[Esconder][Mostrar]
Toda equipe de desenvolvimento web realiza um conjunto de testes em seus produtos, mas a solução web fornecida posteriormente apresenta falhas.
Mesmo com os melhores testes manuais, os defeitos inevitavelmente surgem e ressurgem, apesar dos esforços da equipe de controle de qualidade para detectá-los antes do primeiro lançamento.
Quando se trata de aumentar a eficiência e o escopo de seus testes de software, o teste automatizado da Web é sua melhor escolha.
Para testes online, o Python linguagem de programação oferece uma estrutura de robô que pode aproveitar bibliotecas externas, como o selenium.
Neste post, vamos passar por casos de teste e outros termos ligados ao framework do robô Python.
O que é uma estrutura de robô?
Estrutura do robô é uma estrutura de automação genérica de código aberto flexível escrita em Python que é usada para testes automatizados de software, automação de processos robóticos, testes de aceitação e desenvolvimento orientado a testes de aceitação.
Em palavras simples, é uma estrutura de automação de teste orientada por palavras-chave baseada em Python.
Ele permite que os testadores automatizem e mantenham scripts de processos complicados com eficiência. A estrutura pode ser usada para testar interfaces de usuário e interfaces de programação de aplicativos.
Ele permite que os engenheiros de teste utilizem o Selenium, além de várias outras integrações. O Selenium é uma ferramenta padrão do setor para automatizar o comportamento do usuário e criar scripts de interações do navegador da Web baseadas no usuário para qualquer site.
O que é teste de aceitação?
É uma maneira de determinar a capacidade de um sistema. O objetivo do teste de aceitação é avaliar as capacidades de um sistema em relação às necessidades do negócio.
O que é automação de processos robóticos?
RPA, ou automação de processos robóticos, é um método de minimizar o trabalho humano por meio do uso de software que incorpora aprendizado de máquina e recursos de IA. O RPA é usado para automatizar processos repetitivos de alto nível.
O que é desenvolvimento orientado a testes de aceitação?
O desenvolvimento orientado a testes de aceitação, geralmente conhecido como ATDD, é uma técnica de desenvolvimento que se baseia na comunicação entre clientes de negócios, desenvolvedores e testadores. Eles colaboram e realizam testes de aceitação antes de implantar o recurso.
Estrutura do robô – Arquitetura de alto nível
Robot Framework é uma estrutura que é independente de aplicação e tecnologia. Sua arquitetura é bastante modular, como pode ser visto na figura abaixo.
Os dados do teste são apresentados em um formato tabular simples e editável. O Robot Framework analisa dados, conduz casos de teste e cria logs e relatórios quando é iniciado.
A estrutura principal não tem conhecimento do destino em teste e as bibliotecas gerenciam todas as interações com ela. As bibliotecas podem aproveitar ferramentas de teste de nível inferior como drivers ou empregar diretamente interfaces de aplicativos.
Funcionalidades
- Ele facilita os testes orientados a dados, permitindo a Automação de Testes para vários tipos de dados.
- Ele evita o uso de quantidades significativas de código e, em vez disso, usa uma estratégia de teste orientada por comportamento.
- Pode trabalhar com bibliotecas e funções de terceiros.
- Palavras-chave (predefinidas ou definidas pelo usuário) são usadas em um estilo tabular para escrever casos de teste.
- Os usuários podem criar palavras-chave.
- Variáveis podem ser usadas.
- O Framework emprega um método orientado por palavras-chave, no qual os scripts são escritos usando termos minúsculos e de fácil compreensão (pré-definidos ou definidos pelo usuário).
- Após cada compilação, relatórios,
- e os logs são criados.
- Ele gera relatórios e logs completos do status de execução do script, o que é particularmente útil no caso de falha do script.
Tutorial da estrutura do robô
Vamos mergulhar.
1. Instalação da estrutura do robô
O pacote pip é sugerido para instalar o framework do robô em Python. Para instalar a estrutura, execute o comando a seguir.
Você deve poder visualizar as versões do interpretador e da estrutura do robô após uma instalação bem-sucedida usando a opção -version.
2. Bibliotecas
- Builtin – Esta é uma biblioteca padrão que contém um conjunto de palavras-chave comumente usadas que são importadas automaticamente e estão disponíveis o tempo todo.
- Collection – Fornece um conjunto de palavras-chave para trabalhar com listas e dicionários Python. As palavras-chave da biblioteca podem ser usadas para alterar e criar valores de listas e dicionários.
- Diálogos – Uma biblioteca padrão para interromper a execução e receber feedback do usuário. Dependendo se os testes estão em execução, as caixas de diálogo são um pouco inconsistentes.
- DateTime permite gerar e modificar informações de data e hora.
- Sistema Operacional – Permite que a estrutura do robô execute uma variedade de tarefas relacionadas ao sistema operacional no sistema enquanto ele está em execução. Ele pode, entre outras coisas, executar instruções e produzir e modificar dados diretamente.
- Processo – Esta biblioteca é usada para executar processos usando submódulos Python e a classe aberta. A palavra-chave run process é usada para aguardar um processo em execução no sistema e compilá-lo.
- XML também é uma biblioteca de texto usada pela estrutura do robô para verificar e modificar documentos XML.
- A string é um pacote para manipular e validar strings.
- Aplica-se o Telnet que permite interagir através do telnet. A biblioteca telnet permite que você se conecte a um servidor telnet por meio de uma conexão TCP/IP regular e execute comandos.
3. Ferramentas incorporadas
Em uma estrutura de robô, existem basicamente quatro ferramentas internas que são usadas:
- Rebot – Ferramentas para criar logs e relatórios de saída XML e mesclar várias saídas ao mesmo tempo.
- Testdoc — Com base em casos de teste, o Robot Framework cria documentação HTML de alto nível.
- Libdoc – Gerador de documentação de palavras-chave para bibliotecas e arquivos de recursos.
- Tidy – Robot Framework Ferramentas para limpeza e conversão de arquivos de dados para um formato diferente.
4. Casos de teste
Em vez de casos de teste automatizados, os casos de teste na estrutura do robô podem ser escritos em inglês básico. Os testes a seguir podem ser usados para classificar os cenários de teste.
- Testes de fluxo de trabalho
- Testes de nível superior
- Testes baseados em dados
Testes de fluxo de trabalho
Os casos de teste da estrutura do robô são frequentemente escritos em sintaxe tabular. A primeira coluna de uma tabela de casos de teste contém os nomes de teste e o caso de teste começa com qualquer coisa na coluna e termina com o próximo nome do caso de teste ou o final da tabela.
Vamos dar uma olhada em um exemplo do mundo real para entender como isso funciona.
- Um usuário pode criar uma conta e fazer login.
- O usuário não poderá fazer login se a senha estiver incorreta.
Testes de alto nível
A segunda coluna normalmente inclui um nome de palavra-chave, com exceção de variáveis de configuração com valores escritos por palavra-chave.
Os casos de teste da estrutura do robô podem ser construídos usando apenas palavras-chave de alto nível e sem parâmetros posicionais. Para compreender melhor os testes de alto nível, considere o exemplo a seguir.
Testes baseados em dados
O teste orientado a dados isola os dados de teste em vez de simular procedimentos. Na estrutura do robô, a configuração [template] define o caso de teste para um teste orientado a dados.
5. Palavras-chave
Para construir casos de teste na estrutura do robô, são usadas palavras-chave de duas fontes.
- Palavras-chave para uma biblioteca
- Palavras-chave para o usuário
Palavras-chave para uma biblioteca
As bibliotecas padrão definem toda a terminologia de nível mais baixo, que pode ser implementada usando linguagens de computador como Python e Java.
Bibliotecas padrão, externas e personalizadas estão entre as bibliotecas de teste disponíveis com a estrutura do robô. A estrutura principal inclui bibliotecas integradas, captura de tela, sistema operacional e outras bibliotecas padrão.
Palavras-chave para o usuário
A capacidade de gerar palavras-chave exclusivas de alto nível a partir de frases existentes é uma das características mais importantes do projeto do robô. Para entender melhor como funciona, vejamos um exemplo.
6. variáveis
As variáveis são uma parte importante de cada caso de teste em uma estrutura de robô. Uma variável é uma excelente abordagem para especificar qualquer dado em um caso de teste que esteja sujeito a mudança ou variabilidade.
Vamos dar uma olhada em como definir variáveis em um caso de teste.
Especificando variáveis
Além das variáveis definidas pelo usuário, a estrutura do robô possui variáveis internas, como $TEMPDIR e $/, que usamos no exemplo anterior.
Fazendo uso de variáveis
As variáveis podem ser usadas em qualquer lugar no caso de teste.
No entanto, eles são mais comumente usados como argumentos de palavras-chave. Considere o seguinte exemplo para ilustrar o que quero dizer.
7. Organização de casos de teste
Os arquivos de caso de teste são usados para construir casos de teste de robô, mas também podem ser agrupados em diretórios para criar uma hierarquia de suíte de teste. Um conjunto de testes é um agrupamento de casos de teste. Um conjunto de testes é composto por todos os arquivos que contêm casos de teste.
Usando diretórios, os casos de teste podem ser estruturados em uma hierarquia; todos esses diretórios fornecem suítes de teste de alto nível com nomes derivados dos nomes dos diretórios.
Usando configurações e desmontagens
As opções “Test Setup” e “Test Teardown” da tabela de configurações podem ser usadas para executar uma palavra-chave específica em um teste antes ou depois de sua conclusão. Você também pode usar “Suite Setup” e “Suite Teardown” para executar palavras-chave antes ou depois de um conjunto de testes.
Você pode criar [Setup] e [Teardown] personalizados em um caso de teste, semelhante ao [Template]. Considere o seguinte cenário para entender melhor isso.
Usando tags
A estrutura do robô permite que tags sejam usadas para fornecer metadados gratuitos para casos de teste. “Force Tags” e “Default Tags” podem ser usados para definir tags em um arquivo. [Tags], como [Template], podem ser usados para atribuir tags a um único caso de teste. Vejamos um exemplo para ver como usamos tags.
O relatório incluirá tags com casos de teste vinculados a eles, bem como estatísticas baseadas nas tags, após a execução.
Prós
- É fácil configurar o Robot Framework.
- É baseado no uso de palavras-chave.
- Ele permite que você use Gherkin.
- Funciona com ambos aplicativos móveis e baseados na web.
- Os fundamentos do Robot Framework são fáceis de entender.
- Ele usa uma abordagem de baixo código.
- Windows, Mac OS X, Unix e Linux são todos suportados.
- Python, IronPython e PyPy são todas linguagens de programação suportadas.
- Funciona com todos os principais navegadores da web.
- Robot Framework é uma ferramenta de automação de código aberto e gratuita.
Desvantagens
- A execução de teste paralelo não é suportada pelo Robot Framework.
- O Robot Framework é difícil de acompanhar.
- Os relatórios HTML no Robot Framework são difíceis de alterar.
- Depurar alguns problemas do Robot Framework pode ser complicado.
- A indentação é rigorosamente aplicada no Robot Framework.
Conclusão
A Robot Platform é um teste de aceitação gratuito e de código aberto e uma estrutura de desenvolvimento orientada a testes de aceitação.
Os casos de teste da estrutura do robô são construídos com palavras-chave expressas em um estilo tabular, o que os torna fáceis de entender e fornece informações precisas sobre o significado do caso de teste.
É realmente conveniente e simples de usar.
Alguns de vocês já o usaram antes, portanto, se você tiver seus testes configurados e seu aplicativo Android / iOS pronto, experimente.
Você ficará surpreso com o quão bem as coisas funcionam e com a rapidez com que os testes de aceitação podem ser concluídos.
Deixe um comentário