No OpenTest, quando um teste apresenta alguma falha na execução, o teste é interrompido. Muitas vezes esse comportamento é benáfico. No entanto, quando uma etapa de teste não ageta as etapas seguintes, às vezes é mais prático continuar a execução do teste, realizando mais verificações de uma vez e minimizando o tempo de execução e conservando os recursos computacionis. Isso também pode ajudar na solução de problemas de etapas de teste com falha, pois várias falhas serão mostradas em um único relatório de execução de teste;
A funcionalidade descita acima pode ser alcançada usando o recurso "pontos de verificação"(checkpoints). Quualquer ação de teste pode ser transformada em um "checkpoint" passando como argumento a variável global $checkpoint
com o valor true
:
# This verifies the element's visibility, but doesn't
# fail the test right away if the step fails
- description: Verifique a visibilidade da caixa de consulta
action: org.getopentest.selenium.AssertElementVisible
args:
locator: { name: q }
$checkpoint: true
Por exemplo, se considerar um teste que navega par a página inicial do GitHub e verifica que:
- A caixa de texto de pesquisa está visivel
- A caixa de texto de pesquisa está vazia
- O menu "Explorer" está visivel
Marcaremos as três etapas de verificação como pontos de verificação, pois não queremos que caso ocorra uma falha, e que a execução do teste seja interrompida. Observe o argumento $checkpoint
que adicionamos a essas ações de teste:
description: Procure o repositório "react" no site do GitHub
actors:
- actor: WEB
segments:
- segment: 1
actions:
- description: Navegando até a página inicial do GitHub
action: org.getopentest.selenium.NavigateTo
args:
url: https://github.com
- description: Verifique se a textbox de pesquisa está visível
action: org.getopentest.selenium.AssertElementVisible
args:
locator: { name: q }
$checkpoint: true
- description: Verifique se a textbox de pesquisa está vazia
action: org.getopentest.selenium.AssertElementText
args:
locator: { name: q }
text: ""
$checkpoint: true
- description: Verifique se o menu "Explore" está visível
action: org.getopentest.selenium.AssertElementVisible
args:
locator: { css: "div.HeaderMenu a[href='/explore']" }
$checkpoint: true
Se alterarmos as três etapas de verificação para fazê-las falhar, utilizando locators inexistentes, o teste ainda continuará até o final, mas ainda será marcado como com falha e o relatório de execução ficará assim: