TestNG on testauskehys, joka kattaa erityyppiset testisuunnitelmat, kuten yksikkö-, toiminnalliset, päästä päähän, käyttöliittymän ja integraatiotestin.
Voit suorittaa yhden tai useamman paketin (paketti tarkoittaa kapseloida ryhmäluokan oikeaan ohjainmuotoon) luomalla XML: n ja suorittamalla sen mavenin kautta.
Tässä opetusohjelmassa opit-
- TestNG-ryhmät esimerkin avulla
- Aseta maven- ja Java-polku ympäristömuuttujaan (Windows-käyttäjälle)
- Johdatus XML: ään ja kuinka tehdä XML-tiedostoja
- Toinen mekanismi Ryhmittelyn sijaan on "poissulkeminen" tai "sisällyttäminen" testi-XML: ään
- Koodin suorittaminen XML-tiedostolla (videoesittely)
TestNG-ryhmät esimerkin avulla
Käytämme ryhmiä Testngissä, kun
- Emme halua määritellä testimenetelmiä erikseen eri luokissa (toiminnallisuudesta riippuen) ja
- Samalla haluat jättää huomiotta (olla suorittamatta) joitain testitapauksia ikään kuin niitä ei olisi koodissa.
- Joten tämän toteuttamiseksi meidän on ryhmiteltävä ne. Tämä tapahtuu käyttämällä testNG: ssä tuettua "sisälly" - ja "poissulje" -mekanismia.
Alla olevassa esimerkissä olemme osoittaneet syntaksin siitä, miten ryhmiä käytetään XML-tiedostossa.
@Test (ryhmät = {"liimaus", "vahvat_tiesit"})
Tässä käytämme kahta ryhmänimeä, eli "liimaus" ja "vahvat_tiesit" (nämä ovat loogisia nimiä, joita voidaan muuttaa toiveidesi mukaan).
Muokkaa XML: ääsi valitaksesi mainittu ryhmä testiluokista. Alla mainitaan syntaksi siitä, miten ryhmät ilmoitetaan XML-tiedostossa, esim
Oletetaan siis, että luokassa on 10 testimenetelmää.
Niistä,
- 6 menetelmää on merkitty "liimaus" -ryhmään ja
- 4 on ryhmässä "strong_ties"
Eteenpäin aiomme asettaa maven / Java-polun ja käyttää Eclipse IDE -ohjelmaa osoittamaan XML-tiedostoja käyttävien ryhmien käyttöä Java-pohjaisessa maven-projektissa.
Aseta maven- ja Java-polku ympäristömuuttujaan (Windows-käyttäjälle)
Katso https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html
https://www.guru99.com/install-java.html
Johdatus XML: ään ja kuinka tehdä XML-tiedostoja
- XML (Extensible Markup Language) -tiedosto Maven-kehyksessä sisältää yhden tai useamman testin tiedot ja on määritelty tunnisteella
. - Testitiedot XML: ssä on tagi
, ja ne voivat sisältää yhden tai useamman TestNG-luokan. - Java-luokka, joka sisältää @Test- merkinnän testimenetelmien yläpuolella, määritellään TestNG-menetelmiksi.
Useita tunnisteita käytetään peräkkäin toimivan testin NG xml rakentamiseen, kuten
- Ensimmäinen on
-tunniste, jolla on looginen nimi, joka määrittelee täydelliset tiedot testattavalle NG: lle raportoidun suoritusraportin luomiseksi. - Toinen on
, huomaa, että se on looginen nimi, joka sisältää testin suorittamisraportin tiedot, kuten läpäisy, epäonnistuminen, ohita testitapaukset ja muut tiedot, kuten suorituksen kokonaisaika ja ryhmätiedot - Kolmas on
, com.group.guru99 on käytetty paketti ja Test Class -nimi on TC_Class1.
xml version = "1.0" encoding = "UTF-8"?>
Käytämme tätä XML: ää tulevan videon haittapuolena.
Toinen mekanismi Ryhmittelyn sijaan on "poissulkeminen" tai "sisällyttäminen" testi-XML: ään
Oletetaan, että löydät ryhmämekanismikompleksin käytön, ja testNG XML helpottaa toiminnon sulkea pois / sisällyttää testi.
Poissuljettu tagi : Poissulkevan tagin syntaksitSisällytä tunniste : Sisältötunniste
Huomaa: Voimme sisällyttää / sulkea pois useita testitapauksia kerrallaan, ja se toimii myös ryhmien kanssa.
Koodin suorittaminen XML-tiedostolla (videoesittely)
Selitys Java-koodista ja XML: stä ryhmän kanssa, poissulkea ja sisällyttää tagi XML: ään.
- Skenaario : Käynnistä Guru99-demopankkisivusto, tarkista muutama asia sisäänkirjautumissivulla sen jälkeen, kun annat kirjautumistiedot ja tarkista muutama uusi asia sovelluksessa sisäänkirjautumisen yhteydessä.
Huomaa : Jokainen koodaamasi vaihe on ilmoitettava erillisinä menetelminä, mutta suoritettuaan se suorittaa testimenetelmät XML-tiedoston merkintöjen mukaan.
Tapa 1 : Alusta selain ja käynnistä URL (tc01LaunchURL ())
Tapa 2 : Tarkista kirjautumissivun otsikko (tc02VerifyLaunchPage ())
Tapa 3 : Anna käyttäjänimi ja salasana kirjautumislomakkeeseen (tc03EnterCredentials ())
Tapa 4 : Tarkista Manager ID: n olemassaolo käyttäjän hallintapaneelissa (tc04VerifyLoggedInPage ())
Tapa 5 : Tarkista muutama linkki User DashBoardissa (tc05VerifyHyperlinks ())
Skenaarion koodi:
paketti com.group.guru99;tuo java.util.concurrent.TimeUnit;tuo org.openqa.selenium.By;tuo org.openqa.selenium.WebDriver;tuo org.openqa.selenium.firefox.FirefoxDriver;tuo org.testng.Assert;tuo org.testng.annotations.Test;julkinen luokka TC_Class1 {julkinen staattinen lopullinen WebDriver webDriver = uusi FirefoxDriver () ;;Merkkijono launchPageHeading = "// h3 [text () = 'Guru99 Bank']";lopullinen merkkijono userName_element = "// input [@ name = 'uid']", password_element = "// input [@ name = 'password']",signIn_element = "// input [@ name = 'btnLogin']";lopullinen merkkijono userName_value = "mngr28642", password_value = "ydAnate";viimeinen merkkijono managerID = "// td [sisältää (teksti (), 'Hallinnotunnus')]";lopullinen merkkijono newCustomer = "//a[@href='addcustomerpage.php ']", fundTransfer = "//a[@href='FundTransInput.php']";/ *** Tämä testitapaus alustaa webDriverin* /@Test (ryhmät = {"liimaus", "vahvat_tiesit"})public void tc01LaunchURL () {webDriver.manage (). ikkuna (). maksimoi ();webDriver.manage (). aikakatkaisut (). implisiittisestiWait (20, TimeUnit.SECONDS);webDriver.get ("http://www.demo.guru99.com/V4/");}/ *** Tarkistaa otsikon olemassaolon kirjautumissivulla* /@Test (ryhmät = {"liimaus"})public void tc02VerifyLaunchPage () {Assert.assertTrue (webDriver.findElement (By.xpath (launchPageHeading)). IsDisplayed (),"Kotisivun otsikkoa ei näytetä");System.out.println ("Kotisivun otsikko näytetään");}/ *** Tämä testitapaus antaa käyttäjänimen, salasanan ja napsauttaa sitten* Kirjaudu sisään -painike* /@Test (ryhmät = {"liimaus", "vahvat_tiesit"})public void tc03EnterCredentials () {webDriver.findElement (By.xpath (käyttäjänimen_elementti)). sendKeys (käyttäjänimen_arvo);webDriver.findElement (By.xpath (salasana-elementti)). sendKeys (salasana-arvo);webDriver.findElement (By.xpath (signIn_element)). napsauta ();}/ *** Tämä testitapaus vahvistaa hoitajan henkilöllisyyden DashBoardissa* /@Test (ryhmät = {"strong_ties"})public void tc04VerifyLoggedInPage () {Assert.assertTrue (webDriver.findElement (By.xpath (managerID)). IsDisplayed (),"Manager ID -tunnistetta ei näytetä");System.out.println ("Hallintunnisteen tunniste näytetään");}/ *** Tämä testitapaus tarkistaa uuden asiakaslinkin olemassaolon* Ja FundTransfer-linkki vasemmassa paneelissa* /@Test (ryhmät = {"liimaus"})public void tc05VerifyHyperlinkit () {Assert.assertTrue (webDriver.findElement (By.xpath (newCustomer)). IsEnabled (),"Uuden asiakkaan hyperlinkkiä ei näytetä");System.out.println ("Uusi asiakkaan hyperlinkki näytetään");Assert.assertTrue (webDriver.findElement (By.xpath (fundTransfer)). IsEnabled (),"Rahansiirron hyperlinkkiä ei näytetä");System.out.println ("Rahansiirron hyperlinkki näytetään");}}
Huomaa: Tunnistetiedot ovat voimassa vain 20 päivää, joten jos yrität suorittaa koodia paikallisella koneellasi, saatat kohdata virheellisiä kirjautumistietovirheitä. Luo kirjautumistunnuksesi alla olevista vaiheista:
- Käynnistä http://www.demo.guru99.com
- Kirjoita sähköpostiosoitteesi ruutuun.
- Napsauta Enter-näppäintä ja näet kirjautumistietosi näytöllä.
Koodin selitys:
Kuten edellä mainittiin, olemme luoneet 5 testitapausta kunkin toiminnon suorittamiseksi itsenäisillä menetelmillä.
Voit havaita, että jokaiseen menetelmään olemme liittäneet ryhmäparametrin, jolla on jonkin verran arvoa siinä.
Pohjimmiltaan nämä ovat erilaisten ryhmien nimet, eli "vahvat_tuotteet" ja "liimaus".
- Ensimmäinen ja kolmas menetelmä on merkitty "liimaus", "strong_ties", mikä tarkoittaa, että jos XML päivitetään jossakin ryhmässä, tämä testitapaus suoritetaan.
- Toinen menetelmä on merkitty vain "liimaus" -ryhmään, se tarkoittaa, että jos XML päivitetään sidosryhmällä. Vain siinä tapauksessa tämä testitapaus suoritetaan.
- Neljäs testitapaus on merkitty ryhmään strong_ties, mikä tarkoittaa, että tämä testitapaus suoritetaan vain, jos XML päivitetään vahvan_ties-ryhmän nimellä.
- Viimeinen, mutta ei vähäisin viides testitapaus on liitetty sidosryhmään, mikä tarkoittaa, että tämä testitapaus suoritetaan vain, jos XML päivitetään sidosryhmän nimellä.
Joten meillä on kaikkiaan 4 skenaariota;
- Haluamme suorittaa kaikki testitapaukset ryhmän nimestä riippumatta. Tällöin poistamme ryhmätunnisteen XML: n suorittamisesta.
- Haluamme suorittaa testitapauksia muutamia testejä, jotka liittyvät vain jompaankumpaan ryhmään, ts
- Katso:
- Tässä videossa Ryhmä-parametriä kommentoidaan XML: n suorittamisesta. Näin näet, että kaikki testitapaukset on suoritettu.
- Videon jatkoa varten olemme nyt sisällyttäneet ryhmän nimen XML: ään. Näet vain kyseiselle ryhmälle ominaiset testitapaukset ovat vain käynnissä.
- Käytämme poissulkemismekanismia testitapauksen poissulkemiseksi:
- Ole hyvä ja katso
- Näet, että olemme käyttäneet poissulkemista muutamasta testitapauksesta (tc02) kirjoittamalla heidän nimensä XML-ajon aikana. Lopputuloksessa mainittuja testitapauksia ei suoritettu.
- Viimeiseksi käytämme sisällytystestausmekanismia testitapausten sisällyttämiseen (tc01LaunchURL, tc03EnterCredentials ja tc05VerifyHyperlinkit)
- Ole hyvä ja katso
- Tässä videossa näet, että XML: ssä mainitut testitapaukset ovat käynnissä vain testin suorittamisen aikana.
Lataa koodi mainitusta URL-osoitteesta, se sisältää kaiken tyyppisen testXML: n:
Lataa yllä oleva koodi
Johtopäätös
Olemme oppineet täällä suhteellisen uuden tavan suorittaa testitapauksia XML: n avulla Maven-projektissa.
Aloitimme antamalla lyhyen esittelyn testNG: stä ja jatkoimme ryhmien, poissulkemis- ja sisällyttämisohjeiden täydellistä teknistä eritelmää.