how use testng framework
Nos últimos tutoriais, lançamos luz sobre os comandos WebDriver básicos e comumente usados. Também aprendemos sobre as estratégias de localização de elementos de IU e sua inclusão nos scripts de teste. E, portanto, desenvolvemos nosso próprio primeiro script de teste de automação WebDriver .
Continuando com este tutorial, discutiríamos tudo sobre TestNG, seus recursos e seus aplicativos.
TestNG é uma estrutura avançada projetado de forma a potencializar os benefícios dos desenvolvedores e testadores. Para pessoas que já usam o JUnit, TestNG não parece diferente com alguns recursos avançados. Com o início dos frameworks, JUnit ganhou um enorme popularidade entre os aplicativos Java, desenvolvedores Java e testadores Java, com aumento notável na qualidade do código.
Veja também=> Tutorial JUnit e seu uso em scripts Selenium
Apesar de ser uma estrutura simples e fácil de usar, JUnit tem suas próprias limitações que dão origem à necessidade de trazer TestNG na imagem. TestNG foi criado por um programador aclamado chamado “Cedric Beust”. TestNG é uma estrutura de código aberto que é distribuída sob a licença de software Apache e está prontamente disponível para download.
Falar sobre o nosso requisito para introduzir TestNG com WebDriver é que ele fornece um formato de resultado de teste eficiente e eficaz que pode, por sua vez, ser compartilhado com as partes interessadas para ter um vislumbre da saúde do produto / aplicativo, eliminando assim a desvantagem da incapacidade do WebDriver de gerar relatórios de teste. TestNG tem um mecanismo de tratamento de exceção embutido que permite que o programa seja executado sem terminar inesperadamente.
Ambos TestNG e JUnit pertencem à mesma família de Unit Frameworks, onde TestNG é uma versão estendida do JUnit e é mais amplamente usado na era de teste atual.
O que você aprenderá:
- Características do TestNG
- Instalação TestNG no Eclipse
- Criação do Projeto de Amostra TestNG
- Criando classe TestNG
- Executando o Script TestNG
- Relatórios HTML
- Definindo prioridade em TestNG
- Passo a passo do código
- Anotações TestNG
- Conclusão
- Leitura recomendada
Características do TestNG
- Suporte para anotações
- Suporte para parametrização
- Metodologia de execução avançada que não requer a criação de suítes de teste
- Suporte para testes orientados a dados usando provedores de dados
- Permite ao usuário definir prioridades de execução para os métodos de teste
- Suporta ambiente seguro contra ameaças ao executar vários threads
- Suporta prontamente a integração com várias ferramentas e plug-ins como ferramentas de construção (Ant, Maven etc.), Ambiente de Desenvolvimento Integrado (Eclipse).
- Facilita o usuário com meios eficazes de geração de relatórios usando ReportNG
Existem várias vantagens que tornam o TestNG superior ao JUnit. Alguns deles são:
- Anotações avançadas e fáceis
- Os padrões de execução podem ser definidos
- Execução simultânea de scripts de teste
- As dependências do caso de teste podem ser definidas
As anotações são precedidas por um símbolo “@” no TestNG e no JUnit.
Portanto, agora vamos começar com a parte de instalação e implementação.
Grade online para automação de teste de selênio
# 1) LambdaTest
A estrutura do TestNG é melhor utilizada com um Selenium Grid em nuvem, como o LambdaTest, que ajuda a executar testes paralelos em mais de 2.000 navegadores e sistemas operacionais reais, sem o incômodo de manter um Selenium Grid interno.
Você pode obter uma variedade de logs, como logs de comando, logs de rede, logs Selenium brutos, metadados, etc. junto com uma gravação de vídeo completa de seu script de teste Selenium para depuração.
LambdaTest também oferece integrações com várias ferramentas CI / CD, como Jenkins, Travis CI, CircleCI, etc. para testes contínuos. LambdaTest também permite a integração com várias ferramentas de gerenciamento de projeto para fácil registro de bugs.
=> Visite o site do LambdaTestInstalação TestNG no Eclipse
Siga as etapas abaixo para fazer o download e a instalação do TestNG no eclipse:
Passo 1: Inicie o Eclipse IDE -> Clique na opção Ajuda no menu -> Selecione a opção “Eclipse Marketplace ..” no menu suspenso.
Passo 2: Insira a palavra-chave “TestNG” na caixa de texto de pesquisa e clique no botão “Go” conforme mostrado abaixo.
etapa 3: Assim que o usuário clicar no botão “Ir”, os resultados correspondentes à string de pesquisa serão exibidos. Agora o usuário pode clicar no botão Instalar para instalar o TestNG.
Passo 4: Assim que o usuário clicar no botão Instalar, será exibida uma janela para o usuário confirmar a instalação. Clique no botão “Confirmar”.
Etapa 5: Na próxima etapa, o aplicativo solicitará que você aceite a licença e clique no botão “Concluir”.
Etapa 6: A instalação é iniciada agora e o andamento pode ser visto da seguinte forma:
Aconselhamos que reinicie nosso eclipse para refletir as mudanças feitas.
Ao reiniciar, um usuário pode verificar a instalação do TestNG navegando até “Preferências” da opção “Janela” na barra de menu. Consulte a figura a seguir para o mesmo.
(Clique na imagem para ver ampliada)
Criação do Projeto de Amostra TestNG
Vamos começar com a criação do projeto TestNG no Eclipse IDE.
Passo 1: Clique na opção Arquivo no menu -> Clique em Novo -> Selecionar Projeto Java.
Passo 2: Insira o nome do projeto como “DemoTestNG” e clique no botão “Avançar”. Como etapa de conclusão, clique no botão “Concluir” e seu projeto Java está pronto.
etapa 3: A próxima etapa é configurar a biblioteca TestNG no projeto Java recém-criado. Para o mesmo, clique na guia “Bibliotecas” em Configurar caminho de construção. Clique em “Adicionar biblioteca” conforme mostrado abaixo.
Passo 4: O usuário seria submetido a uma caixa de diálogo promovendo-o a selecionar a biblioteca a ser configurada. Selecione TestNG e clique no botão “Avançar” conforme mostrado abaixo na imagem. Ao final, clique no botão “Concluir”.
O TestNG agora está adicionado ao projeto Java e as bibliotecas necessárias podem ser vistas no explorador de pacotes ao expandir o projeto.
Adicione todas as bibliotecas e jars do Selenium baixados no caminho de construção do projeto, conforme ilustrado no tutorial anterior.
Criando classe TestNG
Agora que fizemos toda a configuração básica para começar a criação do script de teste usando TestNG. Vamos criar um script de amostra usando TestNG.
Passo 1: Expanda o projeto “DemoTestNG” e vá até a pasta “src”. Clique com o botão direito do mouse no pacote “src” e navegue até Novo -> Outro.
Passo 2: Expanda a opção TestNG e selecione a opção de classe “TestNG” e clique no botão “Avançar”.
etapa 3: Forneça os detalhes necessários da seguinte forma. Especifique a pasta de origem, o nome do pacote e o nome da classe TestNG e clique no botão Concluir. Como é evidente na imagem abaixo, o usuário também pode verificar várias notações do TestNG que seriam refletidas no esquema da classe de teste. As anotações do TestNG serão discutidas posteriormente nesta sessão.
A classe TestNG mencionada acima seria criada com o esquema padrão.
Agora que criamos a base básica para o script de teste TestNG, vamos injetar o código de teste real. Estamos usando o mesmo código que usamos na sessão anterior.
Cenário:
- Inicie o navegador e abra “gmail.com”.
- Verifique o título da página e imprima o resultado da verificação.
- Digite o nome de usuário e senha.
- Clique no botão Sign in.
- Feche o navegador da web.
Código:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Explicação do código em relação ao TestNG
1) @Test - @Test é um dos Anotações TestNG . Esta anotação permite que a execução do programa saiba que o método anotado como @Test é um método de teste. Para poder usar diferentes anotações TestNG, precisamos importar o pacote “ importar org.testng.annotations. * ”.
2) Não há necessidade do método main () ao criar scripts de teste usando TestNG. A execução do programa é feita com base em anotações.
3) Em uma declaração, usamos a classe Assert ao comparar o valor esperado e o real. A classe Assert é usada para realizar várias verificações. Para poder usar diferentes afirmações, somos obrigados a importar “ importar org.testng.Assert ”.
Executando o Script TestNG
O script de teste TestNG pode ser executado da seguinte maneira:
=> Clique com o botão direito em qualquer lugar dentro da classe dentro do editor ou na classe java dentro do gerenciador de pacotes, selecione a opção “Executar como” e clique em “TestNG Test”.
O resultado do TestNG é exibido em duas janelas:
- Janela de console
- Janela de resultado do TestNG
Consulte os screencasts abaixo para as janelas de resultados:
interface de usuário de banco de dados e software de consulta
(Clique na imagem para ver ampliada)
Relatórios HTML
TestNG vem com uma grande capacidade de gerar relatórios HTML legíveis e compreensíveis para as execuções de teste. Esses relatórios podem ser visualizados em qualquer um dos navegadores e também podem ser visualizados usando o suporte de navegador integrado do Eclipse.
Para gerar o relatório HTML, siga as etapas abaixo:
Passo 1: Execute a classe TestNG recém-criada. Atualize o projeto que contém a classe TestNG clicando com o botão direito sobre ele e selecionando a opção “Atualizar”.
Passo 2: Uma pasta nomeada como “saída de teste” deve ser gerada no projeto no nível da pasta “src”. Expanda a pasta “test-output” e abra o arquivo “emailable-report.html” com o navegador Eclipse. O arquivo HTML exibe o resultado da execução recente.
etapa 3: O relatório HTML deve ser aberto dentro do ambiente eclipse. Consulte a imagem abaixo para o mesmo.
Atualize a página para ver os resultados de novas execuções, se houver.
Definindo prioridade em TestNG
Fragmento de código
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Passo a passo do código
Se um script de teste for composto por mais de um método de teste, a prioridade e a sequência de execução podem ser definidas usando a anotação TestNG “@Test” e definindo um valor para o parâmetro “prioridade”.
No trecho de código acima, todos os métodos são anotados com a ajuda @Test e as prioridades são definidas como 0, 1 e 2. Portanto, a ordem de execução em que os métodos de teste seriam executados é:
- Método 1
- Método 2
- Método 3
Suporte para anotações
Existem várias anotações fornecidas no TestNG e JUnit. A diferença sutil é que TestNG fornece mais algumas anotações avançadas para JUnit.
Anotações TestNG
A seguir está a lista das anotações mais úteis e favoráveis no TestNG:
Anotação | Descrição |
---|---|
@Depois da aula | A anotação notifica o sistema de que o método anotado como @AfterClass deve ser executado após a execução do último método de teste dentro da mesma classe de teste |
@Teste | A anotação notifica o sistema de que o método anotado como @Test é um método de teste |
@BeforeSuite | A anotação notifica o sistema que o método anotado como @BeforeSuite deve ser executado antes de executar os testes em todo o pacote |
@AfterSuite | A anotação notifica o sistema que o método anotado como @AfterSuite deve ser executado após a execução dos testes em todo o pacote |
@BeforeTest | A anotação notifica o sistema que o método anotado como @BeforeTest deve ser executado antes de executar qualquer método de teste dentro da mesma classe de teste |
@AfterTest | A anotação notifica o sistema de que o método anotado como @AfterTest deve ser executado após a execução de qualquer método de teste dentro da mesma classe de teste |
@Antes da aula | A anotação notifica o sistema que o método anotado como @BeforeClass deve ser executado antes de executar o primeiro método de teste dentro da mesma classe de teste |
@BeforeMethod | A anotação notifica o sistema de que o método anotado como @BeforeMethod deve ser executado antes de executar todo e qualquer método de teste na mesma classe de teste |
@AfterMethod | A anotação notifica o sistema que o método anotado como @AfterMethod deve ser executado após a execução de todo e qualquer método de teste dentro da mesma classe de teste |
@BeforeGroups | A anotação notifica o sistema que o método anotado como @BeforeGroups é um método de configuração que alista um grupo e que deve ser executado antes de executar o primeiro método de teste do grupo |
@AfterGroups | A anotação notifica o sistema que o método anotado como @AfterGroups é um método de configuração que inscreve um grupo e que deve ser executado após a execução do último método de teste do grupo |
Observação : Muitas das anotações mencionadas podem ser exercidas na estrutura JUnit 3 e JUnit 4 também.
Conclusão
Por meio deste tutorial, tentamos familiarizá-lo com uma estrutura de teste baseada em java chamada TestNG. Começamos a sessão com a instalação do framework e avançamos com a criação do script e tópicos avançados. Discutimos todas as anotações fornecidas pelo TestNG. Implementamos e executamos nosso primeiro script de teste TestNG usando anotações e declarações assert.
Resumo do artigo:
- TestNG é uma estrutura avançada projetada de forma a alavancar os benefícios dos desenvolvedores e testadores.
- TestNG é uma estrutura de código aberto que é distribuída sob a licença de software Apache e está prontamente disponível para download.
- TestNG é considerado superior ao JUnit por causa de seus recursos avançados.
- Características do TestNG
- Suporte para anotações
- Metodologia de execução avançada que não requer a criação de suítes de teste
- Suporte para parametrização
- Suporte para testes orientados a dados usando provedores de dados
- Definir prioridades de execução para os métodos de teste
- Suporta ambiente seguro contra ameaças ao executar vários threads
- Suporta prontamente a integração com várias ferramentas e plug-ins como ferramentas de construção (Ant, Maven etc.), Ambiente de Desenvolvimento Integrado (Eclipse).
- Facilita o usuário com meios eficazes de geração de relatórios usando ReportNG
- Vantagens do TestNG em relação ao JUnit
- Adicionadas anotações avançadas e fáceis
- Os padrões de execução podem ser definidos
- Execução simultânea de scripts de teste
- As dependências do caso de teste podem ser definidas
- TestNG está disponível gratuitamente e pode ser facilmente instalado no Eclipse IDE usando o Eclipse Market.
- Após a instalação, TestNG estaria disponível como uma biblioteca no ambiente Eclipse.
- Crie um novo projeto Java e configure o caminho de construção usando uma biblioteca TestNG.
- Crie uma nova classe TestNG expandindo o projeto TestNG criado e vá até sua pasta “src”. Clique com o botão direito do mouse no pacote “src” e navegue até Novo -> Outro. Selecione a opção de classe TestNG.
- @Test é uma das anotações fornecidas pelo TestNG. Esta anotação permite que a execução do programa saiba que o método anotado como @Test é um método de teste. Para poder usar diferentes anotações TestNG, precisamos importar o pacote “ importar org.testng.annotations. * ”.
- Não há necessidade do método main () ao criar scripts de teste usando TestNG.
- Usamos a classe Assert ao comparar o valor esperado e o valor real. A classe Assert é usada para realizar várias verificações. Para poder usar diferentes afirmações, somos obrigados a importar “ importar org.testng.Assert ”.
- Se um script de teste for composto de mais de um método de teste, a prioridade e a sequência de execução podem ser definidas usando a anotação TestNG “@Test” e definindo um valor para o parâmetro “prioridade”.
- O TestNG tem a capacidade de gerar relatórios de execução de teste legíveis por humanos automaticamente. Esses relatórios podem ser visualizados em qualquer um dos navegadores e também podem ser visualizados usando o suporte de navegador integrado do Eclipse.
Próximo Tutorial # 13 : Prosseguindo com os próximos tutoriais da série Selenium, nos concentraríamos em lidar com os vários tipos de elementos da web disponíveis nas páginas da web. Portanto, no próximo tutorial, concentraremos nosso foco em “dropdowns” e exercitaremos suas estratégias de manuseio. Também discutiríamos sobre a classe Select do WebDriver e seus métodos para selecionar valores nos menus suspensos.
Uma observação para os leitores : Enquanto nosso próximo tutorial da série Selenium está no modo de processamento, os leitores podem começar a criar seus próprios scripts WebDriver básicos usando a estrutura TestNG.
Para obter scripts e conceitos mais avançados, inclua o máximo de anotações e afirmações em suas classes TestNG e execute-as usando o ambiente TestNG. Além disso, analise os relatórios HTML gerados pelo TestNG.
Leitura recomendada
- Como usar o Firebug para criar scripts do Selenium - Tutorial # 4 do Selenium
- Introdução ao JUnit Framework e seu uso no Selenium Script - Selenium Tutorial # 11
- Aprenda a usar anotações TestNG no Selenium (com exemplos)
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Como localizar elementos em navegadores Chrome e IE para construir scripts do Selenium - Tutorial do Selenium nº 7
- Criação do Selenium Framework e acesso aos dados de teste do Excel - Selenium Tutorial # 21
- Criando Genéricos e Conjuntos de Testes - Tutorial do Selenium nº 22
- Tutoriais detalhados do Eclipse para iniciantes