Grupos TestNG: Incluir, Excluir com Exemplo - Tutorial Selenium

Índice:

Anonim

TestNG é uma estrutura de teste que cobre diferentes tipos de designs de teste, como teste de unidade, funcional, ponta a ponta, interface do usuário e teste de integração.

Você pode executar um único ou vários pacotes (pacote aqui significa encapsular um grupo de classes em um formato de direcionador adequado) criando XML e executá-lo por meio do maven.

Neste tutorial, você aprenderá-

  • Grupos TestNG com exemplo
  • Defina o caminho do maven e do Java na variável de ambiente (para usuário do Windows)
  • Introdução ao XML e como fazer arquivos XML
  • Outro mecanismo em vez do agrupamento é “excluir” ou “incluir” no XML de teste
  • Como executar código usando arquivo XML (demonstração em vídeo)

Grupos TestNG com exemplo

Usamos grupos no teste quando,

  • Não queremos definir métodos de teste separadamente em classes diferentes (dependendo da funcionalidade) e
  • Ao mesmo tempo, deseja ignorar (não executar) alguns casos de teste como se eles não existissem no código.
  • Então, para fazer isso, temos que agrupá-los. Isso é feito usando o mecanismo de "inclusão" e "exclusão" compatível com testNG.

No exemplo a seguir, mostramos a sintaxe de como usar grupos no arquivo XML.

@Test (groups = {"bonding", "strong_ties"}) 

Aqui estamos usando 2 nomes de grupo, ou seja, "ligação" e "strong_ties" (esses são nomes lógicos que podem ser alterados de acordo com seu desejo).

A tag define o início de grupos em XML.

Personalize seu XML para selecionar o grupo mencionado nas classes de teste. Abaixo mencionado é a sintaxe de como declarar grupos em arquivo XML, por exemplo

Portanto, vamos supor que haja 10 métodos de teste em uma classe.

Fora deles,

  • 6 métodos são marcados no grupo de "ligação" e
  • 4 estão no grupo "strong_ties"

Seguindo em frente, vamos definir o caminho maven / Java e usar o IDE Eclipse para demonstrar o uso de grupos usando arquivos XML no projeto maven baseado em Java.

Defina o caminho do maven e do Java na variável de ambiente (para usuário do Windows)

Consulte https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Introdução ao XML e como fazer arquivos XML

  • O arquivo XML (Extensible Markup Language) no framework Maven contém as informações de um ou mais testes e é definido pela tag .
  • As informações de teste em XML são representadas pela tag e podem conter uma ou mais classes TestNG.
  • Uma classe Java que contém a anotação @Test acima dos métodos de teste é definida como métodos TestNG.

Várias tags são usadas em uma sequência para construir um xml testNG funcional como , e

  • A primeira é a tag , que contém um nome lógico que define informações completas para o testNG relatado para gerar o relatório de execução.
  • O segundo é , observe que é o nome lógico que contém as informações do relatório de execução de teste, como passar, falhar, pular casos de teste e outras informações como tempo total de execução e informações do grupo
  • O terceiro é , com.group.guru99 é o pacote usado e o nome da Classe de Teste é TC_Class1.

Estaremos usando este XML para o lado negativo do próximo vídeo.

Outro mecanismo em vez do agrupamento é "excluir" ou "incluir" no XML de teste

Suponha que você esteja achando o uso do mecanismo de grupo complexo, então testNG XML facilita a funcionalidade para excluir / incluir um teste.

Excluir Tag : Sintaxe para excluir tag  Incluir Tag : Sintaxe para incluir tag 

Observação: podemos incluir / excluir vários casos de teste uma vez por vez e também funciona com grupos.

Como executar código usando arquivo XML (demonstração em vídeo)

Explicação do código Java e XML com o grupo, excluir e incluir a tag no XML.

  • Cenário : Inicie o site demo Banking do Guru99, verifique algumas coisas na página de login depois disso, insira as credenciais e verifique novamente algumas coisas novas no aplicativo quando estiver conectado.

Nota : Cada etapa que você codifica deve ser declarada em métodos separados, mas quando executada, ela executará métodos de teste dependendo das entradas no arquivo XML.

Método 1 : inicializar o navegador e lançar o URL (tc01LaunchURL ())

Método 2 : verificar o cabeçalho da página de login (tc02VerifyLaunchPage ())

Método 3 : digite o nome do usuário e a senha no formulário de login (tc03EnterCredentials ())

Método 4 : verificar a presença do ID do gerente no painel do usuário (tc04VerifyLoggedInPage ())

Método 5 : verifique mais alguns links no painel do usuário (tc05VerifyHyperlinks ())

Código para nosso cenário:

package com.group.guru99;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;import org.testng.Assert;import org.testng.annotations.Test;public class TC_Class1 {public static final WebDriver webDriver = new FirefoxDriver () ;;String launchPageHeading = "// h3 [text () = 'Banco Guru99']";final String userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";final String userName_value = "mngr28642", password_value = "ydAnate";final String managerID = "// td [contains (text (), 'ID do gerenciador')]";final String newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Este caso de teste irá inicializar o webDriver* /@Test (groups = {"bonding", "strong_ties"})public void tc01LaunchURL () {webDriver.manage (). window (). maximize ();webDriver.manage (). timeouts (). implicitlyWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Irá verificar a presença de título na página de login* /@Test (grupos = {"bonding"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"O cabeçalho da página inicial não é exibido");System.out.println ("O cabeçalho da página inicial é exibido");}/ *** Este caso de teste irá inserir o nome de usuário, senha e, em seguida, clicar em* botão de login* /@Test (groups = {"bonding", "strong_ties"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (userName_element)). sendKeys (userName_value);webDriver.findElement (By.xpath (password_element)). sendKeys (password_value);webDriver.findElement (By.xpath (signIn_element)). click ();}/ *** Este caso de teste verificará a presença do ID do gerente no DashBoard* /@Test (grupos = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Rótulo de ID do gerente não é exibido");System.out.println ("O rótulo do ID do gerenciador é exibido");}/ *** Este caso de teste verificará a presença de um novo link de cliente* E link de transferência de fundos no painel esquerdo* /@Test (grupos = {"bonding"})public void tc05VerifyHyperlinks () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"O hiperlink do novo cliente não é exibido");System.out.println ("Novo hiperlink de cliente é exibido");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"O hiperlink de transferência de fundos não é exibido");System.out.println ("O hiperlink de transferência de fundos é exibido");}}

Observação: as credenciais são válidas apenas por 20 dias, portanto, se você estiver tentando executar um código em sua máquina local, poderá enfrentar um erro de credenciais inválidas. Encontre abaixo as etapas para gerar suas credenciais de login:

  1. Inicie http://www.demo.guru99.com
  2. Digite seu ID de e-mail na caixa.
  3. Clique em entrar e veja seus detalhes de login na tela.

Explicação do código:

Conforme mencionado acima, criamos 5 casos de teste para realizar cada ação em métodos independentes.

Você pode observar que a cada método, associamos um parâmetro de grupo contendo algum valor.

Basicamente, esses são os nomes dos grupos de diferenciação, ou seja, "fortes" e "vínculos".

  • O primeiro e o terceiro métodos são marcados como "bonding", "strong_ties", o que significa que se o XML for atualizado em qualquer um do grupo, este caso de teste será executado.
  • O segundo método é marcado apenas para o grupo de "ligação", isso significa que, se o XML for atualizado com o grupo de ligação. Somente nesse caso, este caso de teste será executado.
  • O quarto caso de teste é marcado para o grupo strong_ties, o que significa que este caso de teste só será executado se o XML for atualizado com o nome do grupo strong_ties.
  • Por último, mas não menos importante, o quinto caso de teste é anexado ao grupo de ligação, o que significa que este caso de teste só será executado se o XML for atualizado com o nome do grupo de ligação.

Portanto, no geral, temos 4 cenários;

  1. Queremos executar todos os casos de teste, independentemente do nome do grupo. Nesse caso, removeremos a tag Group do XML em execução.
  1. Queremos executar alguns testes de caso de teste que estão relacionados apenas a qualquer um dos grupos, ou seja, strong_ties ou ligação
  • Consulte:

  • Neste vídeo, o parâmetro Group é comentado por execução de XML. Portanto, você verá que todos os casos de teste foram executados.
  • Na continuação do vídeo, agora que incluímos o nome do grupo em XML, você pode ver apenas os casos de teste específicos desse grupo em execução.
  1. Estamos usando o mecanismo de exclusão para excluir o caso de teste:
  • Por favor se refira

  • Você vê que usamos excluir poucos casos de teste (tc02) ao escrever seus nomes em XML em execução. No resultado final, os casos de teste mencionados não foram executados.
  1. Por último, estamos usando o mecanismo de teste de inclusão para incluir os casos de teste (tc01LaunchURL, tc03EnterCredentials e tc05VerifyHyperlinks)
    • Por favor se refira

    • Neste vídeo, você verá que os casos de teste mencionados em XML estão sendo executados apenas durante a execução do teste.

    Faça download do código do URL mencionado, ele conterá todos os tipos de testXML:

    Baixe o código acima

    Conclusão

    Aprendemos aqui uma maneira relativamente nova de executar casos de teste usando XML no projeto Maven.

    Começamos fornecendo uma breve introdução sobre testNG e continuamos com as especificações técnicas completas de Grupos, excluir e incluir.