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.
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 -
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.

