Watch automação de testes com robot framework - básico

Fique por dentro

Este artigo tem como objetivo apresentar a ferramenta de automaç�o de testes Robot Framework, bem como sua integraç�o na Eclipse IDE atrav�s da utilizaç�o do plugin Apache Maven 3. Para melhor ilustrar as capacidades da ferramenta, este artigo tamb�m prop�e uma explicaç�o b�sica sobre testes de aceitaç�o. O tema deste artigo ser� �til na p�s-implementaç�o de um software. Com a intenç�o de entregar ao cliente um produto de qualidade, ser� poss�vel, atrav�s dos testes realizados pela ferramenta Robot Framework, identificar e corrigir erros que, no decorrer do desenvolvimento, podem passar despercebidos.
Autores: Bruno Bartholomeu Bessa, Welton Braz Resende e Marco Ant�nio Pereira Ara�jo

Embora muito importante para identificar falhas que muitas vezes passam despercebidas pelos desenvolvedores, a pr�tica do teste de software � algumas vezes desconsiderada pelas empresas. Essa atividade n�o faz mais parte do processo de desenvolvimento, executada por programadores e analistas de sistemas, e agora deve fazer parte de um n�vel de processo mais qualificado.

Nas empresas desenvolvedoras de software, j� existem equipes com profissionais altamente qualificados e experientes, respons�veis por fazerem toda a an�lise t�cnica de testes funcionais, n�o permitindo que erros e falhas passem despercebidos, promovendo, cada vez mais, a qualidade no produto desenvolvido. A verdadeira intenç�o ao se prover testes em um software � garantir a produtividade aliada � qualidade.

Felizmente, hoje em dia h� uma gama de ferramentas para a automaç�o de testes de software. Tais ferramentas t�m como objetivo controlar a execuç�o dos testes e comparar os resultados alcançados com os resultados esperados. A automaç�o de teste � extremamente �til para realizar testes repetitivos � mas necess�rios � ou dif�ceis de se realizar manualmente.

Este artigo tem como objetivo apresentar a ferramenta de automaç�o de testes Robot Framework, bem como sua integraç�o com a IDE Eclipse atrav�s da utilizaç�o do plugin Apache Maven 3. Para melhor ilustrar as capacidades da ferramenta, este artigo tamb�m prop�e uma explicaç�o b�sica sobre testes de aceitaç�o.

Automaç�o dos Testes de Aceitaç�o

Geralmente realizados nos est�gios finais de desenvolvimento com um pequeno grupo de usu�rios, os testes de aceitaç�o de software realizam testes de caixa preta inserindo dados em um programa para verificar suas sa�das. Uma das vantagens dos testes caixa preta � que n�o h� necessidade de se conhecer o c�digo fonte para test�-lo � ou seja, para se realizar esse tipo de teste, n�o � preciso entender como uma determinada operaç�o � realizada, mas sim o que ela deve fazer.

A diferença entre o teste de caixa preta, utilizada no teste de aceitaç�o, e o teste de caixa branca, � que nesse �ltimo � poss�vel examinar o c�digo fonte em busca de pistas que podem ser �teis para o teste. Contudo, essa mesma liberdade proporcionada pelo teste caixa branca pode se tornar um problema quando o examinador tenta manipular os testes para que eles façam sentido dentro das operaç�es do c�digo � mesmo que estejam erradas.

O maior problema desses testes � realiz�-los manualmente, pois demandam muito tempo e esforço, ainda mais levando-se em consideraç�o o qu�o repetitivo s�o os cen�rios de teste. Uma soluç�o encontrada � a de dividir os casos de teste mais importantes e, assim, reduzir a quantidade de testes que ser�o feitos. Contudo, isso acaba trazendo riscos, visto que haver�, como consequ�ncia, uma menor cobertura.

Outra sa�da encontrada foi o desenvolvimento guiado por testes (TDD, Test-Driven Development), que organiza o processo de desenvolvimento, an�lise e teste do c�digo de forma unificada e s�ncrona. Essa pr�tica ajuda o desenvolvedor a manter, al�m da qualidade do software ao longo do processo, um controle maior sobre a organizaç�o do c�digo fonte. No entanto, mesmo com um intervalo de tempo maior entre os testes, acaba havendo um aumento nos casos de teste � o que � um ponto positivo, pois aumenta a cobertura �, e a realizaç�o dos mesmos continua maçante."

[...] continue lendo...

Watch automação de testes com robot framework - básico

Exemplo de automação da API Robot Framework usando Mark Winteringham`s - Restful-Booker

Por padrão, ele está usando a versão online ao vivo do RestfulBooker, mas RestfulBooker pode ser executado localmente, você pode pegar o git hub aqui

A documentação da API pode ser encontrada aqui

Para quem é este repositório?

Recém-chegados ao Robot Framework interessados ​​em testes automatizados de API, em busca de exemplos

O que é Robot Framework?

A estrutura do robô é uma estrutura de automação de teste de software livre baseada em Python com grande extensibilidade. A estrutura do robô é multiplataforma e pode ser executada em Mac, Linux e Windows.

Veja aqui a página inicial do Robot Framework

O que exatamente é isso?

Um conjunto de testes básico da API Robot Framework com os seguintes testes:

  • Obtendo o token de autenticação
  • Obter todos os IDs de reservas
  • Adicionar nova reserva
  • Validar novos detalhes de reserva
  • Obter novo ID de reserva por nome
  • Obter novo ID de reserva por data
  • Atualizar nova reserva
  • Atualização parcial da nova reserva
  • Excluir todas as reservas <- comentado por padrão

As seguintes bibliotecas de suporte são usadas neste pacote junto com algumas das bibliotecas integradas ...

Validador JSON

RequestsLibrary

Como faço para configurar?

  • Instale Python 3
  • Clone ou baixe este repositório
  • Usando a linha de comando, navegue até a pasta do projeto e execute o comando. pip install -r requirements.txtIsso instalará a estrutura do robô e as bibliotecas de suporte necessárias e suas dependências

Depois de tudo ter sido instalado, você pode executar o conjunto de testes a partir da linha de comando na pasta de projetos com o comando

robot .\api.robot

Por padrão, ele será executado no site ao vivo na web. Isso pode ser alterado na linha de comando para apontar para uma instância local do restfulbooker executando

robot -v BASE_URL:127.0.0.1:3001 .\api.robotou alterando a variável $ {BASEURL} no arquivo api.robot

Com quem eu falo?

  • Anthony O`Donnell - LinkedIn

Watch automação de testes com robot framework - básico
robozinho estudioso

Este artigo tem como objetivo apresentar como podemos escrever scripts para automação de testes de uma forma bem simples e de baixa complexidade usando o Robot Framework.

Após realizar um pequeno curso de introdução ao robot framework, procurei me aprofundar um pouco mais nos testes web e mobile, o resultado até o momento tem sido bem satisfatório. 😍

O conteúdo que será apresentado neste artigo está disponível no meu github https://github.com/caioandrian/curso_robot_framework.

Fiquem à vontade para clonar, testar e também para apontar melhorias.😉

Importante: “As opiniões aqui colocadas refletem a opinião pessoal do autor e não necessariamente a opinião da Compasso UOL”.

Quais são as vantagens de usar o robot framework?

  • A linguagem utilizada é fácil de entender, inclusive por pessoas que não possuem tanto conhecimento técnico em programação.
  • A distribuição do código por seções “Settings, Variables, Test Cases e Keywords” nos ajudam a construir um código bem organizado desde o início.
  • Aumento da produtividade e a entrega dos casos de testes.
  • Algumas bibliotecas possuem a documentação bem organizada e acessível.
  • Existem várias bibliotecas disponíveis que podem nos auxiliar para atingir diferentes objetivos, por exemplo, para teste web, mobile, desktop, etc.
  • Fácil de instalar.
  • Você também pode criar suas próprias bibliotecas usando a linguagem Python!

E quais são as desvantagens?

  • A documentação do robot framework não é tão clara e objetiva (https://robotframework.org).
  • A comunidade é relativamente pequena, se comparado a outros frameworks, o que pode dificultar a busca por ajuda em algumas situações.
  • Existem poucos cursos que abordam o robot framework ou como podemos usar definitivamente suas bibliotecas.

Entendendo um pouco mais sobre a sintaxe com seções do Robot Framework:

  1. Na seção chamada ** Settings ** temos a definição das páginas ou recursos que serão utilizados para o teste.
  2. Ainda não seção de Settings, declaramos as keywords que serão consideradas como pré-requisitos tanto para dar início a uma suíte de teste, quanto para serem executadas antes de cada caso de teste. Essa declaração é feita através do bloco contendo os nossos Setups.
  3. Já na seção de ** Test Cases ** podemos ter um ou mais casos de teste, que deverão possuir um conjunto de keywords para que seja realizado o nosso caso de teste.
  4. Na seção ** Variables ** iremos declarar as variáveis que serão utilizadas pelos nossos testes, podendo ser definidas como variáveis globais, para nosso conjunto de testes, apenas para um caso de teste ou como variáveis locais.
  5. Por fim, a seção de ** Keywords ** representa os passos que iremos realizar nos nossos casos de teste, ou seja, a construção do nosso caso de teste deverá possuir vários keywords que criamos até atingir o objetivo daquele cenário de teste. Além dessas keywords que estamos criando, também existem as keywords já existentes nas bibliotecas que estamos utilizando, essas deverão ser utilizadas para realizar alguma ação com a página, tela, sistema operacional ou com o software que estamos querendo testar.

Veja como podemos usar as seções no código, seguindo o exemplo das imagens abaixo.😃

Watch automação de testes com robot framework - básico
Watch automação de testes com robot framework - básico
seções com robot framework

Para esse projeto de teste, foi utilizado o design pattern Page Object e por esse motivo as seções estão separadas em dois arquivos.

Agora temos um código que pode ser lido facilmente, e o mais importante, ficou mais fácil de entender o que cada caso de teste (3) está fazendo. 😍💡

Também podemos notar que algumas keywords provenientes das bibliotecas que instalamos, contribuem imensamente para que possamos escrever um código de automação com mais rapidez e baixa complexidade.

Dica de como escrever um bom código de teste com robot framework: https://github.com/robotframework/HowToWriteGoodTestCases/blob/master/HowToWriteGoodTestCases.rst

Documentação: robotframework.org/SeleniumLibrary/SeleniumLibrary.html

Requisitos:

Passos para instalação do robot framework e do selenium library:

Como configurar a abertura e o fechamento de um navegador com o selenium no robot framework:

Precisamos definir o nossos Setups para abrir e encerrar o navegador.

Exemplos de keywords utilizando o Selenium Library:

  • Select From List By Label, Select Checkbox, Select Radio Button.
  • Input Text, Click Element, Checkbox Should Be Selected, Click Link, Drag and drop.
  • Element Attribute Value Should Be, Element Text Should Be.
  • Page Should Contain Text, Page Should Contain Element.
  • Wait Until Page Contains, Wait Until Page Contains Element.
  • Get Value, Get Text, Get Title, Get Cookie.

Veja o exemplo de um caso de teste sendo executado com o robot framework e o selenium library no gif abaixo e do report em html gerado.

Watch automação de testes com robot framework - básico
Watch automação de testes com robot framework - básico
executando teste web com selenium e report html gerado pelo robot

Caso o gif não abra, por favor aguarde alguns segundos ou tente atualizar a página.

Documentação: https://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html

Requisitos:

Passos para instalação do robot framework e do appium library:

Passos para iniciar a ligação entre o appium e device:

Lembrete:
Para executar os testes precisa primeiro abrir o Android Studio e seu dispositivo.

Watch automação de testes com robot framework - básico
Exemplo de dispositivo simulado no Android Studio

Como configurar a abertura e o fechamento de um aplicativo com o Appium no Robot Framework:

Precisamos definir o nossos Setups para abrir e encerrar a aplicação.

Exemplos de keywords que utilizando o Appium Library:

  • Swipe, Press, Long Press, Tap, Scroll, Swipe By Percent.
  • Input Text, Click Element, Click Text, Click Button.
  • Element Attribute Value Should Be, Element Text Should Be.
  • Page Should Contain Text, Page Should Contain Element.
  • Wait Until Page Contains, Wait Until Page Contains Element.
  • Get Text, Get Contexts, Switch To Context, Get Element Location, Get Element Size

Veja o exemplo de um caso de teste sendo executado com o robot framework e o appium library no gif abaixo e do log gerado.

Watch automação de testes com robot framework - básico
executando teste mobile com appium e log gerado pelo robot

Caso o gif não abra, por favor aguarde alguns segundos ou tente atualizar a página.

Esses foram meus primeiros testes usando o robot framework, o projeto completo deste exemplo está no meu github.

https://github.com/caioandrian/curso_robot_framework

Espero que tenham gostado.🙂

Até a próxima.

Referências Bibliográficas

ESTIVALET, Luiz Fernando. Testes Automatizados Usando Robot Framework — Módulo 1. Udemy, 2021. Disponível em: <https://www.youtube.com/watch?v=W5hcHbzTjOc>. Acesso em: 10 out. 2021.
Robot Framework Tips, Tricks And Tutorials. Robot Framework And Appium — Install Environment On Windows. Youtube, 2020. Disponível em: <https://www.youtube.com/watch?v=W5hcHbzTjOc>. Acesso em: 16 out. 2021.
Robot Framework Tips, Tricks And Tutorials. Robot Framework And Appium — Configure Devices And Emulators. Youtube, 2020. Disponível em: <https://www.youtube.com/watch?v=QYT0_qgkiCw>. Acesso em: 16 out. 2021.
Robot Framework Tips, Tricks And Tutorials. Robot Framework And Appium — Open Application — AppiumLibrary. Youtube, 2020. Disponível em: <https://www.youtube.com/watch?v=0a5NAJjUBbA>. Acesso em: 16 out. 2021.