Dinamismo com Katalon em testes automatizados

Lucas Tardivo

Introdução

O Katalon Studio é uma solução gratuita para testes automatizados de sistemas Web e Mobile, a ferramenta possui uma IDE própria a base da linguagem Java, similar à IDE Eclipse, e faz uso do framework de testes automatizados Selenium, como padrão, o Katalon já possui integração com os drivers dos navegadores mais famosos como Chrome, Firefox, Internet explorer, e também permite o teste em tempo real com um dispositivo mobile. Seu funcionamento apresenta soluções completas, permitindo o envio de e-mails com relatórios precisos de testes, integração com JIRA e Bitbucket, customização de código personalizado internamente com a linguagem Java, uma plataforma online de relatórios analíticos entre outros diversos destaques.

O Katalon é livre para uso comercial e pessoal, a maior parte de suas ferramentas são gratuitas, possuindo apenas algumas vantagens pagas, mas para utilizar o Katalon é obrigatório criar uma conta, ela concede acesso ao programa e também a ferramenta do Katalon Analytics no site oficial.

Usos comuns do Katalon Studio:

  • Testes automatizados com aplicações Web/Mobile
  • Testes de stress
  • Testes de entrada e diversidade de valores, efetuando combinações aleatórias entre os dados informados

Tecnologias inclusas

Java é a linguagem base do Katalon, permitindo o desenvolvimento dos Test Cases tanto em código direto como visualmente através de Keywords.
A IDE é desenvolvida em cima do Eclipse, portanto o suporte para o Katalon requere a JVM como qualquer outra IDE Java.

Como uma alternativa para a linguagem Java, o Katalon aderiu ao Groovy para o desenvolvimento de código personalizado, sendo utilizado para a programação via código direto de Test Cases e a customização de Keywords. Sua sintaxe é similar ao Java, apenas se diferenciando por pequenos detalhes.

Para efetuar o controle remoto do browser, o Katalon desfruta das funcionalidades do Selenium, podendo controlá-lo diretamente através de código. O framework possui suporte para as mais variadas linguagens incluindo o Java, o que abriu portas para a sua utilização no Katalon Studio.

As integrações para o JIRA e o Bitbucket são disponibilizadas livremente dentro da IDE. Também há uma integração gratuita com o Katalon Analytics, oferecida pela própria desenvolvedora do Katalon.

Além das ferramentas para o controle do front-end, o Katalon possui suporte para conexão com os SGBDs mais famosos por padrão para serem utilizados nos seus Checkpoints e Test Datas, suprindo um pouco da necessidade de confirmação de teste via back-end.

Destaques do Katalon

  • Integração com JIRA. A integração com o JIRA permite que tarefas sejam criadas especificamente para os testes automatizados em questão. O Katalon irá subir relatórios detalhados sobre sucessos e falhas referentes ao teste diretamente para a tarefa apontada.
  • Integração com Git/Bitbucket. Para controle de versionamento, o Katalon fornece integração com repositórios Git.
  • Relatórios avançados de testes. Os relatórios do Katalon são extremamente precisos e detalhados, permitindo também uma customização bem ampla para suas informações.
  • Katalon Analytics. Uma das ferramentas disponibilizadas online e gratuitamente pelo Katalon é seu sistema de relatório analítico. O Katalon Analytics armazena dados dos testes efetuados em seus projetos, apresentando relatórios e gráficos com sucessos, falhas, tempos de execução, total de testes, ferramentas de exportação, entre outros.
  • O Katalon Studio possui suporte para as plataformas Mobile e Web. As ferramentas como Spy e Recorder também possuem suporte e podem ser executados livremente em tempo real.
    Como o Katalon continua em desenvolvimento, é possível que mais plataformas venham a ser disponibilizadas no futuro.
  • Para todos. Graças a suas ferramentas de abstração, o Katalon é capaz de ser utilizado por qualquer pessoa que possua conhecimento básico de informática, e até dar abertura para ser perfeitamente customizável por uma pessoa conhecimento avançado sem deixar a desejar.
    Ferramentas como o Recorder são capazes de gravar os passos do usuário em tempo real, reproduzindo-os em forma de código e convertendo em um Test Case, desta maneira não é necessário ter conhecimento em programação para se desenvolver um teste automatizado.
    A demonstração visual dos Test Cases em listas permite o entendimento dos processos sem a necessidade do conhecimento da sintaxe. Já que todos os comandos são demonstrados como Keywords, eles podem ser compreendidos por um usuário com menos conhecimento, também abrindo espaço para pequenas manutenções.

Estrutura dos projetos Katalon

Test Cases

Um Test Case como a própria tradução sugere, é um caso de teste. Apesar de se tratar de um caso, ele não precisa ser necessariamente um caso específico, deixando em aberto a possibilidade de montar qualquer modelo para o projeto de testes.

Object Repository

Os objetos da tela ficam armazenados com dados referentes á sua localização, desta maneira o Katalon pode encontrar o objeto em questão durante um Test Case. É recomendável que os objetos fiquem organizados por página.

Test Suites

Os Test Suites são ambientes para a execução de Test Cases, é possível a utilização de um ou mais Test Cases em sequência, também possibilitando sua integração com Test Datas.
Test Suite Collection
Assim como os Test Suites são conjuntos de Test Cases, os Test Suite Collection são conjuntos de Test Suites, com eles é possível adicionar um ou mais Test Suites, selecionar quais serão executados, qual navegador será utilizado para cada teste e se a execução será sequencial ou paralela, permitindo uma realização de todos os testes de uma única vez.

Data Files

Test cases geram variáveis, e apesar de possuir valores padrão, é muito útil que elas se alterem ao longo da sua reprodução, já que os Test suites permitem um ambiente onde as variáveis possam ser retiradas um arquivo de valores para que possam ser testadas.
Um Test Data é este arquivo em questão. Ele possui uma planilha de dados que serão posteriormente utilizados em um Test Suite, estes dados podem ser escritos manualmente, como também podem ser importados de um arquivo em Excel, CSV ou de uma pesquisa SQL.

Checkpoints

Semelhante ao Test Data, os Checkpoints são uma planilha de dados. Mas seu intuito é serem utilizados para comparação de dados em um Test case, firmando a certeza de valores consistentes e concluindo um teste de sucesso.

Keywords

São linhas de instruções do Katalon para serem utilizadas em Test Cases. Há uma série de Keywords padrão já contidas no Katalon.
Nesta seção é possível criar pacotes e próprias Keywords utilizando o Groovy como linguagem base.

Test Listeners

Para ações que tenham necessidade de serem executadas antes ou depois de iniciar um Test Case ou Test Suite, pode ser criado um Test Listeners para derivar tais funções utilizando o Groovy como linguagem base.

Reports

Toda vez que um Test Suite ou Test Suite Collection é executado, seu relatório é armazenado organizadamente dentro desta pasta.

Profiles

Os perfis são variáveis globais associadas à usuários, por isso são denominados “Perfis”. Para a execução de testes independentes, sempre é utilizado o perfil Default, mas para Test Suite Collections é possível selecionar um perfil específico pra cada execução de Test Suite.

Criando um teste automatizado profissional e dinâmico

O uso da ferramenta Record do Katalon pode auxiliá-lo muito para a montagem de um teste automatizado, mas ao mesmo tempo para um desenvolvedor avançado, ele pode comprometer seu teste á instruções muito objetivas, resultando em um teste pouco flexível e completamente sensível á modificações. Com isso, qualquer pequena modificação pode resultar na necessidade de dar manutenção á todos os testes por coisas extremamente simples.

O mesmo vale para a ferramenta Spy para seleção de objetos, ela necessita de uma atenção extra para quais propriedades são relevantes para a identificação de um objeto. Algumas informações como placeholder ou text são muito voláteis em futuras atualizações, mudando constantemente com uma simples tradução do website por exemplo. O mesmo se aplica a propriedade automática xpath, já que traça o caminho completo do documento até o objeto e qualquer mudança de estrutura no corpo da página faria com que o objeto não fosse encontrado. Informações mais concretas e específicas como id, name, class ou tag são muito mais aplicáveis.

Fazendo um exemplo de teste com Recorder

Como exemplo, montaremos um teste automatizado capaz de acessar a página do www.google.com e efetuar uma pesquisa para “Lorem Ipsum”. O teste deverá clicar na segunda ocorrência de resultado.

Com o Record Web basta inserir a URL desejada e clicar no ícone do navegador, fazendo com que uma página da web seja aberta na URL especificada. Após isso, qualquer ação efetuada neste navegador será registrada como uma instrução (Keyword) do Katalon resultando em um teste automatizado ao fechar a janela.

Obs: Caso o seu Katalon tenha problemas de compatibilidade com o uso de teclas, clique no botão “Pesquisa google” ao invés de apertar a tecla ENTER.

Como resultado, tivemos todos os passos armazenados e ordenados em ordem de entrada.

Número da instrução Ação
1 Abre o navegador
2 Acessa a URL do Google
3 Digita a pesquisa no campo de texto
4 Envia o pressionamento da tecla ENTER
5 Clica no terceiro resultado que aparece na pesquisa
6 Fecha o navegador

Até aí está tudo ok, o teste gerado é capaz de atingir nosso objetivo. A ferramenta Record é muito boa para testes pequenos e objetivos como este, por poupar tempo comparado a montar todas as instruções manualmente, mas como garantimos de que este teste continuará funcionando em futuras atualizações?

A primeira etapa é analisar as propriedades que identificam nossos objetos, para garantir de que eles continuarão sendo identificados com modificações futuras. A segunda etapa é otimizar o caso de teste transformando valores constantes em variáveis do Test Case.

Para a primeira etapa, basta analisar o botão “Show Captured Objects” do Recorder, clicando em cada um dos objetos para visualizar suas propriedades.

O objeto “input_q” utilizado para preencher o texto de pesquisa deverá constar somente com as propriedades mais específicas selecionadas, mesmo que o Katalon nos traga outras propriedades na lista. Propriedades como Tag, Id e Name são suficientes para identificar nosso objeto com bastante especificidade.

Quanto ao link de resultado, temos um problema bem grande. As propriedades href e text estão sendo utilizadas para identificar o objeto, isso quer dizer que o Katalon não está selecionando a segunda ocorrência como foi proposto em nosso caso de teste, e sim aquele link em específico. Ainda que isso resolva o problema do nosso caso de teste, os identificadores são extremamente voláteis, e se futuramente o link em questão vier á mudar de endereço ou o título da página, o nosso teste irá falhar por não conseguir encontrar o objeto especificado.

Isso é um problema muito comum encontrado no desenvolvimento dos testes, como solução, o Katalon fornece a possibilidade de passar parâmetros para os objetos através do caso de teste.

Transformando seu Test Case em um teste profissional e dinâmico

Na propriedade XPath, insira o valor (//h3/a)[position() = ‘${index’}] e ative sua seleção na checkbox. Lembre-se de desativar todas as outras propriedades que não seja a XPath.

Explicando sobre o código informado, (//h3/a) é o caminho que encontrará todos os links (a) dentro de cabeçalhos (h3) dentro do HTML, com isso, iremos selecionar apenas os links do Google que pertencem ao resultado da pesquisa, não correndo risco de selecionar links aleatórios dentro do documento como o link para home na logo, o link para visualizar Imagens, vídeos, etc. Após isso o seletor position() é responsável por retornar apenas um dos links encontrados, no nosso caso, o terceiro link, mas note a presença do ${index} no lugar do respectivo numero “3” que deveríamos informar, essa sintaxe é usada para especificar ao Katalon um parâmetro, nomeada da seguinte maneira ${nomedoparametro}, este parâmetro irá vir como nulo por padrão, por isso devemos acessar o nosso Test Case e informar o parâmetro no objeto alvo da instrução número 5.

Na região de “Object Parameters”, adicione um novo parâmetro chamado “index” com o valor 2, com isso, nosso teste será capaz de ser executado sem erros e completamente dinâmico para que futuras modificações não venham á fazer o teste falhar, Isto conclui a primeira etapa, agora precisamos otimizar nossos valores para que sejam facilmente manipuláveis em casos de teste futuros. Note que o valor “2” que utilizamos no nosso parâmetro é uma constante, também note que a pesquisa “Lorem Ipsum” se trata de uma constante, caso o teste seja extremamente especifico, o uso destas constantes são adequados para atingir as expectativas, mas caso várias pesquisas sejam feitas e cada uma com um link diferente, o ideal será transformar estas constantes em variáveis, evitando assim a necessidade de criar múltiplos testes para cada caso específico.

A aba inferior “Variables” do Test Case pode registrar várias variáveis pro nosso contexto de acordo com a nossa necessidade, é possível adicionar um valor padrão para as variáveis também, evitando a obrigatoriedade de um Test Suite ou Test Data para a execução do Test Case, e também evitando a especificidade de cada variável para cada caso de teste visto que elas já possuem valores por si só. Para o caso desenvolvido, isso iremos adicionar as seguintes variáveis:

Para aplicar as variáveis ao lugar das constantes, basta alterar os valores do parâmetro Input das instruções do Test Case, como no caso da instrução 3 (Set Text):

Irá ser substituída por:

Para os parâmetros de objeto, como no exemplo da instrução 5 (Click), teremos:

Essa modificação nos dará maior liberdade para criar múltiplos testes com valores diferentes, visto que todo o comportamento é padrão. Além de também nos fornecer maior facilidade quanto à manutenção do Test Case.

Para otimizar ainda mais seus testes automatizados, esta prática também lhe dá abertura para usar seu Test Case em um Test Suite, e até mesmo combinando seus valores com um Test Data, desta forma, o Test Case será executado repetidas vezes com valores diferentes, podendo até mesmo combinar seus dados de acordo com sua configuração na integração do Test Suite, abrindo a possibilidade para um Teste de Stress ou Teste de possibilidades com entrada de valores aleatórios.

Exemplo de Test Data com Internal Data

Exemplo de Test Suite integrando o Test Data

Conclusão

O Katalon é uma ferramenta robusta e completa quando falamos de testes automatizados, atendendo à todas as necessidades de aplicações Web e Mobile e apresentando diversos destaques de variadas tecnologias úteis para testes automatizados, com uma grande vantagem de ser gratuito e tendo apenas algumas ferramentas específicas como pagas, possuir alguns pequenos problemas em sua IDE, está em desenvolvimento por sua equipe, oferecendo constantes correções, suporte e melhorias.
A ferramenta não se apresenta complexa, mas atualmente encontra-se poucas informações específicas na internet comparadas a ferramentas maiores, devido á ter uma publicação relativamente recente. Graças ao seu gravador de passos, o Katalon pode ser utilizado por qualquer pessoa que possua conhecimento básico de informática, mas infelizmente sua tecnologia continua precária e se mostra pouco adaptável a mudanças, resultando em testes pouco tolerantes, e com alguns intermitentes bugs, ainda requerendo configurações manuais. Atualmente a estrutura ideal para os projetos encontrada foi da montagem de testes genéricos e manuais, sem o uso do gravador.

Related Posts