Dojo Selenium Grid
Passo 5 - Criando estratégia de teste em paralelo
Para a execução de testes em paralelo, ou seja, mais de um teste ao mesmo tempo seja no mesmo browser ou em browsers diferentes é necessário ter algum código ou abordagem para gerar o paralelismo.
O TestNG possui um suporte nativo ao paralelismo. Para isso precisamos efetuar uma modificação e uma criação de arquivo.
Criação de arquivo
O TestNG executa seus testes através de um arquivo XML. Nós não enxergamos isso porque a IDE gerencia tudo “por debaixo dos panos”. Mas para executar em paralelo precisamos criar um arquivo XML, com qualquer nome como o exemplo abaixo:
<suite name="Suite" parallel="tests" thread-count="3" >
<test name="Teste1">
<parameter name="browser" value="meuBrowser1"/>
<classes>
<class name="pacote.ClasseDeTeste"/>
</classes>
</test>
<test name="Teste2">
<parameter name="browser" value="meuBrowser2"/>
<classes>
<class name="pacote.ClasseDeTeste"/>
</classes>
</test>
</suite>
O arquivo acima, que é uma suite de teste possui um atributo parallel
para os testes (toda a tag test
) que estiver neste arquivo. O thread-count
é o número de execuções simultâneas.
Cada tag test
passa um parâmetro browser
com browser que desejamos executar. Para a execução é necessário informar qual(is) classe(s) de teste desejamos executar. Devemos informar o nome completo no caso de classes
. Há outras possibilidades como package
.
Refatoração
É necessário, no método de pré-condição da classe base inserir um parâmetro, que será injetado pelo arquivo XML no momento da execução.
Também é necessário informar a anotação @Parameters
informando o nome do parâmetro no arquivo XML.
@BeforeMethod
@Parameters("browser")
public void preCondicao(@Optional("chrome") String browser) {
// maquica de inicialização do browser
}
A execução do paralelismo sempre deve ser feita através do arquivo XML.
A anotação dentro do parâmetro serve para a execução sem o paralelismo, caso você queira executar apenas um teste (digamos que você esta refatorando, criando ou resolvendo um problema nele) o browser que será passado, caso você não informe será o opcional.
< Voltar | Lista de passos |