A anotação é usada repetidamente por desenvolvedores para descrever um trecho de código que é inserido no programa ou na lógica de negócios usada para controlar o fluxo de métodos na linguagem de programação Java. As anotações desempenham um papel importante no Test Next Generation (TestNG), uma estrutura de automação amplamente usada pela Selenium. Os testadores precisam entender o funcionamento e os usos de cada anotação enquanto trabalham no TestNG.
Vamos nos concentrar em diferentes tipos de anotações TestNG para Selenium Webdriver e seus usos. Mas antes de entrar neste tópico, revisaremos alguns pontos sobre o Selenium Webdriver.
O que é Selenium Webdriver?
É um grupo de APIs de código aberto usado para automatizar o teste de aplicativos da web. O novo recurso do Selenium Webdriver é a inclusão da API Webdriver. Selenium Webdriver foi desenvolvido para o melhor suporte nas páginas da web dinâmicas.
Selenium 1.0 + Webdriver=Selenium 2.0
A principal vantagem do Selenium Webdriver é que ele é simples de usar e a interface de programação é fácil de entender com conhecimento básico de linguagens de programação e suporte aprimorado para problemas de teste de aplicativos da web.
Antes de começar a escrever testes com TestNG:
- Instale o TestNG no Eclipse
- Java Development Kit (JDK)
- Adicione dependência TestNG Maven para seu pom.xml
- Comece a escrever o cenário de teste com a ajuda das anotações TestNG (Observação: as anotações podem ser usadas no Java versão 1.5 ou superior)
- Converta seu código de teste no arquivo testng.xml
- Compile e execute seu teste.
Anotações, explicações e exemplos do TestNG
As anotações variam de projeto para projeto, dependendo de seus requisitos. Embora os requisitos mudem, o fluxo de execução será o mesmo para todos os projetos. A seguir estão as anotações do TestNG, com explicações e exemplos para cada uma abaixo.
- @BeforeSuite
- @BeforeTest
- @BeforeClass
- @BeforeMethod
- @Test
- @AfterMethod
- @AfterClass
- @AfterTest
- @AfterSuite
O fluxo de trabalho do TestNG é mostrado abaixo:
Neste exemplo de fluxo de trabalho TestNG, @Test é a anotação base neste fluxo de trabalho TestNG. É contínuo com @Method, que é executado antes e depois da execução de @Test. Agora, @Class será executado antes e depois da execução de @Method e assim por diante.
Agora, vamos ver cada um da lista de anotações:
1) @Test
Em qualquer script de automação, a anotação @Test é a parte importante, onde escrevemos o código/lógica de negócios. Se algo precisa ser automatizado, esse código específico precisa ser inserido no método de teste. O método de teste então executa @Test passando atributos. Aqui estão alguns atributos que são usados para passar nos métodos de teste.
- dependsOnGroups : Neste atributo, podemos obter um grupo da lista para o método particular do qual depende.
Exemplo: @Test (groups={“Organization”,”Employee”}) - alwaysRun : Este atributo pode ser usado sempre que tivermos uma situação para executar um método continuamente, mesmo se os parâmetros do processo falharem.
Exemplo: @Test (alwaysRun=true) - dataProviderClass : dataProviderClass é a classe usada para fornecer os dados ao dataProvider, então vamos dar o nome da classe “Computador”.
- dataProvider : É utilizado para fornecer quaisquer dados para parametrização.
Exemplo: @Test (dataProvider=”Computer”) - DependsOnMethods : os métodos são usados para executar seu método dependente da mesma maneira que o DependsOnMethods funciona.
Exemplo: @Test (DependsOnMethods={“start”,”init”})
2) @BeforeMethod e @AfterMethod
@BeforeMethod permite que o método seja executado antes da execução de cada método @Test, enquanto @afterMethod é executado após a execução de cada método @Test.
<"Saída:✓ Cada vez que @BeforeMethod é executado para o método @Test, segue-se a saída do código acima. Em seguida, o método accountLogin () será executado antes da execução de updateProfile () e o método accountLogout () será a última etapa. Novamente, o método accountLogin () será executado antes da execução de bankBalance () e então termina com o método accountLogout (). Primeiro método @Test: Segundo método @Test: O método anotado com @BeforeClass será executado apenas uma vez antes de o primeiro método de teste nessa classe particular ser chamado. Você pode então inicializar ou configurar a configuração para todos os métodos de teste convencionais. A anotação @AfterClass será executada apenas uma vez, após todos os métodos de teste dessa classe em particular terem sido chamados. Na saída a seguir, você pode ver que @BeforeClass e @AfterClass são executados no início e no final, portanto, podemos concluir que ambos são usados apenas uma vez. <"Saída:✓ Quando executamos o código acima, a saída será o método accountLogin (). Ele é executado antes de executar o método updateProfile () e void bankBlance (). Durante a etapa final, o método accountLogout () é executado. Os métodos @BeforeTest são executados após @beforeSuite. Para estruturas como teste de fumaça, @BeforeTest é usado para criar um conjunto de dados inicial e antes de executar outros métodos de teste, enquanto a anotação @AfterTest será executada após a conclusão dos outros testes. Com a ajuda da anotação @BeforeSuite, podemos configurar e iniciar os Webdrivers Selenium. A anotação @AfterSuite é usada para parar os Webdrivers Selenium. Quando você está trabalhando com anotações, é essencial verificar se o seu sistema está instalado com Java versão 1.5, porque a anotação não funcionará corretamente de outra forma. Caso você esteja trabalhando com anotações em versões mais antigas do Eclipse, provavelmente receberá um erro informando que anotações não são compatíveis com seu sistema. Neste tutorial, discutimos algumas das anotações importantes e alguns atributos que os testadores de software usam com frequência. Algumas outras anotações que também são usadas incluem @AfterGroups e @BeforeGroups. No entanto, eles são importantes quando você está trabalhando com grupos em seu projeto. A partir das anotações acima, escolha a certa para o seu projeto e use-a como achar melhor. Os exemplos acima são apenas o básico. O Selenium Webdriver pode ser complexo e robusto. Para um mergulho mais profundo na programação com Selenium, considere nosso Selenium Training Course , que cobre o Selenium 3.0 , Selenium Grid, habilidades essenciais de Java, Maven e muito mais. Ou se você deseja dominar uma ampla variedade de idiomas além do Selenium, nosso Programa de mestres do engenheiro de teste de automação inclui Core Java, Docker e outras ferramentas, bem como uma compreensão completa das práticas de automação de teste DevOps. Ambos os cursos oferecem projetos práticos e laboratórios práticos que proporcionam aos alunos um ambiente sem estresse para praticar com a frequência necessária.
3) @BeforeClass e @AfterClass
4) @BeforeTest e @AfterTest
5) @BeforeSuite e @AfterSuite