Selenium WebDriver: TestNG pre správu testovacích prípadov a generovanie správ



Tento výukový program Selenium WebDriver vám pomôže pochopiť potrebu používania TestNG so Selenom na správu testovacích prípadov a generovanie podrobných správ o teste.

V predchádzajúcom blogu som vás naučil, ako spustiť prvý test Selenium WebDriver. V tomto blogu sa budem venovať pokročilým konceptom selénu WebDriver. Už som niekoľkokrát spomenul, že Selenium WebDriver má obmedzenia, pokiaľ ide o správu testovacích prípadov a generovanie testovacích správ. Aká je teda alternatíva? Nástroj tak populárny ako selén musí určite mať riešenie, že? Samozrejme, že áno! Na prekonanie tohto obmedzenia môžeme použiť kombináciu selénu a TestNG, ktorá bude témou diskusie tohto blogu.

ako písať triedu singleton v jave

V prípade, že ste so selénom nováčikom a chcete sa zoznámiť so základnými pojmami, môžete začať svoju cestu odtiaľto: ? Ostatní však môžu začať s TestNG pre selén z tohto blogu.Mali by ste tiež vedieť, že organizácie aktívne vyhľadávajú profesionálov , čo z neho robí dôležitú zručnosť pre softvérových testerov.





Vývojári softvéru z celého sveta jednomyseľne súhlasia s tým, že písanie kódu v testovacích prípadoch im ušetrí značnú časť času na ladenie. Prečo? Je to tak preto, lebo testovacie prípady pomáhajú pri vytváraní robustného a bezchybného kódu. Ako to robí? Rozdelením celého kódu na menšie testovacie prípady a následným vyhodnotením každého z týchto testovacích prípadov, či vyhovie / nevyhovie podmienkam, môžeme vytvoriť bezchybný kód. Pretože selén nepodporuje vykonávanie kódu v testovacích prípadoch, musíme pre to isté použiť TestNG. To je miesto, kde TestNG zapadá do selénového rámca.

TestNG znamenať Vyskúšajte ďalšiu generáciu a je to rámec automatizácie testov otvoreného zdroja inšpirovaný programami JUnit a NUnit. Nielen inšpirácia, ale aj upgrade na tieto dva rámce. Takže sa môžete opýtať, aká je tu aktualizácia?Inovácia pomocou TestNG spočíva v tom, že poskytuje ďalšie funkcie, ako napríklad: poznámky k testu, zoskupenie, stanovenie priorít, parametrizácia a postupnosť v kóde, čo predtým nebolo možné.



Okrem správy testovacích prípadov je možné pomocou TestNG získať aj podrobné správy o testoch. K dispozícii bude súhrn zobrazujúci testovací prípad, ktorý zlyhal, spolu so skupinou, ktorej bol súčasťou, a triedou, do ktorej spadá. Keď sa dajú chyby presne lokalizovať takto, dajú sa okamžite opraviť, aby sa vývojárom uľavilo. Na nasledujúcom obrázku je znázornené fungovanie TestNG.

testng - selénový webdriver

Ako teda TestNG zvládne svoju prácu? Táto otázka bude zodpovedaná vďalšia časť tohto výučbového blogu Selenium WebDriver, kde budem diskutovať o tom, ako spravovať rôzne testovacie prípady pomocou TestNG.



Selénový webový ovládač s TestNG

Testovacie prípady je možné definovať a spravovať jedným z nasledujúcich spôsobov:

  1. Skúšobné anotácie
  2. Stanovenie priorít
  3. Zakázanie testovacích prípadov
  4. Závislosť metódy
  5. Zoskupenie
  6. Tvrdenia
  7. Generovanie správy

Začnem vysvetľovaťkaždú z týchto funkcií.

Skúšobné anotácie

Najskôr si položme túto otázku: Prečo musíme používať anotácie? Kedy ich môžeme použiť? Anotácie v seléne sa používajú na riadenie ďalšej metódy, ktorá sa má vykonať. Anotácie testu sú definované pred každou metódou v testovacom kóde. Ak žiadna metóda nemá predponu s anotáciami, bude táto metóda ignorovaná a nebude vykonaná ako súčasť testovacieho kódu. Na ich definovanie je potrebné metódy jednoducho anotovať „ @Test „. Pozrite sa napríklad na nasledujúci úryvok kódu.

balík testng import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.annotations.AfterClass import org.testng.annotations.AfterMethod import org.testng.annotations.BeforeClass import org.testng.annotations .BeforeMethod import org.testng.annotations.Test verejnej triedy TestAnnotations {@Test public void myTestMethod () {System.out.println ('Vnútorná metóda: - myTestMethod') Ovládač WebDriver = nový FirefoxDriver () driver.get ('http: //www.seleniumframework.com/Practiceform/ ') Názov reťazca = driver.getTitle () System.out.println (title) driver.quit ()} @BeforeMethod public void beforeMethod () {System.out.println (' This kus kódu sa vykoná pred metódou: - myTestMethod ') System.setProperty (' webdriver.gecko.driver ',' C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe ')} @AfterMethod public void afterMethod () {System.out.println (' tento kúsok kódu sa vykoná po metóde: - myTestMethod ')} @BeforeClass public void beforeClass () {Syste m.out.println ('Táto časť kódu sa vykoná pred vykonaním triedy')} @AfterClass public void afterClass () {System.out.println ('Táto časť kódu sa vykoná po vykonaní triedy')} }

Vo vyššie uvedenom kóde by ste si mohli všimnúť, že som nedefinoval „hlavnú“ metódu. Mám však definovaných ďalších 5 metód. Sú to „myTestMethod“, „beforeMethod“, „afterMethod“, „beforeClass“ a „afterClass“. Všimnite si tiež poradie definície metód v kóde, pretože sa nebudú vykonávať v rovnakom poradí.

Metóda „myTestMethod“ je anotovaná @Test , a je to hlavná metóda alebo časť kódu, ktorá sa musí vykonať. Ostatné anotované metódy sa vykonajú pred a po vykonaní tejto metódy. Pretože ‘beforeMethod’ je anotovaný s @BeforeMethod , vykoná sa pred vykonaním metódy „myTestMethod“. Podobne ‚afterMethod‘ je anotovaný s @AfterMethod , a teda sa vykoná po „myTestMethod“.

Výraz „beforeClass“ je však označený @BeforeClass , čo znamená, že sa vykoná ešte predtým, ako sa vykoná samotná trieda. Názov našej triedy je tu TestAnnotations , a teda skôr, ako sa trieda začne vykonávať, vykoná sa časť kódu vo vnútri triedy „beforeClass“. Podobne je výraz „afterClass“ anotovaný @AfterMethod , a teda bude vykonaný po ukončení hodiny TestAnnotations je vykonaný.

Ak stále máte nejasnosti týkajúce sa poradia vykonania, potom vám nasledujúci úryvok určite pomôže.

1. BeforeSuite 2. BeforeTest 3. BeforeClass 4. BeforeMethod 5. Test 6. AfterMethod 7. AfterClass 8. AfterTest 9. AfterSuite

Výstup z vyššie uvedeného kódu bude:

Táto časť kódu sa vykoná pred vykonaním triedy Táto časť kódu sa vykoná pred metódou: - myTestMethod Vnútorná metóda: - myTestMethod 1493192682118 geckodriver INFO Počúvanie na 127.0.0.1:13676 1493192682713 mozprofile :: profil INFO Pomocou cesty profilu C: UsersVardhanAppDataLocalTemp ust_mozp .wGkcwvwXkl2y 1493192682729 geckodriver :: marionette INFO Spustenie prehliadača C: Program Files (x86) Mozilla Firefoxirefox.exe 1493192682729 geckodriver :: marionette INFO Pripojenie k marionete na localhost: 59792 [GPU 6152] UPOZORNENIE: Chyba potrubia: 109: súbor c: / builds /moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, linka 346 1493192688316 Marionette INFO Počúvanie na porte 59792 26. apríla 2017 13:14:49 org. openqa.selenium.remote.ProtocolHandshake createSession INFO: Zistený dialekt: W3C Chyba JavaScriptu: http://t.dtscout.com/i/?l=http%3A%2F%2Fwww.seleniumframework.com%2FPracticeform%2F&j=, riadok 1: TypeError: document.getElementsByTagNa ja (...) [0] je nedefinovaný rámec selénu | Practiceform 1493192695134 Marionette INFO Nové pripojenia už nebudú akceptované 26. apríla 2017 13:14:57 org.openqa.selenium.os.UnixProcess zničiť SEVERE: Nie je možné zabiť proces pomocou PID 6724 Táto časť kódu sa vykoná po vykonaní metódy: - myTestMethod Táto časť kódu sa vykoná po vykonaní triedy ZADANÉ: myTestMethod ===================================== ============ Predvolený test Vykonané testy: 1, Zlyhania: 0, Preskočenie: 0 ========================= =================================================== ===================== Predvolený balík Celkový počet spustených testov: 1, Zlyhania: 0, Preskočenie: 0 ================ =================================

Ako vidíte z vyššie uvedeného výstupu, počet spustených testov je 1 a neúspešných je 0. To znamená, že kód je úspešný. Dokonca aj poradie vykonania metód bude v poradíJauž skôr spomenuté.

Po spustení tohto kódu vo vašom prístroji vytvorí Selenium WebDriver inštanciu vášho prehliadača Firefox, prejde na praktický formulár Selenium Framework, zavrie inštanciu prehliadača a zobrazí rovnaký výstup, aký je uvedený vyššie v IDE vášho Eclipse.

V kóde som použil iba 5 rôznych anotácií. Existuje ale oveľa viac anotácií, ktoré možno použiť na riadenie ďalšej metódy, ktorá sa má vykonať. Celý zoznam anotácií je vysvetlený vstôlnižšie:

@BeforeSuite - Metóda s poznámkou @BeforeSuite sa spustí skôr, ako prebehnú všetky testy v balíku.

@AfterSuite - Metóda s poznámkou @AfterSuite sa spustí po vykonaní všetkých testov v balíku.

@BeforeTest - Metóda s poznámkou @BeforeTest sa spustí pred spustením akejkoľvek testovacej metódy patriacej do triedy.

@ AfterTest - Metóda s poznámkou @ AfterTest sa spustí po spustení všetkých testovacích metód patriacich do triedy.

@BeforeGroup - Metóda s poznámkou @BeforeGroup bude prebiehať pred spustením každej skupiny.

@AfterGroup - Metóda s poznámkou @AfterGroup bude bežať po spustení každej skupiny.

@BeforeClass - Metóda s poznámkou @BeforeClass sa spustí jedenkrát predtým, ako sa vyvolá prvá testovacia metóda v aktuálnej triede.

@Po hodine - Metóda s poznámkou @Po hodine sa spustí po spustení všetkých testovacích metód v aktuálnej triede.

@BeforeMethod - Metóda s poznámkou @BeforeMethod sa spustí skôr, ako sa spustí akákoľvek testovacia metóda vo vnútri triedy.

java, kedy to použiť

@AfterMethod - Metóda s poznámkou @AfterMethod bude bežať po spustení každej testovacej metódy vo vnútri triedy.

@Test - Metóda s poznámkou @Test je hlavnou skúšobnou metódou v celom programe. Okolo tejto metódy sa vykonajú ďalšie komentované metódy.

Screenshot obrazovky s testom TestNG jeuvedené nižšie: -

Stanovenie priorít

Hovorili sme o tom, ako rôzne metódy, ktoré možno definovať tak, aby sa vykonávali okolo @Test metóda. Čo však v prípade, že ich máte viac @Test metódu a chcete medzi nimi definovať príkaz na vykonanie?

V takom prípade môžemePuprednostnite ich priradením čísla k anotovaným testovacím prípadom. Čím menšie číslo, tým vyššia priorita. Prioritu je možné priradiť ako parameter pri definovaní testovacích prípadov. Pokiaľ ale nie je priradená žiadna priorita, potom sa anotované testovacie metódy vykonajú podľa abecedného poradia testov. Pozrite sa na parametre testovacích anotácií v nasledujúcej častikód.

@Test (Priority = 2) public static void FirstTest () {system.out.println ('Toto je testovací prípad číslo dva z dôvodu priority č. 2')} @Test (Priority = 1) public static void SecondTest () { system.out.println ('Toto je testovací prípad číslo jedna z dôvodu priority 1')} @Test public static void FinalTest () {system.out.println ('Toto je posledný testovací prípad, pretože neexistuje žiadna priorita') )}

Zakázanie testovacích prípadov

Ukážem vám niečo zaujímavejšie. Čo ak máte kód s miliónom riadkov pozostávajúci zo stoviek testovacích prípadov a chcete zakázať iba jednu testovaciu metódu? Namiesto toho nemusíte odstraňovať žiadnu časť kódu, môžeme túto testovaciu metódu jednoducho deaktivovať.

Akt deaktivácie testovacieho prípadu sa vykonáva aj pomocou parametrov. Môžeme nastaviť povolené atribút „false“. Štandardne budú povolené všetky testovacie prípady, a preto ich nemusíme definovať zakaždým, keď napíšeme test. Pozrite sa na parametre tretej a štvrtej metódy v nasledujúcej častikód.

@Test (Priority = 2, enabled = True) public static void FirstTest () {system.out.println ('Toto je testovací prípad číslo dva z dôvodu priority # 2')} @Test (Priority = 1, enabled = True) ) public static void SecondTest () {system.out.println ('Toto je testovací prípad číslo jedna z dôvodu priority č. 1')} @Test (enabled = false) public static void SkippedTest () {system.out.println ( „Toto je preskočený testovací prípad, pretože bol deaktivovaný.“} @Test (enabled = True) verejné statické void FinalTest () {system.out.println ('Toto je finálny testovací prípad, ktorý je povolený a nemá prioritu. ')}

Závislosť metódy

Teraz v prípade, že máte situáciu, kedy chcete, aby sa časť kódu vykonala iba vtedy, ak spĺňa podmienku, alebo iba ak sa konkrétna metóda vykoná úspešne, môžeme to urobiť pomocou príkazu dependsOnMethod (). Toto je v podstate podmienka závislosti metódy, keď sa metóda vykoná v závislosti od inej metódy. Keby sme dodatočne nastavili alwaysRun atribút na true, potom sa metóda vykoná bez ohľadu na stav zlyhania / vyhovenia v závislosti od metódy. Prezrite si kód v útržku kódu nižšie.

@Test public static void FirstTest () {system.out.println ('Toto je prvý testovací prípad, ktorý sa má vykonať')} @Test (dependsOnMethods = {'FirstTest'}) verejné static void SecondTest () {system.out. println ('Toto je druhý testovací prípad, ktorý sa má vykonať. Toto je závislá metóda')} @Test (dependsOnMethods = {'SecondTest'}) verejné statické void FinalTest () {system.out.println ('Toto je posledný test Prípad Aj tak sa vykoná. ')}

Týmto sa dostávame k ďalšiemu dôležitému aspektu testuanotácie čo je Zoskupenie .

Zoskupenie

Teraz už musíte vedieť, že v kóde bude niekoľko metód ako súčasť nášho testovacieho prípadu. Povedzme, že existuje 100 testovacích prípadov, ale v našom ďalšom teste chceme vykonať iba 20 testovacích prípadov. Myslíte si, že to dokážeme? Isteže môžeme.

Môžeme použiť skupiny atribútu na tento účel. Skupine testovacích prípadov môžeme priradiť názov skupiny a neskôr namiesto celého kódu zvoliť vykonanie skupiny. Pre pochopenie pozrite nasledujúci úryvok kóduako vytvárať skupiny.

@Test (groups = {'MyGroup'}) public static void FirstTest () {system.out.println ('This is a part of the Group: MyGroup')} @Test (groups = {'MyGroup'}) public static void SecondTest () {system.out.println ('Toto je tiež súčasť skupiny: MyGroup')} @Test public static void ThirdTest () {system.out.println ('Ale toto nie je súčasťou Skupina: MyGroup ')}

TestNG tvrdenia

Týmto sa teraz dostaneme k ďalšej téme v TestNG, ktorou sú tvrdenia. Ako už názov napovedá, v testovacích metódach je možné použiť tvrdenia na určenie stavu vyhovujúci / nevyhovujúci testu. Na základe skutočnej / nepravdivej podmienky vyhlásenia budú testy úspešné / neúspešné.

V nižšie uvedenom kóde som zahrnul 3 testovacie metódy, pričom prvá a tretia metóda majú vyhovujúci stav a druhá metóda bude mať poruchový stav. Presvedčte sa sami.

balík testng import org.testng.annotations.Test import org.testng.annotations.BeforeMethod import org.openqa.selenium.WebDriver import org.openqa.selenium.firefox.FirefoxDriver import org.testng.Assert import org.testng.annotations.AfterMethod public class Assertions {@BeforeMethod public void beforeMethod () {System.setProperty ('webdriver.gecko.driver', 'C: UsersVardhanworkspaceSeleniumProjectfilesgeckodriver.exe')} public boolean isEqual (int a, int b) {if (a == b ) {return true} else {return false}} @Test public void testEquality1 () {Assert.assertEquals (true, isEqual (10, 10)) System.out.println ('This is a pass condition')} @Test public void testEquality2 () {Assert.assertEquals (true, isEqual (10, 11)) System.out.println ('This is a fail condition')} @Test public void getTitle () {WebDriver driver = new FirefoxDriver () driver. get ('https://www.gmail.com') String title = driver.getTitle () Assert.assertEquals (title, 'Gmail') System.out.println ('Toto je opäť podmienka na splnenie')} }

Keď sa pozriete na správu, ktorá sa vygeneruje po tomto vykonaní, všimnete si, že z troch testov jeden zlyhal a dva prešli. Ďalším dôležitým bodom, ktorý je potrebné poznamenať, je, že keď tvrdenie zlyhá, ostatné príkazy / riadky kódu v danom teste budú preskočené. Iba v prípade, že je tvrdenie úspešné, sa v tomto teste vykoná ďalší riadok kódu. Skontrolujte výstup nižšie system.out.println sa vykonal iba pre prvú a tretiu metódu.

1493277977348 geckodriver INFO Počúvanie na 127.0.0.1:47035 1493277977993 mozprofile :: profil INFO Používanie cesty profilu C: UsersVardhanAppDataLocalTemp ust_mozprofile.Z7X9uFdKODvi 1493277977994 geckodriver :: marionilla INFO x86329 :: Mozilla Firefox INFO.exe Spúšťanie prehliadača C: Programové súbory x Pripojenie k marionete na localhost: 50758 [GPU 6920] UPOZORNENIE: Chyba potrubia: 109: súbor c: / builds / moz2_slave / m-rel-w32-00000000000000000000 / build / src / ipc / chromium / src / chrome / common / ipc_channel_win. cc, riadok 346 1493277981742 Marionette INFO Počúvanie na porte 50758 27. apríla 2017 12:56:22 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Zistený dialekt: W3C Toto je opäť podmienka na odovzdanie. getTitle PASSED: testEquality1 FAILED: testEquality2 java.lang.AssertionError: expect [false] but found [true] at org.testng.Assert.fail (Assert.java:93) at org.testng.Assert.failNotEquals (Assert.java: 512) pri org.testng.Assert.assertE qualsImpl (Assert.java:134) na org.testng.Assert.assertEquals (Assert.java:115) na org.testng.Assert.assertEquals (Assert.java:304) na org.testng.Assert.assertEquals (Assert.java) : 314) at testng.Assertions.testEquality2 (Assertions.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0 (natívna metóda) at sun.reflect.NativeMethodAccessorImpl.invoke (neznámy zdroj) at sun.reflect.DelegatingMethodAccess.v Zdroj) na java.lang.reflect.Method.invoke (Neznámy zdroj) na org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) na org.testng.internal.Invoker.invokeMethod (Invoker.java:661) na org.testng.internal.Invoker.invokeTestMethod (Invoker.java:869) na org.testng.internal.Invoker.invokeTestMethods (Invoker.java:1193) na org.testng.internal.TestMethodWorker.invokeTestMethods (TestMethodWorker.java ) na org.testng.internal.TestMethodWorker.run (TestMethodWorker.java:109) na org.testng.TestRunner.privateRun (TestRunner.java:744) na org.testng.TestRu nner.run (TestRunner.java:602) na org.testng.SuiteRunner.runTest (SuiteRunner.java:380) na org.testng.SuiteRunner.runSequentially (SuiteRunner.java:375) na org.testng.SuiteRunner.privateRun (SuiteRunner) .java: 340) na org.testng.SuiteRunner.run (SuiteRunner.java:289) na org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) na org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) na org.testng.TestNG.runSuitesSequentially (TestNG.java:1301) na org.testng.TestNG.runSuitesLocally (TestNG.java:1226) na org.testng.TestNG.runSuites (TestNG.java:1144) na org.testng. TestNG.run (TestNG.java:1115) na org.testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:132) na org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:230) na org.testng.remote .RemoteTestNG.main (RemoteTestNG.java:76) =================================================== ======== Predvolené testovacie testy: 3, zlyhania: 1, preskočenie: 0 ============================= ================================================== ================= Predvolená sada Celkový počet spustených testov: 3, Zlyhania: 1, Preskočenie: 0 ==================================== =============

To je koniec konceptov týkajúcich sa riadenia testovacích prípadov. Zostáva nám ešte jedna téma, a to generovanie správ. Generovanie správ je poslednou témou tohto tutoriálu Selenium WebDriver, pretože správy je možné generovať až potomtesty sa vykonajú.

ako získať dĺžku poľa javascript

Generovanie správy

Najdôležitejšia vec, ktorú si musíte uvedomiť, je, že prehľad sa bude generovať iba prostredníctvom súboru .xml. To znamená, či už je to metóda, alebo trieda, alebo skupina, ktorú chcete testovať, všetky musia byť uvedené v súbore .xml.

Najprv teda môžete v rámci projektu vytvoriť nový priečinok a vytvoriť nový súbor v tomto priečinku, pomenovať súbor a uložiť ho s príponou .xml. Nový priečinok a súbor môžete vytvoriť kliknutím pravým tlačidlom myši na prieskumníka balíkov. Po vytvorení súboru prejdite na kartu zdroja v dolnej časti okna a zadajte konfigurácie uvedené v nasledujúcom úryvku.

 

Prvý riadok je definícia typu dokumentu XML. Je to štandardné a povinné pre všetky protokoly o testoch. Ostatné riadky sú ale celkom samozrejmé. Použil som otvorené značky pre suite, test, triedy a triedu. Značka triedy môže mať v sebe jednu alebo viac tried. Môže byť teda použitý, ak chceme vygenerovať správu, kde testujeme viac tried. To sa hodí hlavne pre vývojárov, ktorí chcú otestovať dlhý kus kódu.

Ak sa vrátite k nášmu prehľadu, môžete po otvorení týchto značiek pomenovať každú sadu, test alebo triedu a nezabudnite zavrieť každú otvorenú značku. Meno svojej suity som uviedol ako TestNG , názov testu ako Test Anotácie a názov triedy ako testng.TestAnnotations. Upozorňujeme, že názov triedy je vo formáte packagename.classname ‘ .

Keď spustíte tento súbor ako sadu TestNG, spustí sa spustenie a získate podrobné správy o testoch. Výstup testu získate na karte konzoly a výsledok balíka testov na nasledujúcej karte. Správa, ktorú som vygeneroval na vykonanie môjho kódu, jevnižšie uvedená snímka obrazovky. Všimnite si, že tentokrát existuje názov balíka, názov testu, názov triedy spolu s časom potrebným na vykonanie každého z nich.

V prípade, že si chcete pozrieť správu HTML (indexová správa alebo e-mailová správa), môžete prejsť na test-výstup priečinok v adresári projektu vo vašom pracovnom priestore. Kliknutím na ne si môžete prezerať prehľady aj neskôr. Nižšie sú uvedené ich snímky obrazovky.

Správa o indexe : -

Emailovateľná správa : -

Týmto sa dostávame na koniec tohto výučbového blogu Selenium WebDriver. Je čas, aby ste na svojom konci nastavili zatmenie, nainštalovali rôzne balíčky selénu, nainštalovali TestNG a začali písať svoje testovacie prípady.

Môžete si pozrieť nižšie výukové video Selenium WebDriver, aby ste boli svedkami ukážky rôznych konceptov vysvetlených v tomto blogu.

Výcvik selénu Rámec TestNG pre selén Edureka

Toto video výcviku na seléne Edureka vás prevedie podrobnými podrobnosťami selénového webového ovládača. Toto výukové video selén je ideálne pre začiatočníkov aj profesionálov, ktorí chcú oprášiť základné informácie o príkazoch WebDriver a dozvedieť sa, ako je možné TestNG používať so selénom na správu rôznych testovacích prípadov.

Ak sa chcete naučiť selén a budovať si kariéru v testovacej doméne, pozrite si náš interaktívny online prenos tu je dodávaná s podporou 24 * 7, ktorá vás prevedie celým vzdelávacím obdobím.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.