Opret automatiserede Tests med TestNG

1 Introduktion

automatiserede tests kan oprettes med forskellige værktøjer, afhængigt af typen af test. Integrationstest kan oprettes med SoapUI, enhedstest med Enhedstestmodulet og UI-test med selen IDE. Med selen IDE kan du oprette scripts til at hjælpe med automatiseringsstøttet sonderende test. Hvis du ønsker at oprette robuste, bro.ser-baserede tests, skal du undersøge at bruge en testramme med selen.

TestNG er en Java-testramme, der kan bruges til at drive selen. I denne vejledning lærer du, hvordan du opretter en automatiseret test med TestNG.

denne vejledning vil lære dig, hvordan du gør følgende:

  • Opret TestNG testfiler
  • Kør automatiserede tests med TestNG
  • Generer rapporter med TestNG

2 forudsætninger

før du begynder med denne vejledning, skal du sørge for at have gennemført følgende forudsætninger:

  • Hent og installer Eclipse
  • Hent selen Client &

denne vejledning bruger appskabelonen firmaudgifter, der starter i afsnittet Tilføj den tredje testmetode til et eksempelscenarie. Men denne app skabelon er ikke længere platform-understøttet af . Derfor kan sektioner, der bruger denne appskabelon, kun bruges som reference og ikke som sektioner, der kan udføres trin for trin.

3 Oprettelse af et Java-projekt

i dette kapitel installerer du TestNG-plug-in ‘ en og opretter et Java-projekt i Eclipse inklusive TestNG-og Selenbibliotekerne:

  1. åben formørkelse.
  2. følg instruktionerne i Eclipse plug-in > Installer fra opdatering site Sektion I henter TestNG.
  3. genstart Eclipse for ændringer at træde i kraft.
  4. Vælg Fil > Nyt > Java-Projekt.
  5. indtast MyFirstTestNGProject for projektnavnet, og klik på Næste.
  6. vælg fanen Biblioteker, og klik på Tilføj bibliotek.
  7. Vælg TestNG og klik på Næste.
  8. Klik på Udfør for at indstille standard TestNG-biblioteket til dette projekt.
  9. Klik på Tilføj eksterne krukker… og naviger til, hvor du gemte Selenium JAR-filerne.
  10. Tilføj alle JAR-filerne inde i selen – og libs-mapperne:

  11. Klik på Udfør for at oprette Java-projektet. MyFirstTestNGProject vil blive vist i pakken opdagelsesrejsende:

du er nu færdig med at oprette dit projekt!

4 Opret en TestNG-fil

følg disse trin for at oprette en ny TestNG-fil:

  1. Højreklik på src-mappen og vælg Ny > andet…:
  2. Vælg TestNG class, og klik derefter på Næste:

  3. Klik på Gennemse… for at vælge en kildemappe, vælg MyFirstTestNGProject > src, og klik på OK.

  4. Indtast følgende oplysninger:

    • Pakkenavn: myfirsttestngpakke
    • Klassenavn: MyFirstTestNGFile
    • @BeforeTest: sandt
    • @Aftertest: sandt

  5. Klik på Udfør. Skabelonen til din første TestNG-fil oprettes automatisk:

    annotationen @Test bruges til at angive, at metoden under den er en testsag. I dette tilfælde er metoden f en testsag. Annotationen @BeforeTest bruges til at angive, at metoden under den vil blive udført før den første testsag. Annotationen @AfterTest bruges til at angive, at metoden under den vil blive udført efter den sidste testsag.

5 Oprettelse af en testcase

lad os nu kode din testcase.

5.1 Tilføj en Netdriver

følg disse trin for at oprette en variabel, der skal bruges til Netdriveren:

  1. Søg efter følgende:

    public class MyFirstTestNGFile {
  2. Tilføj koden nedenfor på næste linje. Dette vil skabe en driver variabel af typen:

    public WebDriver driver;
  3. tryk på Ctrl + Skift + O for at organisere importen. Dette vil importere de manglende udsagn og fjerne de ubrugte import udsagn. Følgende erklæring vil blive importeret:

    import org.openqa.selenium.WebDriver;

5.2 Tilføj en BeforeTest-metode

annotationen @BeforeTest bruges til at angive, at metoden under den vil blive udført før den første testsag. Før den første testsag skal du åbne den ved at følge disse trin:

  1. Skift følgende kode:

    @BeforeTestpublic void beforeTest() {}

    ind i:

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

    dette skaber en ny forekomst af driveren og åbner den.

  2. tryk på CTRL + SHIFT + O. følgende erklæring importeres:

    import org.openqa.selenium.firefox.FirefoxDriver;

5.3 Tilføj en Aftertest-metode

annotationen @AfterTest bruges til at angive, at metoden under den vil blive udført efter den sidste testsag. Efter den sidste testsag skal du lukke bro. ser ved at ændre følgende kode:

@AfterTestpublic void afterTest() {}

ind i:

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

dette vil lukke .

5.4 tilføj den første testmetode

for at tilføje den første testmetode skal du åbne en URL i bro. ser og derefter ændre følgende kode:

@Testpublic void f() {}

ind i:

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

denne testmetode åbner URL ‘ en http://localhost:8080/index.html. Som standard udføres de metoder, der er kommenteret med @Test, alfabetisk. Du kan bruge parametre til at ændre annotationens funktion. Parameteren priority kan bruges til at udføre metoderne i en anden rækkefølge. TestNG udfører annotationen @Test med den laveste prioritetsværdi op til den største.

5.5 tilføj den anden testmetode

nu hvor du er i login-vinduet, vil du gerne logge ind. Følg disse trin for at tilføje den anden testmetode:

  1. gå til http://localhost:8080/index.html.
  2. brug udviklerværktøjerne til at inspicere elementet.
  3. Klik på indtastningsfeltet brugernavn. Id ‘ et for dette felt er usernameInput. CSS-vælgeren for et ID er en hashtag (#) + navnet på ID ‘ et. I feltet Brugernavn vil dette være #usernameInput. Det samme princip bruges til de andre trin. CSS-vælgeren #usernameInput er unik. Der er en matchende knude:

  4. Gentag trin 5-6 for indtastningsfeltet adgangskode og knappen Log ind:

    Element CSS-vælger
    adgangskode indtastningsfelt #passwordInput
    Log ind-knap #loginButton
  5. Tilføj en ny testmetode kaldet login. Brug følgende kode:

    @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();}

denne testmetode indeholder følgende testtrin:

  1. indtast Msadmin som brugernavn.
  2. Indtast 1 som adgangskode.
  3. Klik på login-knappen.

5.6 Tilføj den tredje testmetode

følg disse trin for at tilføje den tredje testmetode:

  1. åbn din app, og åbn siden ProgramDetail i Appudforskeren.
  2. vælg fanen Udgifter:

    navnet på fanen Udgifter er tabPage4. Hvert element får automatisk CSS-klassen mx-name-, så fanen Udgifter får CSS-klassen mx-name-tabPage4, når appen kører.

  3. gå tilbage til Eclipse.

  4. Tilføj en ny testmetode kaldet openExpensesTab. Brug følgende kode:

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

    denne testmetode kalder ExpectedCondition hvert 500 millisekunder, indtil den enten vender tilbage med succes, eller der er gået 10 sekunder. Når 10 sekunder er gået, og elementet ikke er placeret, kastes en Timeoutundtagelse. Hvis elementet er placeret inden for 10 sekunder, klikker metoden på elementet med klassenavn mx-name-tabPage4. Klassen af fanen Udgifter er mx-name-tabPage4. CSS-vælgeren for en klasse er en prik (.) + klassenavnet, så for fanen Udgifter vil det være .mx-name-tabPage4.

5.7 Tilføj den fjerde testmetode

nu hvor du er på fanen Udgifter, vil du oprette en ny udgift. Følg disse trin for at tilføje den fjerde testmetode:

  1. Åbn Studio Pro, og åbn derefter Desktop_AdminMenu-siden.
  2. Vælg den nye Udgiftsknap:

    navnet på den nye Udgiftsknap er newButton3, så knappen vil have mx-name-newButton3 CSS-klassen:

  3. Åbn siden Desktop_ekspense_nyhedit_admin.

  4. Find navnene på følgende elementer (som du gjorde i trin 3):

    Element navn
    felt beløb textBox6
    beskrivelse rullemenu referenceSelector1
    Gem knap 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. gå tilbage til Eclipse.

  6. Tilføj en ny testmetode kaldet createExpense. Brug følgende kode:

    @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();}

    denne testmetode indeholder følgende testtrin:

    1. Klik på ny udgift.
    2. Ryd feltet Beløb.
    3. indtast 15.00 i feltet Beløb.
    4. Vælg den anden mulighed i rullemenuen beskrivelse.
    5. Klik På Gem.

    et pop op-vindue vises efter at have klikket på ny udgift (.mx-name-newButton3). For at være sikker på, at elementet på den aktive side hentes (som i dette tilfælde er pop op-vinduet), skal du tilføje .mx-window-active til CSS-vælgeren for elementerne i pop op-vinduet.

    for hvert indtastningsfelt skal du tilføje input i slutningen af CSS-vælgeren.

    standardværdien af feltet Beløb er 0,00. For at indtaste en ny værdi skal du først rydde feltet.

    referencevælgeren har seks muligheder; tom, indkvartering, måltid, andet, forsyninger, Transport. For at vælge indkvartering (den anden mulighed) skal du tilføje option:nth-child(2) i slutningen af CSS-vælgeren.

5.8 tilføj den femte testmetode

når du har oprettet en udgift, skal du logge ud. Følg disse trin for at tilføje den femte testmetode:

  1. Åbn Studio Pro, og åbn derefter Desktop_MyInfo-uddraget.
  2. Find navnet på følgende element:

    Element navn
    Log ud knap signOutButton1
  3. Tilføj en ny testmetode kaldet signOut. Brug følgende kode:

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

    denne testmetode klikker på elementet med klassenavnet mx-name-signOutButton1.

6 kør testen

du er nu klar til at køre testen. Følg disse trin for at køre testen:

  1. Højreklik på mappen MyFirstTestNGProject.
  2. vælg Kør som > TestNG Test:

    resultaterne af testen vises i konsolvinduet og i TestNG-resultatvinduet:

7 testrapport

TestNG genererer rapporter i HTML-format. Følg disse trin for at teste rapporten:

  1. Højreklik på mappen MyFirstTestNGProject, og vælg Opdater. En test-output mappe vil blive oprettet:

  2. Åbn test-output-mappen.

  3. Højreklik på indekset.html-fil.

  4. vælg Åbn med >. Rapporten vil se sådan ud:

  5. Klik på (Vis). Testmetoderne vises alfabetisk:

  6. Klik på den kronologiske visning. En oversigt med metoderne i kronologisk rækkefølge vises:

8 oprettelse af en testpakke

når du kører din test, som du gjorde i kør testen, oprettes en testpakke automatisk. Denne test suite indeholder alle testNG filer, der kan findes i projektet. Men hvad nu hvis du kun vil køre specifikke tests? Så skal du selv oprette en testpakke.

  1. Højreklik på src-mappen, og vælg Ny > andet.
  2. Åbn mappen og vælg filen:

  3. Klik på Næste.

  4. Skift filnavnet til MyFirstTestSuite.- LML.

  5. Klik på Udfør for at oprette filen:

  6. Klik på fanen Kilde:

  7. Skift følgende kode:

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

    into

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

    dette vil skabe den nye test suite MyFirstTestSuite. Testsuiten indeholder en test: Test1. Testen indeholder en testNG-fil, myfirsttestngpackage.MyFirstTestNGFile.

  8. Højreklik på MyFirstTestSuite.Kør som > 1 TestNG Suite.

godt gået! Du har oprettet din første TestNG Suite!

9 Kør din testpakke på flere bro.sere ved hjælp af @Parameters

den test, du oprettede, køres nu kun på . Hvis du vil sikre dig, at funktionaliteten fungerer som forventet i andre bro.Serere, skal du udføre multi-bro. ser-test. Med TestNG er det meget nemt at udføre den samme test på forskellige bro.sere.

  1. Hent Chromedriveren her: https://sites.google.com/a/chromium.org/chromedriver/downloads.
  2. Hent IEDriver her: http://selenium-release.storage.googleapis.com/index.html.
  3. i Eclipse skal du åbne MyFirstTestNGFile og ændre følgende kode:

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

    ind i:

    @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 bruges til at indsætte en parameter (i dette tilfælde browser) fra testpakken. Hvis bro. ser-parameteren er chrome, starter en Chrome-driver.

    i dette afsnit, chromedriver.er gemt i C://Selenium mappe. Sørg for at bruge den rigtige vej i denne kode.

  4. tryk på Ctrl + Shift + O, og følgende udsagn importeres:

    import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.testng.annotations.Parameters;
  5. Åbn MyFirstTestSuite og ændre følgende kode

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

    til:

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

    den første test (kaldet ChromeTest) har bro.ser-parameteren chrome. Denne parameter vil blive brugt i @BeforeTest – metoden i MyFirstTestNGFile.

  6. Højreklik på MyFirstTestSuite.Kør som > TestNG Suite:

godt gået! Du oprettede din første automatiserede cross-bro. ser-test med TestNG!

nu ved du, hvordan du opretter en TestNG-testfil, hvordan du opretter en testpakke, og hvordan du kører de(n) automatiserede test (er) på flere bro.sere.

glad test!

10 Læs mere

  • Test Mendiks applikationer ved hjælp af selen IDE
  • Test mikrostrømme ved hjælp af Enhedstestmodulet

Leave a Reply

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.