Table of Contents

Testes de Automação

You are here:

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)