Grupid sisse TestNG

TestNG on testimisraamistik, mis hõlmab erinevat tüüpi testide kujundusi, nagu üksuse-, funktsionaal-, lõpp-, kasutajaliidese- ja integratsioonitestid.

Saate käivitada ühe või mitu paketti (siin tähendab pakett klasside rühma kapseldamist õigesse direktorivormingusse), luues XML-i ja käivitades selle läbi maven.

TestNG Rühmad näitega

Me kasutame gruppe Testng millal,

  • Me ei taha testimismeetodeid eri klassides (olenevalt funktsionaalsusest) eraldi defineerida ja
  • Samal ajal tahan ignoreerida (mitte käivitada) mõnda testjuhtumit, nagu poleks neid koodis olemas.
  • Nii et selle teostamiseks peame need rühmitama. Seda tehakse testNG-s toetatud kaasamise ja välistamise mehhanismide abil.

Allolevas näites oleme näidanud XML-failis rühmade kasutamise süntaksit.

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

Siin kasutame kahte rühmanime, st "bonding" ja "strong_ties" (need on loogilised nimed, mida saab vastavalt oma soovile muuta).

<groups> silt määrab rühmade alguse XML-is.

Kohandage oma XML-i, et valida testklassidest nimetatud rühm. Allpool on mainitud süntaksit, kuidas XML-failis rühmi deklareerida, nt

 <groups>		
   <run>		
    <include name="bonding" />		
   </run>		
  </groups>		

Oletame, et klassis on 10 testimismeetodit.

neist välja,

  • 6 meetodit on märgistatud rühmas "sidumine" ja
  • 4 on grupis "strong_ties".

Edasi liikudes seame maven/Java rada ja kasutage Eclipse IDE, et demonstreerida XML-faile kasutavate rühmade kasutamist Java põhinev maven projekt.

Looge XML-i jaoks TestNG koos siltidega

  • XML (Extensible Markup Language) fail Maven raamistikus sisaldab teavet ühe või mitme testi kohta ja on määratletud tag.
  • XML-i testiteavet tähistab tag ja võib sisaldada ühte või mitut TestNG klassidesse.
  • A Java klass, mis sisaldab @Test ülaltoodud annotatsiooni katsemeetodid on määratletud kui TestNG meetodid.

Töötava testNG xml-laadse testi koostamiseks kasutatakse järjestuses mitut silti , ja

  • Esiteks on silt, millel on loogiline nimi, mis määratleb täieliku teabe testNG-le, millest teatatakse täitmisaruande genereerimiseks.
  • Teiseks on , pange tähele, et see on loogiline nimi, mis sisaldab teavet testi täitmise aruande kohta, nagu läbitud, ebaõnnestunud, katsejuhtumite vahelejätmine ja muud teavet, nagu kogu täitmise aeg ja rühmateave
  • Kolmandaks oncom.group.guru99.TC_Class1” />, kasutatav pakett on com.group.guru99 ja testklassi nimi on TC_Class1.
<?xml version="1.0" encoding="UTF-8" ?>	
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">	
 	<suite name="Suite">	
		<test name="Guru 99 Smoke Test Demo">	
			<groups>	
				<run>	
   					 <include name="strong_ties" />	
        		</run>	
       		</groups>	
			<classes>	
					<class name="com.group.guru99.TC_Class1" />	
           	</classes>	
		</test>	
  </suite>	

Kasutame seda XML-i eelseisva video jaoks, mis on esitatud allolevates jaotistes.

"välista" või "kaasa" test XML-is

Oletame, et leiate rühmamehhanismi kompleksi kasutamise, siis testNG XML hõlbustab funktsiooni testi välistamiseks/kaasamiseks.

Exclude Tag:  Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" />
Include Tag:  Syntax for include tag <include name="${TEST_CASE_NAME}" />

Märge: Saame korraga kaasata/välistada mitu testjuhtumit, mis töötab ka gruppidega.

jooks TestNG Grupeerimine, kaasamine, koodi välistamine (video demo)

Selgitus Java Kood ja XML koos rühmitada, välistada ja kaasata silt XML-is.

Testi stsenaarium: Käivitage Guru99 demo pangasait, kontrollige pärast seda sisselogimislehel mõningaid asju, sisestage mandaadid ja kinnitage sisselogimisel uuesti rakenduses mõned uued asjad.

jooks TestNG Kood rühmitada, kaasata, välistada

Märge: Iga kodeeritav samm tuleks deklareerida eraldi meetoditega, kuid käivitamisel käivitab see testmeetodid sõltuvalt XML-faili kirjetest.

  • Meetod 1: lähtestage brauser ja käivitage URL (tc01LaunchURL())
  • Meetod 2: Kinnitage sisselogimislehe pealkiri (tc02VerifyLaunchPage())
  • Meetod 3: sisestage sisselogimisvormile kasutajanimi ja parool (tc03EnterCredentials())
  • Meetod 4: kontrollige halduri ID olemasolu kasutaja armatuurlaual (tc04VerifyLoggedInPage())
  • Meetod 5: kinnitage veel mõned lingid kasutaja juhtpaneelil (tc05VerifyHyperlinks())

Kood meie stsenaariumi jaoks:

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()='Guru99 Bank']";	
    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(),'Manger Id')]";	
    final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']";	

    /**	
     * This test case will initialize the webDriver	
     */	
    @Test(groups = { "bonding", "strong_ties" })	
    public void tc01LaunchURL() {	
        webDriver.manage().window().maximize();	
        webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);	
        webDriver.get("https://www.demo.guru99.com/V4/");	
    }	

    /**	
     * Will check the presence of Heading on Login Page	
     */	
    @Test(groups = { "bonding" })	
    public void tc02VerifyLaunchPage() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(),	
                "Home Page heading is not displayed");	
        System.out.println("Home Page heading is displayed");	
    }	

    /**	
     * This test case will enter User name, password and will then click on	
     * signIn button	
     */	
    @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();	
    }	

    /**	
     * This test case will verify manger's ID presence on DashBoard	
     */	
    @Test(groups = { "strong_ties" })	
    public void tc04VerifyLoggedInPage() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(),	
                "Manager ID label is not displayed");	
        System.out.println("Manger Id label is displayed");	
    }	

    /**	
     * This test case will check the presence of presence of New customer link	
     * And FundTransfer link in Left pannel	
     */	
    @Test(groups = { "bonding" })	
    public void tc05VerifyHyperlinks() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(),	
                "New customer hyperlink is not displayed");	
        System.out.println("New customer hyperlink is displayed");	

        Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(),	
                "Fund Transfer hyperlink is not displayed");	
        System.out.println("Fund Transfer hyperlink is displayed");	
    }	

}	

Märkus. Mandaat kehtivad ainult 20 päeva, nii et kui proovite koodi oma kohalikus masinas käivitada, võib teil tekkida kehtetute mandaatide viga.

Koodi selgitus:

Nagu eespool mainitud, oleme loonud 5 testjuhtumit iga toimingu sooritamiseks sõltumatutes meetodites.

Iga meetodi jaoks oleme seostanud rühma parameetri mõne väärtusega.

Põhimõtteliselt on need eristavate rühmade nimetused, st "strong_ties" ja "bonding".

  • Esimene ja kolmas meetod on märgistatud sõnadega "bonding", "strong_ties", mis tähendab, et kui XML-i mõnes rühmas värskendatakse, Testjuhtum hakkab jooksma.
  • Teine meetod on märgistatud ainult sidumisrühmaga, see tähendab, et kui XML-i värskendatakse sidumisrühmaga. Ainult sel juhul käivitatakse see testjuhtum.
  • Neljas testjuhtum on märgistatud grupiga strong_ties, mis tähendab, et seda testjuhtumit käitatakse ainult siis, kui XML-i värskendatakse grupi strong_ties nimega.
  • Viimane, kuid mitte vähemtähtis viies testjuhtum on seotud sidumisrühmaga, mis tähendab, et seda testjuhtumit käitatakse ainult siis, kui XML-i värskendatakse sidumisrühma nimega.

Kokkuvõttes on meil 4 stsenaariumi;

Stsenaarium 1: Soovime käitada kõiki testjuhtumeid, olenemata rühma nimest. Sel juhul eemaldame XML-i käitamisest rühma märgendi.

Stsenaarium 2: Tahame läbi viia mõned testid, mis on seotud ainult kummagi rühmaga, st tugevate sidemete või sidemega. Palun vaadake:

  • Selles videos kommenteeritakse rühma parameetrit XML-i käitamisest. Seega näete, et kõik testjuhtumid on teostatud.
  • Video jätkamiseks oleme nüüd XML-i lisanud rühma nime, näete ainult selle rühma spetsiifilisi testjuhtumeid, mis töötavad ainult.

Stsenaarium 3: Testjuhtumi välistamiseks kasutame välistamismehhanismi. Palun vaadake videot

  • Näete, et oleme kasutanud mõne testjuhtumi välistamist (tc02), kirjutades nende nime XML-i käitamiseks. Lõpptulemuses mainitud testjuhtumid ei jooksnud.

Stsenaarium 4: Viimaseks kasutame testjuhtumite (tc01LaunchURL, tc03EnterCredentials ja tc05VerifyHyperlinks) kaasamiseks kaasamise testmehhanismi. Palun vaadake videot

Selles videos näete, et XML-is mainitud testjuhtumid töötavad ainult testi täitmise ajal.

Laadige kood alla ülaltoodud näite koodist -

Laadige alla ülaltoodud kood

Järeldus

Oleme siin õppinud suhteliselt uut viisi testjuhtumite käitamiseks, kasutades Maven projektis XML-i.

Alustasime testNG-i lühitutvustusega ja jätkasime rühmade, välistamise ja kaasamise täieliku tehnilise spetsifikatsiooniga.

Võta see postitus kokku järgmiselt: