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
- Registo de conta
- Donwload
- Descomprimir pasta
- Abrir ficheiro executável.(katalon.exe)
Criar Projeto
- Selecionar “File>New>Project


Criar Novo Teste
- Iniciar gravação

- Inserir URL e clicar em Record

- Realizar teste
- Guardar o Script

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

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*
- 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:
- 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
- Immediately:
- testSuitePath:
- Indica qual o teste a ser executado
- browserType:
- Define o browser onde o teste vai ser executado
- executionProfile
- Perfil de execução
- Indica como é que os testes que falham voltam a ser executados
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)