how use testng framework
En els darrers tutorials, vam aportar llum sobre les ordres bàsiques i habituals de WebDriver. També vam conèixer les estratègies de localització d’elements d’interfície d’usuari i la seva inclusió als scripts de prova. I, per tant, hem desenvolupat el nostre molt primer script de prova d'automatització de WebDriver .
Seguint amb aquest tutorial, parlarem de tot sobre TestNG, les seves funcions i les seves aplicacions.
TestNG és un marc avançat dissenyat de manera que els desenvolupadors i els provadors aprofitin els beneficis. Per a les persones que ja utilitzen JUnit, TestNG no semblaria diferent amb algunes funcions avançades. Amb el començament dels frameworks, JUnit va guanyar un enorme popularitat entre les aplicacions de Java, desenvolupadors de Java i provadors de Java, amb un augment notable de la qualitat del codi.
Vegeu també=> Tutorial JUnit i el seu ús en scripts Selenium
Tot i ser un marc senzill i fàcil d’utilitzar, JUnit té les seves pròpies limitacions que donen lloc a la necessitat de portar TestNG a la imatge. TestNG va ser creat per un aclamat programador anomenat 'Cedric Beust'. TestNG és un marc de codi obert que es distribueix sota la llicència de programari Apache i està disponible per descarregar-lo fàcilment.
Parlar sobre el nostre requisit d’introduir TestNG amb WebDriver és que proporciona un format de resultat de prova eficient i eficaç que, al seu torn, es pot compartir amb les parts interessades per tenir una visió de la salut del producte / aplicació, eliminant així l’inconvenient de la incapacitat de WebDriver per generar informes de proves. TestNG té un mecanisme integrat de gestió d’excepcions que permet executar el programa sense finalitzar inesperadament.
Tant TestNG com JUnit pertanyen a la mateixa família d’Unity Frameworks on TestNG és una versió ampliada de JUnit i s’utilitza més àmpliament en l’era actual de proves.
Què aprendreu:
- Característiques de TestNG
- Instal·lació de TestNG a Eclipse
- Creació d’un projecte TestNG de mostra
- S'està creant la classe TestNG
- Execució de l'script TestNG
- Informes HTML
- Definició de la prioritat a TestNG
- Resolució de codi
- Anotacions TestNG
- Conclusió
- Lectura recomanada
Característiques de TestNG
- Suport per a anotacions
- Suport per a la parametrització
- Metodologia d’execució avançada que no requereix la creació de suites de proves
- Suport per a proves basades en dades mitjançant proveïdors de dades
- Permet a l'usuari establir les prioritats d'execució dels mètodes de prova
- Admet un entorn segur contra amenaces quan s’executen diversos fils
- Admet fàcilment la integració amb diverses eines i connectors com eines de construcció (Ant, Maven, etc.), entorn de desenvolupament integrat (Eclipse).
- Facilita l’usuari amb mitjans eficaços de generació d’informes mitjançant ReportNG
Hi ha diversos avantatges que fan que TestNG sigui superior a JUnit. Alguns d’ells són:
- Anotacions fàcils i avançades
- Es poden establir patrons d’execució
- Execució simultània de scripts de prova
- Es poden establir dependències de casos de prova
Les anotacions van precedides d'un símbol '@' tant a TestNG com a JUnit.
Per tant, ara comencem amb la part d’instal·lació i implementació.
Grid en línia per a l'automatització de proves de seleni
# 1) LambdaTest
El marc TestNG s’utilitza millor amb una xarxa Selenium Grid, com ara LambdaTest, que us ajuda a executar proves paral·leles en més de 2.000 navegadors i sistemes operatius reals, sense la molèstia de mantenir una Selenium Grid pròpia.
Podeu obtenir una gran varietat de registres, com ara registres d’ordres, registres de xarxa, registres de Selenium en brut, metadades, etc. juntament amb una gravació de vídeo completa del vostre script de prova de Selenium per a la depuració.
LambdaTest també ofereix integracions amb múltiples eines CI / CD com Jenkins, Travis CI, CircleCI, etc. per a proves contínues. LambdaTest també us permet integrar-vos amb nombroses eines de gestió de projectes per facilitar el registre d’errors.
=> Visiteu el lloc web LambdaTestInstal·lació de TestNG a Eclipse
Seguiu els passos següents per descarregar i instal·lar TestNG a eclipse:
Pas 1: Inicieu eclipse IDE -> Feu clic a l'opció Ajuda del menú -> Seleccioneu l'opció 'Eclipse Marketplace ..' al menú desplegable.
Pas 2: Introduïu la paraula clau 'TestNG' al quadre de text de cerca i feu clic al botó 'Vés' com es mostra a continuació.
Pas 3: Tan bon punt l'usuari faci clic al botó 'Vés', es mostraran els resultats que coincideixen amb la cadena de cerca. Ara l'usuari pot fer clic al botó Instal·la per instal·lar TestNG.
Pas 4: Tan bon punt l’usuari fa clic al botó Instal·la, se li demana una finestra per confirmar la instal·lació. Feu clic al botó 'Confirma'.
Pas 5: Al següent pas, l'aplicació us demanarà que accepteu la llicència i, a continuació, feu clic al botó 'Finalitza'.
Pas 6: La instal·lació s’inicia ara i el progrés es pot veure de la següent manera:
Es recomana reiniciar el nostre eclipsi per reflectir els canvis realitzats.
En reiniciar, un usuari pot verificar la instal·lació de TestNG navegant a 'Preferències' des de l'opció 'Finestra' a la barra de menú. Consulteu la figura següent per obtenir el mateix.
(Feu clic a la imatge per veure la imatge ampliada)
Creació d’un projecte TestNG de mostra
Comencem amb la creació del projecte TestNG en eclipse IDE.
Pas 1: Feu clic a l'opció Fitxer del menú -> Feu clic a Nou -> Seleccioneu Projecte Java.
Pas 2: Introduïu el nom del projecte com a 'DemoTestNG' i feu clic al botó 'Següent'. Com a pas final, feu clic al botó 'Finalitza' i el vostre projecte Java estarà llest.
Pas 3: El següent pas és configurar la biblioteca TestNG al projecte Java recentment creat. Per al mateix, feu clic a la pestanya 'Biblioteques' a Configuració del camí de construcció. Feu clic a 'Afegeix biblioteca' com es mostra a continuació.
Pas 4: L'usuari se sotmetrà a un quadre de diàleg que el promocionarà per seleccionar la biblioteca que es vol configurar. Seleccioneu TestNG i feu clic al botó 'Següent', tal com es mostra a la imatge. Al final, feu clic al botó 'Finalitza'.
Ara TestNG s’afegeix al projecte Java i les biblioteques necessàries es poden veure a l’explorador de paquets quan s’expandeix el projecte.
Afegiu totes les biblioteques i pots Selenium descarregats al camí de construcció del projecte, tal com es mostra a la tutoria anterior.
S'està creant la classe TestNG
Ara que hem fet tota la configuració bàsica per començar amb la creació de scripts de prova mitjançant TestNG. Creem un exemple de script amb TestNG.
Pas 1: Amplieu el projecte 'DemoTestNG' i passeu a la carpeta 'src'. Feu clic amb el botó dret al paquet 'src' i aneu a Nou -> Altres.
Pas 2: Amplieu l'opció TestNG i seleccioneu l'opció de classe 'TestNG' i feu clic al botó 'Següent'.
Pas 3: Proporcioneu els detalls requerits de la manera següent. Especifiqueu la carpeta Font, el nom del paquet i el nom de la classe TestNG i feu clic al botó Finalitza. Com es desprèn de la imatge següent, l'usuari també pot comprovar diverses notacions TestNG que es reflectirien en l'esquema de la classe de prova. Les anotacions TestNG es parlaran més endavant en aquesta sessió.
La classe TestNG esmentada anteriorment es crearia amb l'esquema per defecte.
Ara que hem creat les bases bàsiques de l'script de prova TestNG, injectem ara el codi de prova real. Estem fent servir el mateix codi que vam fer servir a la sessió anterior.
Escenari:
- Inicieu el navegador i obriu 'gmail.com'.
- Verifiqueu el títol de la pàgina i imprimiu el resultat de la verificació.
- Introduïu el nom d'usuari i la contrasenya.
- Feu clic al botó Inicia la sessió.
- Tanqueu el navegador web.
Codi:
package TestNG; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import org.testng.annotations.Test; public class DemoTestNG { public WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; @Test public void gmailLogin() { // launch the firefox browser and open the application url driver.get('https://gmail.com'); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); Assert.assertEquals(expectedTitle,actualTitle); // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); } }
Explicació del codi respecte a TestNG
1) @Test - @Test és un dels Anotacions TestNG . Aquesta anotació permet a l'execució del programa saber que el mètode anotat com a @Test és un mètode de prova. Per poder utilitzar diferents anotacions TestNG, hem d'importar el paquet ' importació org.testng.annotations. * ”.
2) No cal cap mètode main () mentre es creen scripts de prova amb TestNG. L'execució del programa es fa sobre la base d'anotacions.
3) En una declaració, hem utilitzat la classe Assert mentre comparàvem el valor esperat i el real. La classe Assert s’utilitza per realitzar diverses verificacions. Per poder utilitzar diferents afirmacions, cal que importem ' importació org.testng.Assert ”.
Execució de l'script TestNG
L'escriptura de prova TestNG es pot executar de la següent manera:
=> Feu clic amb el botó dret a qualsevol lloc de la classe dins de l'editor o la classe java dins de l'explorador de paquets, seleccioneu l'opció 'Executa com' i feu clic a la 'Prova TestNG'.
El resultat TestNG es mostra en dues finestres:
- Finestra de la consola
- Finestra de resultats TestNG
Consulteu les captures de pantalla següents per a les finestres de resultats:
auriculars vr per a xbox one x
(Feu clic a la imatge per veure la imatge ampliada)
Informes HTML
TestNG inclou una gran capacitat de generar informes HTML llegibles i comprensibles per a les execucions de proves. Aquests informes es poden visualitzar en qualsevol dels navegadors i també es poden visualitzar mitjançant la compatibilitat del navegador de la versió Eclipse.
Per generar l'informe HTML, seguiu els passos següents:
Pas 1: Executeu la classe TestNG de nova creació. Actualitzeu el projecte que conté la classe TestNG fent-hi clic amb el botó dret i seleccionant l'opció 'Actualitzar'.
Pas 2: Al projecte es generarà una carpeta anomenada 'sortida de prova' al nivell de carpeta 'src'. Amplieu la carpeta 'test-output' i obriu-lo al fitxer 'emailable-report.html' amb el navegador Eclipse. El fitxer HTML mostra el resultat de l'execució recent.
Pas 3: L'informe HTML s'obrirà dins de l'entorn eclipsi. Consulteu la imatge següent.
Actualitzeu la pàgina per veure els resultats de noves execucions, si n'hi ha.
Definició de la prioritat a TestNG
Fragment de codi
package TestNG; import org.testng.annotations.*; public class SettingPriority { @Test(priority=0) public void method1() { } @Test(priority=1) public void method2() { } @Test(priority=2) public void method3() { } }
Resolució de codi
Si un script de prova es compon de més d'un mètode de prova, es pot establir la seqüència i la prioritat d'execució mitjançant l'anotació TestNG '@Test' i establint un valor per al paràmetre 'prioritat'.
Al fragment de codi anterior, tots els mètodes s’anoten amb l’ajuda @Test i les prioritats s’estableixen a 0, 1 i 2. Per tant, l’ordre d’execució en què s’executarien els mètodes de prova és:
- Mètode 1
- Mètode2
- Mètode3
Suport per a anotacions
Hi ha diverses anotacions proporcionades a TestNG i JUnit. La subtil diferència és que TestNG proporciona algunes anotacions més avançades a JUnit.
Anotacions TestNG
A continuació es mostra la llista de les anotacions més útils i favorables de TestNG:
Anotació | Descripció |
---|---|
@Després de classe | L'anotació notifica al sistema que el mètode anotat com a @AfterClass s'ha d'executar després d'executar l'últim mètode de prova dins de la mateixa classe de prova. |
@Prova | L'anotació notifica al sistema que el mètode anotat com a @Test és un mètode de prova |
@BeforeSuite | L'anotació notifica al sistema que el mètode anotat com a @BeforeSuite s'ha d'executar abans d'executar les proves a tota la suite. |
@AfterSuite | L'anotació notifica al sistema que el mètode anotat com a @AfterSuite s'ha d'executar després d'executar les proves a tota la suite. |
@BeforeTest | L'anotació notifica al sistema que el mètode anotat com a @BeforeTest s'ha d'executar abans d'executar qualsevol mètode de prova dins de la mateixa classe de prova. |
@AfterTest | L'anotació notifica al sistema que el mètode anotat com a @AfterTest s'ha d'executar després d'executar qualsevol mètode de prova dins de la mateixa classe de prova. |
@BeforeClass | L'anotació notifica al sistema que el mètode anotat com a @BeforeClass s'ha d'executar abans d'executar el primer mètode de prova dins de la mateixa classe de prova. |
@BeforeMethod | L'anotació notifica al sistema que el mètode anotat com a @BeforeMethod s'ha d'executar abans d'executar qualsevol mètode de prova dins de la mateixa classe de prova. |
@AfterMethod | L'anotació notifica al sistema que el mètode anotat com a @AfterMethod s'ha d'executar després d'executar qualsevol mètode de prova dins de la mateixa classe de prova. |
@BeforeGroups | L'anotació notifica al sistema que el mètode anotat com a @BeforeGroups és un mètode de configuració que contracta un grup i que s'ha d'executar abans d'executar el primer mètode de prova del grup |
@AfterGroups | L'anotació notifica al sistema que el mètode anotat com a @AfterGroups és un mètode de configuració que contracta un grup i que s'ha d'executar després d'executar l'últim mètode de prova del grup |
Nota : Moltes de les anotacions esmentades també es poden exercir en el marc JUnit 3 i JUnit 4.
Conclusió
Mitjançant aquest tutorial, hem intentat fer-vos conèixer un marc de proves basat en Java anomenat TestNG. Vam començar la sessió amb la instal·lació del framework i ens vam moure amb la creació de scripts i els temes avançats. Vam discutir totes les anotacions proporcionades per TestNG. Hem implementat i executat el nostre primer script de prova TestNG mitjançant anotacions i afirmacions.
Resum de l'article:
- TestNG és un marc avançat dissenyat per aprofitar els avantatges tant dels desenvolupadors com dels provadors.
- TestNG és un marc de codi obert que es distribueix sota la llicència de programari Apache i està disponible per descarregar-lo fàcilment.
- TestNG es considera superior a JUnit per les seves funcions avançades.
- Característiques de TestNG
- Suport per a anotacions
- Metodologia d’execució avançada que no requereix la creació de suites de proves
- Suport per a la parametrització
- Suport per a proves basades en dades mitjançant proveïdors de dades
- Definició de prioritats d'execució per als mètodes de prova
- Admet un entorn segur contra amenaces quan s’executen diversos fils
- Admet fàcilment la integració amb diverses eines i connectors com eines de construcció (Ant, Maven, etc.), entorn de desenvolupament integrat (Eclipse).
- Facilita l’usuari amb mitjans eficaços de generació d’informes mitjançant ReportNG
- Avantatges de TestNG sobre JUnit
- S'han afegit anotacions avançades i fàcils
- Es poden establir patrons d’execució
- Execució simultània de scripts de prova
- Es poden establir dependències de casos de prova
- TestNG està disponible de manera gratuïta i es pot instal·lar fàcilment a l'IDE Eclipse mitjançant Eclipse Market.
- Després de la instal·lació, TestNG estaria disponible com a biblioteca dins de l'entorn Eclipse.
- Creeu un projecte Java nou i configureu el camí de construcció mitjançant una biblioteca TestNG.
- Creeu una nova classe TestNG ampliant el projecte TestNG creat i aneu a la carpeta 'src'. Feu clic amb el botó dret al paquet 'src' i aneu a Nou -> Altres. Seleccioneu l'opció de classe TestNG.
- @Test és una de les anotacions proporcionades per TestNG. Aquesta anotació permet que l'execució del programa conegui que el mètode anotat com a @Test és un mètode de prova. Per poder utilitzar diferents anotacions TestNG, hem d'importar el paquet ' importació org.testng.annotations. * ”.
- No cal cap mètode main () mentre es creen scripts de prova amb TestNG.
- Utilitzem la classe Assert mentre comparem el valor esperat i el real. La classe Assert s’utilitza per realitzar diverses verificacions. Per poder utilitzar diferents afirmacions, cal que importem ' importació org.testng.Assert ”.
- Si un script de prova es compon de més d'un mètode de prova, es pot establir la seqüència i la prioritat d'execució mitjançant l'anotació TestNG '@Test' i establint un valor per al paràmetre 'prioritat'.
- TestNG té la capacitat de generar automàticament informes d’execució de proves llegibles per humans. Aquests informes es poden visualitzar en qualsevol dels navegadors i també es poden visualitzar mitjançant el suport integrat del navegador d’Eclipse.
Pròxim tutorial núm. 13 : Seguint amb els propers tutorials de la sèrie Selenium, ens concentraríem en el maneig dels diversos tipus d’elements web disponibles a les pàgines web. Per tant, al següent tutorial, concentraríem el nostre focus en els 'desplegables' i exercirem les seves estratègies de maneig. També parlaríem sobre la classe Select de WebDriver i els seus mètodes per seleccionar valors als desplegables.
Una observació per als lectors : Tot i que el nostre següent tutorial de la sèrie Selenium està en mode de processament, els lectors poden començar a crear els seus propis scripts bàsics de WebDriver mitjançant el marc TestNG.
Per obtenir scripts i conceptes més avançats, incloeu tantes anotacions i afirmacions a les vostres classes TestNG i executeu-les mitjançant l'entorn TestNG. Analitzeu també els informes HTML generats per TestNG.
Lectura recomanada
- Com s'utilitza Firebug per crear scripts de Selenium - Tutorial núm. 4 de Selenium
- Introducció a JUnit Framework i el seu ús a Selenium Script - Selenium Tutorial # 11
- Més informació sobre com s'utilitzen les anotacions TestNG al seleni (amb exemples)
- Tutorial de Cogombre Selenium: Integració de Cogombre Java Selenium WebDriver
- Com localitzar elements als navegadors Chrome i IE per crear scripts Selenium - Tutorial Selenium # 7
- Creació de Selenium Framework i accés a les dades de proves des d'Excel: tutorial núm. 21 de Selenium
- Creació de genèrics i proves: Tutorial Selenium núm. 22
- Tutorials Eclipse en profunditat per a principiants