assertions selenium using junit
Este Tutorial do Selenium em assertions explica o que são assertions no Selenium e os diferentes tipos de assertions e métodos de assertion usando Junit e TestNG Frameworks:
como você abre um arquivo dat no windows
Asserções são usadas para validar um caso de teste e nos ajudam a entender se um caso de teste foi aprovado ou reprovado. A afirmação é considerada atendida se o resultado real de uma aplicação corresponder ao resultado esperado.
Ao automatizar aplicativos da web usando Selenium, precisamos validar nossos testes para verificar se eles estão funcionando conforme o esperado ou não(isto é, se o resultado de um caso de teste for aprovado / reprovado).
=> Dê uma olhada no guia para iniciantes do Selenium aqui.
Um caso de teste é considerado aprovado somente se todas as afirmações forem atendidas. As afirmações no Selenium podem ser tratadas por métodos predefinidos de estruturas Junit e TestNG, que serão explicados em detalhes neste artigo.
O que você aprenderá:
- Afirmações no selênio
- Tipos de afirmações no selênio
- Métodos Junit Assert
- Métodos TestNG Assert
- Programas de amostra para afirmações
- Conclusão
Afirmações no selênio
As asserções são usadas para realizar vários tipos de validações nos casos de teste, o que, por sua vez, nos ajuda a decidir se o caso de teste foi aprovado ou reprovado. Ce consideramos um teste bem-sucedido se for executado sem exceção.
Tutorial de vídeo sobre afirmações
Tipos de afirmações no selênio
Existem dois tipos de asserções no Selenium e a categorização depende de como a asserção se comporta depois que uma condição é aprovada ou reprovada.
Aqui, discutiríamos dois tipos de afirmações em Selênio :
- Asserções duras
- Asserções suaves
Clique aqui para ver uma amostra casos de teste para testar asserções.
# 1) Afirmações concretas (ou simplesmente afirmações)
Uma asserção dura não continua com a execução até que a condição de asserção seja atendida.
Assertions hard geralmente geram um erro de assertion sempre que uma condição de assertion não for atendida. O caso de teste será imediatamente marcado como Falha quando uma condição de afirmação definitiva falhar.
Um cenário para usar esse tipo de afirmação é que, quando você deseja verificar se você se conectou corretamente e falhou no teste se não fez um login bem-sucedido, já que não há sentido em prosseguir se a pré-condição ( login) em si falha.
Vejamos outro exemplo ilustrado aqui:
Considere um caso de teste para afirmar o título de uma página da web.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir”); @BeforeTest public void SetDriver(){ //Mention the location of ChromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
No exemplo, a variável ‘ActualTitle’ conterá o texto do título da automação. ‘ExpectedTitle’ contém os dados de string esperados. Assert.assertEquals () verifica se os dois textos são iguais. O caso de teste acima será aprovado e continuará para a próxima linha de execução, pois o texto real e o texto esperado são os mesmos.
Console:
Assert passou.
PASSADO: VerifyTitle
O mesmo caso de teste, quando falhou, lançará uma exceção e interromperá a execução nessa instância.
Agora, vamos mudar o Título Esperado para o errado.
public class LearnAssertions { WebDriver driver; //Store current project workspace location in a string variable ‘path’ String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ //Mention the location of chromeDriver in localsystem System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created- Chrome browser is opened driver.manage().window().maximize(); } @Test public void verifyTitle() { driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Welcome to Amazon”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); } @AfterTest public void closedriver(){ //closes the browser instance driver.close(); }
Console:
java.lang.AssertionError:esperado (Bem-vindo à Amazon)masencontrado (Amazon.com: Compras online de eletrônicos, roupas, computadores, livros, DVDs e muito mais)
No console, podemos ver que a instrução print foi ignorada (System.out.println), pois a falha foi encontrada na instrução Assert e gerou uma exceção.
# 2) Asserções suaves
Uma asserção suave continua com a próxima etapa da execução do teste, mesmo se a condição de asserção não for atendida.
Asserções flexíveis são o tipo de asserções que não lançam uma exceção automaticamente quando uma declaração falha, a menos que seja solicitada. Isso é útil se você estiver fazendo várias validações em um formulário, dos quais apenas algumas validações têm impacto direto na decisão do status do caso de teste.
Aqui, usamos uma classe chamada SoftAssert e o método assertAll () é chamado para lançar todas as exceções capturadas durante a execução. Quando softAssert é usado, ele executa a asserção e, se uma exceção for encontrada, não é lançada imediatamente, mas continua até que chamemos o método assertAll () para lançar todas as exceções capturadas.
É aconselhável usar objetos diferentes da classe ‘SoftAssert’ para cada caso de teste.
Considere o caso de teste para afirmar o título da página
No exemplo abaixo, dois objetos da classe ‘SoftAssert’ são criados para serem usados em dois casos de teste diferentes.
public class LearnAssertionsSoft { WebDriver driver; //Object of Class SoftAssert is created to use its methods SoftAssert softassert = new SoftAssert(); SoftAssert softassert2 = new SoftAssert(); //current project workspace String path = System.getProperty('user.dir'); @BeforeTest public void SetDriver(){ System.setProperty('webdriver.chrome.driver',path+'\Drivers\chromedriver.exe'); driver = new ChromeDriver();// Object is created - Chrome browser is opened driver.manage().window().maximize(); } //Soft Assertion example - with a failure test case example @Test public void verifyTitle(){ driver.get('https://amazon.in'); String ActualTitle = driver.getTitle(); System.out.println('Actual Title :'+ActualTitle); String ExpectedTitle = 'cameras, books, watches, apparel, shoes and e-Gift Cards. Free Shipping & Cash on Delivery Available.'; //Soft assert applied to verify title softassert.assertEquals(ActualTitle, ExpectedTitle); //If failed, this line gets printed and execution is not halted System.out.println('Assertion 1 is executed”); softassert.assertAll(); } //Soft Assertion example - with a positive flow test case example @Test public void verifyElement(){ WebElement AmazonIcon = driver.findElement(By.Xpath(“//div(contains(@id,’amazon_icon’))); softassert2.assertEquals (true, AmazonIcon.isDisplayed()); softassert2.assertAll(); System.out.println('Icon is displayed'); System.out.println('Assertion 2 is executed”); } @AfterTest public void closedriver(){ driver.close(); //Checks for failures if any and throws them at the end of execution } }
Console:
Título real: Amazon.com: compras online de eletrônicos, roupas, computadores, livros, DVDs e muito mais
Asserção 1 é executada
O ícone é exibido
Asserção 2 é executada
java.lang.AssertionError: As seguintes declarações falharam:
esperado (Bem-vindo à Amazon), mas encontrado (Amazon.com: Compras online de eletrônicos, roupas, computadores, livros, DVDs e mais)
A partir do console, podemos entender que embora a asserção tenha sido uma falha no primeiro caso de teste (verifyTitle), a execução continuou para a próxima linha em que a instrução - 'Assertion 1 is running' foi impressa e somente após softAssert ser chamado, a exceção foi lançada.
Quando usar a asserção dura e suave?
Se você precisa executar todas as etapas de um caso de teste a ser executado mesmo após a falha de uma asserção, e também deseja relatar uma exceção de asserção, então opte por usar Assertions Soft. Usar Soft Assertions em seus scripts de teste é uma boa prática e uma maneira eficaz de lidar com a execução de seu teste
Se você quiser que a execução do caso de teste prossiga somente depois que uma asserção for aprovada ( Por exemplo, Para verificar o login válido e só então executar as outras etapas), use as asserções rígidas.
Métodos Junit Assert
Os vários tipos de métodos Junit Assert são explicados abaixo em detalhes.
# 1) assertEquals
O método assertequals compara o resultado esperado com o resultado real. Ele lança um AssertionError se o resultado esperado não corresponder ao resultado real e termina a execução do programa no método assert equals.
Sintaxe:
public static void assertEquals(String expected, String actual)
Exemplo:
String esperada = “https://www.google.com”;
String actualURL = “https://www.google.com”;
Assert.assertEquals (esperado, actualURL);
# 2) assertTrue
O método asserttrue afirma que uma condição especificada é verdadeira.
Leva dois parâmetros, ou seja, um é a mensagem e o outro é a condição contra a qual a afirmação deve ser aplicada. Ele lança um AssertionError se a condição passada para o método asserttrue não for satisfeita.
Sintaxe:
public static void assertTrue(java.lang.String message, boolean condition)
mensagem - Mensagem a ser exibida em caso de Erro de Asserção.
condição - condição contra a qual a afirmação deve ser aplicada.
Exemplo:
Assert.assertTrue (“Assert True test message”, true);
# 3) assertFalse
O método assert false afirma que uma condição especificada é falsa.
Leva dois parâmetros, ou seja, um é a mensagem e o outro é a condição contra a qual a declaração deve ser aplicada. Ele lança um AssertionError se a condição passada para o método assertfalse não for satisfeita.
Sintaxe:
public static void assertFalse(java.lang.String message, boolean condition)
mensagem - Mensagem a ser exibida em caso de Erro de Asserção.
condição - condição contra a qual a afirmação deve ser aplicada.
Exemplo:
Assert.assertFalse (“Assert false test message” false);
# 4) assertNull
assert null é usado para verificar se o objeto fornecido contém um valor nulo. Ele pega um objeto como parâmetro e lança um AssertionError se o objeto fornecido não contém um valor nulo.
Sintaxe:
public static void assertNull(Object object)
Exemplo:
DemoClass demo = new DemoClass ();
Assert.assertNull (demo);
# 5) assertNotNull
assert not null é usado para verificar se um objeto fornecido não contém um valor nulo. Ele pega um objeto como parâmetro e lança um AssertionError se o objeto fornecido não contiver um valor nulo.
Sintaxe:
public static void assertNotNull(Object object)
Exemplo:
DemoClass demo = new DemoClass ();
Assert.assertNotNull (demo);
# 6) assertSame
assert same method verifica se dois objetos fornecidos como parâmetros se referem ao mesmo objeto. Ele lança um AssertionError se os objetos fornecidos não se referirem ao mesmo objeto com a mensagem fornecida.
Observe que Assert same compara as referências de objetos apenas, mas não os valores reais.
Sintaxe:
public static void assertSame(String message, Object expected,Object actual)
Exemplo:
DemoClass1 demo1 = nova DemoClass1 ();
DemoClass2 demo2 = novo DemoClass2 ();
Assert.assertSame (“Dois objetos são iguais”, demo1, demo2);
# 7) assertNotSame
assert not same verifica que dois objetos não são iguais. Se dois objetos se referirem ao mesmo objeto, um AssertionError será lançado.
Observe que o método assert not same compara as referências de objetos e não os valores presentes nos objetos.
Sintaxe:
public static void assertNotSame(String message, Object expected, Object actual)
Exemplo:
DemoClass1 demo1 = nova DemoClass1 ();
DemoClass2 demo2 = novo DemoClass2 ();
Assert.assertNotSame (“Dois objetos não são iguais”, demo1, demo2);
# 8) assertArrayEquals
assert equals verifica se duas matrizes de objetos são iguais. Se ambos os arrays contiverem valores nulos, eles serão considerados iguais. Este método lança um AssertionError com a mensagem fornecida se ambas as matrizes de objeto não forem consideradas iguais.
o que é matriz de rastreabilidade em testes de software
Sintaxe:
public static void assertArrayEquals(String message, Object() expected, Object() actual)
mensagem - Mensagem a ser exibida em caso de erro de afirmação.
esperado - Matriz de objetos.
real - Matriz de objetos.
Exemplo:
String () esperado = {“Manga”, ”Maçã”, ”Banana”}
String () real = {“Manga”, ”Maçã”, ”Banana”}
Assert.assertArrayEquals (esperado, real);
Métodos TestNG Assert
Os métodos TestNG Assert serão iguais aos métodos de asserção Junit discutidos acima. O prefeito diferença entre Junit e TestNG os métodos de asserção interferem no tratamento de asserções.
TestNG fornece técnicas de tratamento de asserção mais avançadas, como classes dependentes, testes de grupo, testes parametrizados, etc.
Tutoriais em vídeo sobre métodos de afirmação do TestNG
Parte I
parte II
Parte III
# 1) assertEquals
Este método é usado para verificar se dois valores de dados são iguais. Podemos comparar os valores de diferentes tipos de dados, como string, booleano, inteiro. Sempre que os valores esperados e reais são iguais, a afirmação é aprovada sem exceção. Se não forem, um AssertionError será lançado.
Uso : Este tipo de afirmação é usado para verificar o caso em que os dados exibidos na página web são os esperados ou de acordo com o requisito especificado.
Sintaxe:
Assert.assertEquals(actual,expected)
Parâmetros:
Atual - O valor real que esperamos da automação.
Esperado –O valor esperado.
Exemplo: Para verificar isso, se a página inicial da Amazon tiver um título dizendo, ‘Amazon.com: compras online de eletrônicos, roupas, computadores, livros, DVDs e muito mais '
@Test public void verifyTitle() { WebDriver driver = new FirefoxDriver(); driver.get(https://www.amazon.com); String ActualTitle = driver.getTitle(); String ExpectedTitle = “Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more”; Assert.assertEquals(ActualTitle, ExpectedTitle); System.out.println(“Assert passed”); }
Console:
Assert passou.
PASSADO: VerifyTitle
No exemplo acima, duas strings foram verificadas para valores iguais. Da mesma forma, a igualdade de outros tipos de dados como inteiro, booleano, etc. pode ser verificada.
# 2) assertNotEquals
assertNotEquals é usado para verificar se dois valores de dados não são iguais. É exatamente o oposto do funcionamento da assertEquals Assertion. Sempre que os valores esperados e reais coincidem, a asserção falha com uma exceção e marca o caso de teste como “falhou”.
Uso : Isso é usado nos casos em que desejamos verificar se cada dado é único em uma página da web. Por exemplo , uma lista telefônica, onde não há 2 números de telefone iguais.
Sintaxe:
Assert.assertNotEquals(actual,expected)
Parâmetros:
Atual - O valor real que esperamos da automação.
Esperado - O valor esperado.
Exemplo: Para verificar se os códigos pin de duas áreas diferentes são únicos / diferentes.
@Test // test case to verify AssertNotEquals public void verifyAssertNotEquals{ WebDriver driver = new FirefoxDriver(); driver.get('http://chennaiiq.com/chennai/pincode-by-name.php'); WebElement Adambakkam = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(5)/td(3)')); WebElement Aminijikarai = driver.findElement(By.xpath('//table(contains(@class,'TBox'))/tbody/tr(15)/td(3)')); String Pincode1 = Adambakkam.getText(); String Pincode2 = Aminijikarai.getText(); System.out.println('Two Unique pincodes are : ' +Pincode1 +' && '+Pincode2); Assert.assertNotEquals(Pincode1, Pincode2); System.out.println(“Assert passed”); }
Console:
Duas pinças exclusivas são: 600012 && 600001
Assert passou.
PASSADO: verifyAssertNotEqual
# 3) assertTrue
assertTrue é usado para verificar se uma determinada condição booleana é verdadeira. Essa asserção retorna true se a condição especificada for aprovada, caso contrário, um erro de asserção será lançado.
Sintaxe:
Assert.assertTrue(BooleanCondition);
Parâmetros :
BooleanCondition - Condição para verificar se seu tipo de retorno é True.
Uso :
Exemplo: Para verificar, se o botão SignIn está presente na página inicial do Amazon.in (afirmar para a exibição do botão).
Assert.assertTrue(SignIn.isDisplayed());
Aqui, ele verifica se a condição booleana - SignIn.IsDisplayed () retorna TRUE.
Exemplo: Para verificar se um botão está presente na página da web.
@Test // Test cases for AssertTrue public void verifyAssertTrue(){ WebDriver driver = new FirefoxDriver(); driver.get('https://www.amazon.in');// Open browser and pass URL in address bar WebElement Navigation = driver.findElement(By.xpath('//*(@id='nav-link-yourAccount')')); WebElement SignInButton = driver.findElement(By.xpath('//span(text()='Sign in')')); Actions move = new Actions(driver); move.moveToElement(Navigation).build().perform(); Boolean checkButtonPresence = SignInButton.isDisplayed(); Assert.assertTrue(checkButtonPresence); System.out.println('Button is displayed'); }
Console:
O botão é exibido
PASSADO: verifyAssertTrue
# 4) assertFalse
assertFalse é usado para verificar se uma determinada condição booleana é falsa. Em outras palavras, o tipo de retorno da condição booleana fornecida deve ser False. Esta asserção é aprovada se a condição especificada tiver um tipo de retorno FALSE; caso contrário, um erro de asserção será lançado.
Sintaxe:
Assert.assertFlase(BooleanCondition);
Parâmetros :
BooleanCondition - Condição para verificar se seu tipo de retorno é False.
Uso : Um cenário onde pode ser usado é verificar se um elemento não está presente em uma página da web após uma determinada ação.
Exemplo 1: O botão de login não deve ser exibido após o login.
Assert.assertFalse(SignIn.isDisplayed());
Isso afirma se a condição booleana - SignIn.IsDisplayed () retorna FALSE.
Exemplo 2:
Para verificar se um div desaparece após uma ação específica. Portanto, aqui verificamos que o div não é exibido, ou seja, afirmamos para uma condição falsa em um div exibido.
@Test // Test case for AssertFalse public void verifyAssertFalse() throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); WebElement CaptchaDiv = driver.findElement(By.xpath('//div(contains(@id,'ImgContainer'))')); WebElement CheckBox = driver.findElement(By.xpath('//*(@id='otpId')')); CheckBox.click(); Assert.assertFalse(CaptchaDiv.isDisplayed()); System.out.println('Captcha div dimmed out of screen'); }
Console:
Captcha div esmaecido na tela
PASSADO:verifyAssertFalse
# 5) assertNull
Essa afirmação é usada para verificar se um objeto tem um valor de retorno nulo. Em outras palavras, ele verifica se o resultado é nulo. Quando o objeto é Nulo, a asserção é passada sem nenhuma exceção.
Sintaxe:
AssertNull(Object)
Parâmetros :
Objeto - Qualquer valor de dados que contenha um valor nulo.
Uso:
Exemplo 1:
Afirma se uma string é nula.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNull(str1); // asserts if str1 holds null value System.out.println('String holds null value – Assert passed'); }
Exemplo 2:
Afirme se o valor do driver é nulo antes de iniciar o driver do Chrome.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; AssertNull(driver); System.out.println('Driver is null – Assert passed'); }
Aqui, o objeto driver é nulo, pois não é iniciado. Portanto, AssertNull (driver) será um sucesso, pois verificou se o objeto ‘driver’ possui um valor nulo
# 6) assertNotNull
Esta declaração espera um tipo de retorno válido, diferente do valor Nulo. Em outras palavras, ele verifica se há um objeto se ele não for Nulo. O tipo de retorno pode ser Boolean, string, integer, list, etc. Quando o objeto não é nulo, Assertion é passado, caso contrário, um AssertionError é lançado.
Sintaxe:
AssertNotNull(Object)
Parâmetros :
Objeto - Qualquer valor de dados que contenha qualquer valor de dados.
Uso:
Exemplo 1: Assert é uma string que contém alguns dados. Ou seja, não é Nulo.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver = new FirefoxDriver(); driver.get('https://www.irctc.co.in'); String str1 = null; String str2 = 'hello'; AssertNotNull(str2); // asserts if str2 holds some value System.out.println('String holds null value – Assert passed'); }
Exemplo 2: Verifique se o objeto do driver não é nulo após iniciar o FirefoxDriver.
@Test public void verifyAssertion () throws InterruptedException { WebDriver driver; WebDriver driver = new FirefoxDriver(); AssertNotNull(driver); System.out.println('Driver is null – Assert passed'); }
Aqui, o objeto driver é iniciado para o driver firefox e, portanto, o objeto 'driver' mantém algum valor, uma vez que não é iniciado. Portanto, AssertNotNull (driver) será um sucesso, pois verificou se o objeto ‘driver’ não possui um valor nulo
Clique Aqui para exemplos de casos de teste.
Programas de amostra para afirmações
Assert Equals:
package Demo; import org.junit.Assert; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionDemo { public static void main(String() args) throws InterruptedException{ String sValue = 'Assert Equals Test'; Assert.assertEquals('Assert Equals Test', sValue); System.out.println('Test Passed'); } }
Explicação do código:
O código acima demonstra o uso do método AssertEquals em termos simples.
- Conforme discutido anteriormente, assert equals leva dois parâmetros, ou seja, resultado esperado e resultado real. Se o resultado esperado não corresponder ao resultado real, um erro de asserção será lançado e a execução do programa terminará no método assert equals.
- O código acima compara o valor da string definida pelo usuário com o valor da string esperado.
- Observe que em tempo real, o resultado real será uma operação definida pelo usuário para a qual o valor será obtido em tempo de execução e passado como um parâmetro para o método assert equals.
Assert True:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Explicação do código:
O código acima demonstra o uso do método assertTrue.
- Estamos inicialmente passando o título da página esperado para uma variável. Em seguida, estamos instanciando um objeto do driver firefox e navegando para a página da web - https://www.google.com
- Posteriormente, usando o método assertsTrue, estamos comparando o título da página aberta com o título da página esperado. Se o título da página aberta não corresponder ao título esperado, um erro de asserção será lançado e a execução do programa será encerrada no método assertTrue.
- O código acima será executado com sucesso apenas quando o título da página real corresponder ao título da página esperado.
Assert False:
package Demo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo1 { public static void main(String() args) throws InterruptedException{ String expectedTitle = 'Google1'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); driver.close(); } }
Explicação do código:
O código acima demonstra o uso do método assertfalse.
- Estamos inicialmente passando o título da página esperado para uma variável e, em seguida, instanciando um objeto do driver firefox e navegando para a página da web - https://www.google.com
- Posteriormente, usando o método assertfalse, estamos comparando o título da página aberta com o título da página esperado. Se o título da página aberta corresponder ao título esperado, um erro de asserção será lançado e a execução do programa será encerrada no método assert false.
- O código acima será executado com sucesso apenas quando o título da página real não corresponder ao título da página esperado.
Código de ponta a ponta para afirmações
A seguir, é fornecido um exemplo de código de ponta a ponta para Asserções. Usamos o seguinte cenário para fins de simplicidade.
Cenário:
- Abra a página da web: https://www.google.com no navegador Firefox.
- Verifique se o título da página aberta é equivalente ao título da página esperado usando o método asserttrue.
- Na caixa de texto de pesquisa, digite a palavra-chave de pesquisa: Selênio.
- Aperte o botão Enter no teclado.
- Verifique se o título da página aberta na página de resultados da pesquisa é equivalente ao título da página esperado usando o método assertequals e o método assertfalse.
- Feche o navegador.
Código de amostra:
packageDemo; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class AssertionsDemo { public static void main(String args()) throws InterruptedException { String expectedTitle = 'Google'; String expectedText = 'selenium - Google Search'; System.setProperty('webdriver.gecko.driver','D:\Data_Personal\Demo\geckodriver-v0.23.0-win64\geckodriver.exe'); // Open the web page https://www.google.com using firefox browser WebDriver driver = new FirefoxDriver(); driver.get('https://www.google.com'); // Validate if actual web page title matches with that of expected title using assert true method System.out.println('Assert true method validation'); Assert.assertTrue('Title does not match', expectedTitle.equals(driver.getTitle())); // Enter the keyword selenium on the search textbox WebElementsearchBox = driver.findElement(By.xpath('//*(@name='q')')); searchBox.sendKeys('selenium'); searchBox.sendKeys(Keys.ENTER); Thread.sleep(8000); // Validate the actual page title with expected page title using assert equals method System.out.println('Assert equals method validation'); Assert.assertEquals(expectedText, driver.getTitle()); // Page title validation using assert false method System.out.println('Assert false method validation'); Assert.assertFalse('Title does match', expectedTitle.equals(driver.getTitle())); // Close the current browser driver.close(); } }
Saída de código:
Inicialmente, a janela do navegador Firefox será aberta com a página da web: https://www.google.com. O método Asserttrue verificará se o título da página aberta corresponde ao título da página esperado - Google.
melhor limpador grátis para windows 10
O script irá inserir a palavra-chave de pesquisa como Selenium e clicar no botão Enter.
Os métodos assertfalse e assertequals comparam se o título da página real da tela de resultados da pesquisa corresponde ao título esperado - 'selênio - Pesquisa Google'. O navegador será fechado através do método driver.close.
Saída do console:
O texto fornecido a seguir será a saída do console no Eclipse IDE
Evite erros comuns ao usar Assert Class
1 Suponha que seu projeto tenha bibliotecas JUnit, TestNG e python configuradas
dois . Mas em seu script, você está usando a anotação TestNG e, por engano, escolheu Junit Assertion e sua classe Assert será descontinuada. Consulte a captura de tela abaixo
3 - Portanto, é muito importante escolher a classe Assert adequada, para TestNg escolher a única classe org.TestNG Assert
Quatro. Para Junit, escolha org.junit.Assert class e assim por diante.
5 Para realizar a Soft Assertion, precisamos chamar o método assertAll () obrigatoriamente
6 Quando uma afirmação falha, ele lançará um erro de afirmação, não a exceção
Conclusão
Podemos concluir este artigo sobre Assertions in Selenium com as dicas abaixo:
- Uma asserção é usada para comparar o resultado real de um aplicativo com o resultado esperado.
- Um caso de teste é considerado aprovado somente se todas as afirmações forem atendidas.
- O método AssertEquals compara o resultado esperado com o resultado real. Ele lança um AssertionError se o resultado esperado não corresponder ao resultado real e termina a execução do programa no método assertequals.
- O método AssertTrue afirma que uma condição especificada é verdadeira. Ele lança um AssertionError se a condição passada para o método asserttrue não for satisfeita.
- O método AssertFalse afirma que uma condição especificada é falsa. Ele lança um AssertionError se a condição passada para declarar o método falso não for satisfeita.
- Os métodos AssertEquals, AssertTrue e AssertFalse são as asserções mais comumente usadas no Selenium.
No próximo tutorial , discutiremos vários exemplos usados em cenários de projeto em tempo real e entenderemos como as asserções são usadas de acordo com o propósito.
Esperamos que este artigo tenha enriquecido seu conhecimento sobre Assertions in Selenium !!
=> Leia a série de treinamento Easy Selenium.
Leitura recomendada
- Introdução ao JUnit Framework e seu uso no Selenium Script - Selenium Tutorial # 11
- Como usar o TestNG Framework para criar scripts do Selenium - Tutorial do TestNG Selenium nº 12
- Aprenda a usar anotações TestNG no Selenium (com exemplos)
- Tutorial Cucumber Selenium: Cucumber Java Selenium WebDriver Integration
- Integração de Selenium com JMeter
- Introdução ao Selenium WebDriver - Selenium Tutorial # 8
- Frameworks de automação de teste mais populares com prós e contras de cada um - Selenium Tutorial # 20
- 30+ Melhores Tutoriais de Selênio: Aprenda Selênio com Exemplos Reais