creați teste automate cu TestNG

1 Introducere

testele automate pot fi create cu diferite instrumente, în funcție de tipul de teste. Testele de integrare pot fi create cu SoapUI, teste unitare cu modulul de testare unitară și teste UI cu Selenium IDE. Cu Selenium IDE puteți crea scripturi pentru a ajuta la testarea exploratorie asistată de automatizare. Dacă doriți să creați teste robuste, bazate pe browser, ar trebui să analizați utilizarea unui cadru de testare cu seleniu.

TestNG este un cadru de testare Java care poate fi folosit pentru a conduce seleniul. În acest mod, veți învăța cum să creați un test automat cu TestNG.

acest how-to vă va învăța cum să faceți următoarele:

  • creați fișiere de testare TestNG
  • rulați teste automate cu TestNG
  • generați rapoarte cu TestNG

2 Cerințe preliminare

înainte de a începe cu acest ghid, Asigurați-vă că ați finalizat următoarele cerințe preliminare:

  • descărcați și instalați Eclipse
  • descărcați clientul Selenium & WebDriver pentru Java

acest mod de utilizare utilizează șablonul aplicației cheltuieli de companie începând din secțiunea Adăugați a treia metodă de testare pentru un exemplu de scenariu. Cu toate acestea, acest șablon de aplicație nu mai este susținut de platformă de Mendix. Prin urmare, secțiunile care utilizează acest șablon de aplicație pot fi utilizate doar ca referință și nu ca secțiuni care pot fi completate pas cu pas.

3 Crearea unui proiect Java

în acest capitol veți instala plug-in-ul TestNG și veți crea un proiect Java în Eclipse, inclusiv bibliotecile TestNG și Selenium:

  1. deschide eclipsa.
  2. Urmați instrucțiunile din Eclipse plug-in > instalați din secțiunea Actualizare site în descărcarea TestNG.
  3. reporniți Eclipse pentru ca modificările să aibă efect.
  4. Selectați Fișierul > Nou > Proiect Java.
  5. introduceți MyFirstTestNGProject pentru numele proiectului și faceți clic pe Următorul.
  6. selectați fila Biblioteci și faceți clic pe Adăugare bibliotecă.
  7. selectați TestNG și faceți clic pe Următorul.
  8. Faceți clic pe Terminare pentru a seta biblioteca implicită TestNG la acest proiect.
  9. Faceți clic pe Adăugare Borcane Externe… și navigați la locul în care ați salvat fișierele borcan seleniu.
  10. adăugați toate fișierele JAR din folderele selenium – și libs:

  11. Faceți clic pe Finalizare pentru a crea proiectul Java. MyFirstTestNGProject va fi afișat în Exploratorul de pachete:

acum ați terminat configurarea proiectului!

4 Crearea unui fișier TestNG

pentru a crea un nou fișier TestNG, urmați acești pași:

  1. faceți clic dreapta pe folderul src și selectați Nou > altele…:
  2. selectați clasa TestNG și apoi faceți clic pe Următorul:

  3. Faceți clic pe Răsfoire … pentru a selecta un folder sursă, selectați MyFirstTestNGProject > src și faceți clic pe OK.

  4. introduceți următoarele informații:

    • Numele pachetului: myfirsttestngpackage
    • numele clasei: MyFirstTestNGFile
    • @ Beforestest :true
    • @ AfterTest: adevărat

  5. Faceți clic pe Finalizare. Șablonul pentru primul fișier TestNG va fi creat automat:

    adnotarea @Test este utilizată pentru a afirma că metoda de sub ea este un caz de testare. În acest caz, metoda f este un caz de testare. Adnotarea @BeforeTest este utilizată pentru a afirma că metoda de sub ea va fi executată înainte de primul caz de testare. Adnotarea @AfterTest este utilizată pentru a afirma că metoda de sub ea va fi executată după ultimul caz de testare.

5 Crearea unui caz de testare

să codificăm Acum cazul dvs. de testare.

5.1 adăugarea unui WebDriver

pentru a crea o variabilă care să fie utilizată pentru WebDriver, urmați acești pași:

  1. căutați următoarele:

    public class MyFirstTestNGFile {
  2. adăugați codul de mai jos pe linia următoare. Aceasta va crea o variabilă driver de tip WebDriver:

    public WebDriver driver;
  3. apăsați Ctrl + Shift + O pentru a organiza importurile. Aceasta va importa declarațiile lipsă și va elimina declarațiile de import neutilizate. Următoarea declarație va fi importată:

    import org.openqa.selenium.WebDriver;

5.2 adăugați o metodă înainte de testare

adnotarea @BeforeTest este utilizată pentru a afirma că metoda de sub ea va fi executată înainte de primul caz de testare. Înainte de primul caz de testare, deschideți browserul Firefox urmând acești pași:

  1. modificați următorul cod:

    @BeforeTestpublic void beforeTest() {}

    în:

    @BeforeTestpublic void beforeTest() { driver = new FirefoxDriver();}

    aceasta creează o nouă instanță a driverului Firefox și deschide browserul Firefox.

  2. apăsați CTRL + SHIFT + O. următoarea declarație va fi importată:

    import org.openqa.selenium.firefox.FirefoxDriver;

5.3 Adăugați o metodă de testare ulterioară

adnotarea @AfterTest este utilizată pentru a afirma că metoda de sub ea va fi executată după ultimul caz de testare. După ultimul caz de testare, închideți browserul modificând următorul cod:

@AfterTestpublic void afterTest() {}

în:

@AfterTestpublic void afterTest() {driver.close();}

aceasta va închide browserul Firefox.

5.4 adăugați prima metodă de testare

pentru a adăuga prima metodă de testare, deschideți o adresă URL în browser, apoi modificați următorul cod:

@Testpublic void f() {}

în:

@Test(priority=1)public void openApp() {driver.get("http://localhost:8080/index.html");}

această metodă de testare va deschide URL-ul http://localhost:8080/index.html în browserul Firefox. În mod implicit, metodele adnotate de @Test sunt executate alfabetic. Puteți utiliza parametrii pentru a modifica funcția adnotării. Parametrul priority poate fi utilizat pentru a executa metodele într-o ordine diferită. TestNG va executa adnotarea @Test cu cea mai mică valoare de prioritate până la cea mai mare.

5.5 Adăugați a doua metodă de testare

acum că vă aflați în fereastra de conectare, veți dori să vă conectați. Pentru a adăuga a doua metodă de testare, urmați acești pași:

  1. deschideți Firefox și accesați http://localhost:8080/index.html.
  2. utilizați instrumentele pentru dezvoltatori pentru a inspecta elementul.
  3. Faceți clic pe câmpul de introducere a numelui de utilizator. ID-ul acestui câmp este usernameInput. Selectorul CSS al unui ID este un hashtag (#) + numele ID-ului. Pentru câmpul Nume utilizator, acesta va fi #usernameInput. Același principiu este folosit și pentru celelalte etape. Selectorul CSS # usernameInput este unic. Există un nod de potrivire:

  4. repetați pașii 5-6 pentru câmpul de introducere a parolei și butonul Conectare:

    Element selector CSS
    câmp de introducere a parolei #passwordInput
    butonul Conectare #loginButton
  5. adăugați o nouă metodă de testare numită login. Utilizați următorul cod:

    @Test(priority=2)public void login() { driver.findElement(By.cssSelector("#usernameInput")).sendKeys("MxAdmin"); driver.findElement(By.cssSelector("#passwordInput")).sendKeys("1"); driver.findElement(By.cssSelector("#loginButton")).click();}

această metodă de testare conține următoarele etape de testare:

  1. introduceți MxAdmin ca nume de utilizator.
  2. introduceți 1 ca parolă.
  3. Faceți clic pe butonul Conectare.

5.6 Adăugați a treia metodă de testare

pentru a adăuga a treia metodă de testare, urmați acești pași:

  1. deschideți aplicația și în App Explorer, deschideți pagina ProgramDetail.
  2. selectați fila Cheltuieli:

    Numele filei cheltuieli este tabPage4. Fiecare element va primi automat clasa CSS mx-name- , astfel încât fila Cheltuieli va primi clasa CSS mx-name-tabPage4 atunci când aplicația se execută.

  3. du-te înapoi la Eclipse.

  4. adăugați o nouă metodă de testare numită openExpensesTab. Utilizați următorul cod:

    @Test(priority=3)public void openExpensesTab() { WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".mx-name-tabPage4"))).click();}

    această metodă de testare apelează ExpectedCondition la fiecare 500 de milisecunde Până când se întoarce cu succes sau au trecut 10 secunde. Când au trecut 10 secunde și elementul nu este localizat, o TimeoutException va fi aruncat. Dacă elementul este localizat în 10 secunde, metoda va face clic pe elementul cu numele clasei mx-name-tabPage4. Clasa din fila Cheltuieli este mx-name-tabPage4. Selectorul CSS al unei clase este un punct (.) + numele clasei, deci pentru fila Cheltuieli, va fi .mx-name-tabPage4.

5.7 Adăugați a patra metodă de testare

acum că vă aflați în fila Cheltuieli, veți dori să creați o nouă cheltuială. Pentru a adăuga a patra metodă de testare, urmați acești pași:

  1. deschideți Studio Pro și apoi deschideți pagina Desktop_AdminMenu.
  2. selectați butonul cheltuieli noi:

    numele noului buton de cheltuieli este newButton3 , deci butonul va avea clasa CSS mx-name-newButton3 :

  3. Deschideți Pagina Desktop_Expense_NewEdit_Admin.

  4. Găsiți numele următoarelor elemente (așa cum ați făcut la Pasul 3):

    Element nume
    câmp cantitate textBox6
    descriere dropdown referenceSelector1
    butonul Salvare saveButton1
    The name of an element in your app may be different than the name shown in the Name column. In step 7, use the name of the element of your app.
  5. du-te înapoi la Eclipse.

  6. adăugați o nouă metodă de testare numită createExpense. Utilizați următorul cod:

    @Test(priority=4)public void createExpense() { driver.findElement(By.cssSelector(".mx-name-newButton3")).click(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-textBox6 input")).clear(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-textBox6 input")).sendKeys("15.00"); driver.findElement(By.cssSelector(".mx-window-active .mx-name-referenceSelector1 option:nth-child(2)")).click(); driver.findElement(By.cssSelector(".mx-window-active .mx-name-saveButton1")).click();}

    această metodă de testare conține următoarele etape de testare:

    1. Faceți clic pe cheltuieli noi.
    2. ștergeți câmpul Sumă.
    3. introduceți 15.00 în câmpul Cantitate.
    4. selectați a doua opțiune din meniul derulant descriere.
    5. Faceți Clic Pe Salvare.

    o fereastră pop-up va fi afișată după ce faceți clic pe cheltuieli noi (.mx-name-newButton3). Pentru a vă asigura că elementul paginii active este recuperat (care în acest caz este fereastra pop-up), trebuie să adăugați .mx-window-active la selectorul CSS al elementelor din fereastra pop-up.

    pentru fiecare câmp de intrare, trebuie să adăugați input la sfârșitul selectorului CSS.

    valoarea implicită a câmpului suma este 0.00. Pentru a introduce o nouă valoare, trebuie mai întâi să ștergeți câmpul.

    selectorul de referință are șase opțiuni; gol, cazare, masă, altele, Consumabile, Transport. Pentru a selecta cazare (a doua opțiune), trebuie să adăugați option:nth-child(2) la sfârșitul selectorului CSS.

5.8 Adăugați a cincea metodă de testare

după ce ați creat o cheltuială, veți dori să vă deconectați. Pentru a adăuga a cincea metodă de testare, urmați acești pași:

  1. deschideți Studio Pro și apoi deschideți fragmentul Desktop_MyInfo.
  2. Găsiți numele următorului element:

    Element nume
    butonul de deconectare signOutButton1
  3. adăugați o nouă metodă de testare numită signOut. Utilizați următorul cod:

    @Test(priority=5)public void signOut() { driver.findElement(By.cssSelector(".mx-name-signOutButton1")).click();}

    această metodă de testare va face clic pe elementul cu numele clasei mx-name-signOutButton1.

6 rulați testul

acum sunteți gata să rulați testul. Pentru a rula testul, urmați acești pași:

  1. faceți clic dreapta pe folderul MyFirstTestNGProject.
  2. selectați Executare ca > TestNG Test:

    rezultatele testului vor fi afișate în fereastra consolei și în fereastra rezultatelor TestNG:

7 raport de testare

TestNG generează rapoarte în format HTML. Pentru a testa raportul, urmați acești pași:

  1. faceți clic dreapta pe folderul MyFirstTestNGProject și selectați Reîmprospătare. Va fi creat un dosar test-output:

  2. Deschideți folderul test-output.

  3. faceți clic dreapta pe index.fișier html.

  4. selectați Deschidere cu > browser Web. Raportul va arăta astfel:

  5. clic (arată). Metodele de testare sunt prezentate alfabetic:

  6. Faceți clic pe vizualizarea cronologică. Va fi afișată o prezentare generală cu metodele în ordine cronologică:

8 crearea unei Suite de testare

când executați testul așa cum ați făcut în Run the Test, o suită de testare este creată automat. Această suită de testare conține toate fișierele testNG care pot fi găsite în proiect. Dar dacă doriți doar să efectuați teste specifice? Trebuie să creați singur o suită de testare.

  1. faceți clic dreapta pe folderul src și selectați Nou > altele.
  2. Deschideți folderul XML și selectați Fișier XML:

  3. Faceți clic pe Următorul.

  4. schimbați numele fișierului în MyFirstTestSuite.xml.

  5. Faceți clic pe Terminare pentru a crea fișierul XML:

  6. Faceți clic pe fila Sursă:

  7. modificați următorul cod:

    <?xml version="1.0" encoding="UTF-8"?>

    în

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="Test1"> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    aceasta va crea noua suită de testare MyFirstTestSuite. Suita de testare conține un test: Test1. Testul conține un fișier testNG, myfirsttestngpackage.MyFirstTestNGFile.

  8. faceți clic dreapta pe MyFirstTestSuite.fișier xml și selectați Executare ca > 1 TestNG Suite.

Bravo! Ai creat prima ta Suită TestNG!

9 rulați suita de testare pe Mai multe browsere folosind @Parameters

testul pe care l-ați creat este acum rulat numai pe Firefox. Dacă doriți să vă asigurați că funcționalitatea funcționează conform așteptărilor în alte browsere, trebuie să efectuați teste multi-browser. Cu TestNG este foarte ușor să efectuați același test pe browsere diferite.

  1. descărcați ChromeDriver aici: https://sites.google.com/a/chromium.org/chromedriver/downloads.
  2. descărcați IEDriver aici: http://selenium-release.storage.googleapis.com/index.html.
  3. în Eclipse, deschideți MyFirstTestNGFile și modificați următorul cod:

    @BeforeTestpublic void beforeTest() { driver = new FirefoxDriver();}

    în:

    @Parameters("browser")@BeforeTestpublic void beforeTest(String browser) { if(browser.equalsIgnoreCase("chrome")){ System.setProperty("webdriver.chrome.driver", "C://Selenium/chromedriver.exe"); driver = new ChromeDriver(); } else if(browser.equalsIgnoreCase("ie")){ System.setProperty("webdriver.ie.driver", "C://Selenium/IEDriverServer.exe"); driver = new InternetExplorerDriver(); } else{ driver = new FirefoxDriver(); }}

    @Parameters este folosit pentru a insera un parametru (în acest caz browser) din suita de testare XML. Dacă parametrul browserului este chrome, va porni un driver Chrome.

    în această secțiune, chromedriver.exe este stocat în C://Selenium dosar. Asigurați-vă că utilizați calea corectă în acest cod.

  4. apăsați Ctrl+Shift + O și următoarele declarații vor fi importate:

    import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.testng.annotations.Parameters;
  5. deschideți MyFirstTestSuite și modificați următorul cod

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="Test1"> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    în:

    <?xml version="1.0" encoding="UTF-8"?><suite name="MyFirstTestSuite"> <test name="ChromeTest"> <parameter name="browser" value="chrome" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test> <test name="IETest"> <parameter name="browser" value="ie" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="firefox" /> <classes> <class name="myfirsttestngpackage.MyFirstTestNGFile" /> </classes> </test></suite>

    primul test (numit ChromeTest) are parametrul browser chrome. Acest parametru va fi utilizat în @BeforeTest metoda în MyFirstTestNGFile.

  6. faceți clic dreapta pe MyFirstTestSuite.fișier xml și selectați Executare ca > TestNG Suite:

Bravo! Ai creat primul test automat cross-browser cu TestNG!

acum știți cum să creați un fișier de testare TestNG, cum să creați o suită de testare și cum să rulați testele automate pe mai multe browsere.

testare fericită!

10 citiți mai multe

  • testați aplicațiile Mendix folosind Selenium IDE
  • testați Microfluxurile folosind modulul de testare a unității

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată.