Sistema De Testes Automáticos – Instalação / Configuração Servidor

Introdução

Para executar testes automáticos no EVE, é necessário instalar o Katalon Studio V 6.3.2, configurar o projeto onde os testes, mais os seus artefatos, são guardados e criar a pasta de onde os testes são executados. É importante referir que serão necessários privilégios sudo para efetuar os seguintes passos.

Criação das pastas necessárias

Para criar as pastas necessárias para a execução dos testes, devem ser executados os seguintes comandos:

cd /www/htdocs
# Pasta principal
sudo mkdir Eve_testSystem
cd Eve_testSystem
# Pasta de ficheiros temporários
sudo mkdir execute

Download Projeto

Para transferir o projeto, já com as parametrizações corretas para a melhor execução possível, devem ser executados os seguintes comandos:

cd /www/htdocs/Eve_testSystem
sudo wget https://github.com/Bern1959/EVE_PRJ/raw/main/EVE_PRJ.tar.gz
# Extração do projeto
sudo tar -xf EVE_PRJ.tar.gz
# Apagar ficheiro comprimido
sudo rm EVE_PRJ.tar.gz

Download Katalon Studio V.6.3.2

O Katalon Studio V.6.3.2 é o software onde os testes são criados e executados. Para instalar o Katalon Studio V.6.3.2, devem ser executados os seguintes comandos:

cd /www/htdocs/Eve_testSystem
sudo wget https://github.com/katalon-studio/katalon-studio/releases/download/v6.3.2/Katalon_Studio_Linux_64-6.3.2.tar.gz
# Extração do software
sudo tar -xf Katalon_Studio_Linux_64-6.3.2.tar.gz
# Alterar nome
sudo mv Katalon_Studio_Linux_64-6.3.2 KatalonRuntimeEngine
# Apagar ficheiro comprimido
sudo rm Katalon_Studio_Linux_64-6.3.2.tar.gz
# Mudar o utilizador para o do EVE
chown -R eve /www/htdocs/Eve_testSystem
# Listar ficheiros criados
ls
# Output esperado
EVE_PRJ  execute  KatalonRuntimeEngine

Instalação OpenJDK 8

O Katalon Studio utiliza o “Java Virtual Machine” para executar os testes nele criados. Para verificar se o OpenJDK 8 já se encontra instalado na maquina atual, deve ser executado o seguinte comando:

java -version

Se o output do comando anterior for igual a:

openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

não será necessário efetuar mais qualquer passo. Atenção, que qualquer outra versão do OpenJDK, que não seja a 1.8.0, não será compatível.

Caso contrário, devem ser executados os seguintes comandos:

# Para distribuições baseadas em Debian / Ubuntu
sudo apt update

# Para distribuições baseadas em Red Hat
sudo yum update
# Para distribuições baseadas em Debian / Ubuntu
sudo apt-get install openjdk-8-jre

# Para distribuições baseadas em Red Hat
sudo yum install java-1.8.0-openjdk
# Para selecionar a versão correta, no caso de haver mais que uma
sudo update-alternatives --config java

O comando anterior vai solicitar ao utilizador que escolha entre as versões de Java disponíveis. O utilizador deve digitar o número na lista que pertence á instalação correta (1.8.0), e premir Enter para a selecionar.

There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1

Instalação Google Chrome

Os testes automáticos são executados utilizando o Google Chrome. Para verificar se o Google Chrome se encontra instalado, deve ser executado o seguinte comando:

 google-chrome --version

Se o output anterior for igual a:

Google Chrome 76.0.3809.132

não será necessário efetuar mais nenhum passo e o Katalon Studio está pronto para ser utilizado.

Caso contrário, devem ser executados os seguintes comandos:

wget http://orion.lcg.ufrj.br/RPMS/myrpms/google/google-chrome-stable-76.0.3809.132-1.x86_64.rpm
# Para distribuições baseadas em Debian / Ubuntu
sudo apt install google-chrome-stable-76.0.3809.132-1.x86_64.rpm

# Para distribuições baseadas em Red Hat
sudo yum install google-chrome-stable-76.0.3809.132-1.x86_64.rpm

O Katalon Studio está pronto para ser utilizado

Instalação E Configuração de Sistema De Testes Automáticos

Instalacao-e-configuracao-de-sistema-de-testes-automaticos

Testes de Automação

Para a realização de testes de automação é necessária a ferramenta Katalon Studio. Os testes têm de ser realizados em PC e é necessário o browser Chrome ou Firefox.

Instalação

Criar Projeto

  • Selecionar “File>New>Project
Imagem 1 – Criar Projeto
Imagem 2 – Definições do projeto

Criar Novo Teste

  • Iniciar gravação
Imagem 3 – Demonstração Iniciar Gravação
  • Inserir URL e clicar em Record
Imagem 4 – Demonstração da janela
  • Realizar teste
  • Guardar o Script
Imagem 5 – Guardar o script

Executar teste

Para executar um teste tem de ter instalado um browser (Chrome ou Firefox, de preferência)

Imagem 6 – Executar teste com diferentes opções

Testes no Servidor

Para executar os testes no servidor será necessário colocar a pasta do projeto no servidor.

O projeto tem a seguinte estrutura:

  • Data Files (Onde estão definidos os parâmetros dos testes).
  • Object Repository (Onde estão os objetos que o gravador de testes grava).
  • Profiles (Podem ser definidos perfis de utilizador onde se podem podem deferir as definições dos testes).
  • Reports (O Katalon Studio gera automaticamente logs com informações acerca dos testes.)
    • Observação: De modo a não carregar o servidor com logs desnecessários pode se adicionar ao script que executa os testes o seguinte comando:
      • rm -rf [caminho]/SistemaTestes/Reports/202*
  • Script (Onde estão guardados os scripts de teste).
  • Test Cases.
  • Test Suites (Conjunto de testes).

Linha de comandos

Para executar os testes no servidor é necessário executar o comando ./katalon {opções}

Exemplo:

./katalon -noSplash -runMode=console -projectPath=[caminho projeto] -retry=1 -retryStrategy=immediately -testSuitePath=”Test Suites/[nome do teste]” -browserType=”Chrome (headless)” -executionProfile=”default” -apiKey=”********-****-****-****-************” –config -proxy.auth.option=NO_PROXY -proxy.system.option=NO_PROXY -proxy.system.applyToDesiredCapabilities=true

  • -runMode=console
    • Permite a execução do teste na consola
  • -projectPath
    • Especifica a pasta onde se encontra o projeto.
  • -retry=1
    • Indica quantas vezes o teste é executado em caso de falha
  • -retryStrategy:
    • Indica como é que os testes que falham voltam a ser executados
      • Immediately:
        • Assim que o teste falha volta a ser executado
      • allExecutions:
        • No fim de todos os testes, voltam a ser executados todos os testes.
      • failedExecutions:
        • No fim de todos os testes, voltam a ser executados apenas os testes que falharam
    • testSuitePath:
      • Indica qual o teste a ser executado
    • browserType:
      • Define o browser onde o teste vai ser executado
    • executionProfile
      • Perfil de execução

Existem outras opções para o comando, podem ser encontradas em https://docs.katalon.com/docs/katalon-runtime-engine/command-syntax-command-lineconsole-mode-execution

Sugestão

De modo a simplificar a chamada do comando sugere-se a criação de um script executável.

vi [nome script].sh

// Adicionar comando katalon

./katalon {opções}

// Para apagar os logs gerados automaticamente

rm -rf [caminho]/SistemaTestes/Reports/202*

Compilar: chmod +x [nome script].sh

Para execução do comando basta executar o comando:

./[nome script].sh

Considerações Importantes

Tendo em conta a versão do Katalon ser a 6 temos de ter em consideração pequenas alterações para que os testes funcionem.

  • Alterar tamanho da janela para 929×879
    • Criar ficheiro “com.kms.katalon.core.webui.chrome (headless).properties” na pasta “[Project Path]/settings/internal/”
    • Inserir “{“HEADLESS_DRIVER”:{“args”:[“-window-size\u003d929,879″]}}”
  • Uma vez que a execução em browser headless é mais rápida por vezes os elementos ainda não estão visíveis, nesses casos aconselha-se a usar o seguinte comando:
    • WebUI.delay(1)
  • Não esquecer de alterar a data nos campos, obtendo a data atual.
  • Caso o comando WebUI.setText(…) não estiver a funcionar existe a seguinte alternativa de comandos:
    • WebUI.sendKeys(findTestObject(…), Keys.chord(Keys.CONTROL,’a’))
    • WebUI.sendKeys(findTestObject(…), Keys.chord(Keys.DELETE))
    • WebUI.sendKeys(findTestObject(…), texto)