Opprett Automatiserte Tester Med TestNG

1 Introduksjon

Automatiserte tester kan opprettes med forskjellige verktøy, avhengig av type tester. Integrasjonstester kan opprettes Med SoapUI, enhetstester med Enhetstestmodulen, OG UI-tester med Selen IDE. Med Selen IDE kan du lage skript for å hjelpe til med automatiseringsassistert utforskende testing. Hvis du ønsker å lage robuste, nettleserbaserte tester, bør du se på å bruke et testramme med Selen.

TestNG Er En Java testing rammeverk som kan brukes til å kjøre Selen. I denne how-to vil du lære å lage en automatisert test Med TestNG.

denne how-to vil lære deg hvordan du gjør følgende:

  • Lag TestNG testfiler
  • Kjør automatiserte tester Med TestNG
  • Generer rapporter Med TestNG

2 Forutsetninger

før du begynner med denne veiledningen, må du kontrollere at du har fullført følgende forutsetninger:

  • Last Ned Og installer Eclipse
  • Last Ned Selenium-Klienten & WebDriver For Java

denne fremgangsmåten bruker Appmalen For Firmautgifter som starter I Delen Legg Til Den Tredje Testmetoden for et eksempelscenario. Denne appmalen er imidlertid ikke lenger plattformstøttet av Mendix. Derfor kan seksjoner som bruker denne appmalen bare brukes som referanse og ikke som seksjoner som kan fullføres trinnvis.

3 Opprette Et Java-Prosjekt

i dette kapittelet vil du installere TestNG plug-in og lage Et Java-prosjekt I Eclipse inkludert TestNG og Selenium biblioteker:

  1. Åpne Eclipse.
  2. Følg instruksjonene i Eclipse-plugin-modulen > Installer fra oppdateringssted-delen under Nedlasting Av TestNG.
  3. Start Eclipse På Nytt for at endringene skal tre i kraft.
  4. Velg Fil > Nytt > Java-Prosjekt.
  5. Skriv Inn MyFirstTestNGProject for Prosjektnavnet og klikk Neste.
  6. Velg Kategorien Biblioteker og klikk På Legg Til Bibliotek.
  7. Velg TestNG og klikk På Neste.
  8. Klikk Fullfør for å angi Standard testng-bibliotek til dette prosjektet.
  9. Klikk Legg Til Eksterne Krukker… og naviger til hvor Du lagret Selenium JAR-filene.
  10. Legg til ALLE JAR-filene i selen – og libs-mappene:

  11. Klikk Fullfør for å opprette Java-prosjektet. MyFirstTestNGProject vil bli vist I Pakken Explorer:

Du er nå ferdig med å sette opp prosjektet ditt!

4 Opprett En TestNG-Fil

Følg disse trinnene for å opprette en Ny TestNG-fil:

  1. Høyreklikk på src-mappen Og velg Ny > Annet…:
  2. Velg TestNG klasse og klikk Deretter Neste:

  3. klikk Bla gjennom… for å velge en kildemappe, velg MyFirstTestNGProject > src ,og klikk OK.

  4. Skriv inn følgende informasjon:

    • Pakkenavn: myfirsttestngpackage
    • Klassenavn: MyFirstTestNGFile
    • @BeforeTest: true
    • @AfterTest: sant

  5. Klikk Fullfør. Malen for din første TestNG-fil vil bli opprettet automatisk:

    @Test annotasjonen brukes til å angi at metoden under den er et testfall. I dette tilfellet er metoden f et testfall. @BeforeTest annotasjonen brukes til å angi at metoden under den vil bli utført før den første testsaken. Annotasjonen @AfterTest brukes til å angi at metoden under den vil bli utført etter det siste testtilfellet.

5 Opprette Et Testtilfelle

La oss nå kode testtilfellet ditt.

5.1 Legg Til En WebDriver

Følg disse trinnene for å opprette en variabel som skal brukes For WebDriver:

  1. Søk etter følgende:

    public class MyFirstTestNGFile {
  2. Legg til koden nedenfor pa neste linje. Dette vil skape en driver variabel Av Typen WebDriver:

    public WebDriver driver;
  3. Trykk Ctrl + Skift + O for å organisere importen. Dette vil importere de manglende setningene og fjerne ubrukte import-setningene. Følgende uttalelse vil bli importert:

    import org.openqa.selenium.WebDriver;

5.2 Legg Til En BeforeTest-Metode

@BeforeTest annotasjonen brukes til å angi at metoden under den vil bli utført før det første testtilfellet. Før det første testtilfellet, åpne Firefox-nettleseren ved å følge disse trinnene:

  1. Endre følgende kode:

    @BeforeTestpublic void beforeTest() {}

    inn i:

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

    dette skaper en ny forekomst Av Firefox-driveren og åpner Firefox-nettleseren.

  2. Trykk CTRL + SKIFT + O. følgende setning vil bli importert:

    import org.openqa.selenium.firefox.FirefoxDriver;

5.3 Legg Til En Ettertestmetode

@AfterTest annotasjonen brukes til å angi at metoden under den vil bli utført etter det siste testtilfellet. Etter det siste testtilfellet, lukk nettleseren ved å endre følgende kode:

@AfterTestpublic void afterTest() {}

inn i:

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

dette vil lukke Firefox-nettleseren.

5.4 Legg til Den Første Testmetoden

hvis du vil legge til den første testmetoden, åpner du EN NETTADRESSE i nettleseren og endrer deretter følgende kode:

@Testpublic void f() {}

inn i:

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

denne testmetoden åpner NETTADRESSEN http://localhost:8080/index.html I Firefox-nettleseren. Som standard utføres metodene som er merket med @Test alfabetisk. Du kan bruke parametere til å endre merknadens funksjon. Parameteren priority kan brukes til å utføre metodene i en annen rekkefølge. TestNG vil utføre @Test annotasjonen med laveste prioritetsverdi opp til den største.

5.5 Legg Til Den Andre Testmetoden

Nå som du er i påloggingsvinduet, vil du logge på. Følg disse trinnene for å legge til den andre testmetoden:

  1. Åpne Firefox og gå til http://localhost:8080/index.html.
  2. Bruk utviklerverktøyene til å inspisere elementet.
  3. Klikk På Inntastingsfeltet For Brukernavn. IDEN til dette feltet er usernameInput. CSS-velgeren TIL EN ID er en hashtag (#) + navnet PÅ ID-EN. For Brukernavnfeltet vil dette være #usernameInput. Det samme prinsippet brukes for de andre trinnene. CSS-velgeren #usernameInput er unik. Det er en matchende node:

  4. Gjenta trinn 5-6 for inntastingsfeltet For Passord og Logg på-knappen:

    Element CSS-Velger
    passord input field #passwordInput
    Logg inn-knappen #loginButton
  5. Legg til en ny testmetode kalt login. Bruk 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 testmetoden inneholder følgende teststrinn:

  1. Skriv Inn MxAdmin som brukernavn.
  2. Skriv inn 1 som passord.
  3. Klikk på logg inn-knappen.

5.6 Legg Til Den Tredje Testmetoden

Følg disse trinnene for å legge til den tredje testmetoden:

  1. Åpne appen, og åpne Programdetalj-siden i Apputforsker.
  2. Velg Kategorien Utgifter:

    Navnet På Kategorien Utgifter er tabPage4. Hvert element vil automatisk få CSS-klassen mx-name-, så kategorien utgifter vil få CSS-klassen mx-name-tabPage4 når programmet kjører.

  3. tilbake Til Eclipse.

  4. Legg til en ny testmetode kalt openExpensesTab. Bruk 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 testmetoden kaller ExpectedCondition hver 500 millisekunder til den enten returnerer vellykket eller 10 sekunder har gått. Når 10 sekunder har gått og elementet ikke er plassert, vil En TimeoutException bli kastet. Hvis elementet er plassert innen 10 sekunder, klikker metoden elementet med klassenavn mx-name-tabPage4. Klassen i kategorien utgifter er mx-name-tabPage4. CSS-velgeren til en klasse er en prikk (.) + klassenavnet, så for utgifter-fanen blir det .mx-name-tabPage4.

5.7 Legg Til Den Fjerde Testmetoden

Nå som du er I Kategorien Utgifter, vil du opprette en ny utgift. Følg disse trinnene for å legge til den fjerde testmetoden:

  1. Åpne Studio Pro, og åpne Deretter Desktop_AdminMenu-siden.
  2. Velg Ny Utgift-knappen:

    navnet På Den Nye Utgiftsknappen er newButton3, så knappen vil ha CSS-klassen mx-name-newButton3 :

  3. Åpne Siden Desktop_Expense_NewEdit_Admin.

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

    Element Navn
    Beløp felt textBox6
    beskrivelse dropdown referenceSelector1
    Lagre knapp 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. tilbake Til Eclipse.

  6. Legg til en ny testmetode kalt createExpense. Bruk 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 testmetoden inneholder følgende teststrinn:

    1. Klikk På Ny Utgift.
    2. Fjern Feltet Beløp.
    3. Skriv inn 15.00 I Beløp-feltet.
    4. Velg det andre alternativet Fra Rullegardinmenyen Beskrivelse.
    5. Klikk På Lagre.

    et popup-vindu vil bli vist etter å ha klikket På Ny Utgift (.mx-name-newButton3). For å være sikker på at elementet på den aktive siden er hentet (som i dette tilfellet er popup-vinduet), må du legge til .mx-window-active TIL CSS-velgeren av elementene i popup-vinduet.

    for hvert inntastingsfelt må du legge til input på slutten AV CSS-velgeren.

    standardverdien for beløp-feltet er 0,00. For å angi en ny verdi må du først fjerne feltet.

    referansevelgeren har seks alternativer; tom, Overnatting, Måltid, Annet, Forsyninger, Transport. For å velge Overnatting (det andre alternativet), må du legge til option:nth-child(2) på slutten AV CSS-velgeren.

5.8 Legg Til Den Femte Testmetoden

etter at du har opprettet en utgift, vil du logge av. Følg disse trinnene for å legge til den femte testmetoden:

  1. Åpne Studio Pro, og åpne Deretter Desktop_MyInfo-kodebiten.
  2. Finn navnet på følgende element:

    Element Navn
    Logg ut-knappen signOutButton1
  3. Legg til en ny testmetode kalt signOut. Bruk følgende kode:

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

    denne testmetoden klikker elementet med klassenavnet mx-name-signOutButton1.

6 Kjør Testen

Du er nå klar til å kjøre testen. Følg disse trinnene for å kjøre testen:

  1. Høyreklikk mappen MyFirstTestNGProject.
  2. Velg Kjør som > TestNG-Test:

    resultatene av testen vil bli vist i konsollvinduet og I testng-resultatvinduet:

7 Testrapport

TestNG genererer rapporter I HTML-format. Følg disse trinnene for å teste rapporten:

  1. Høyreklikk mappen MyFirstTestNGProject og velg Oppdater. En test-output mappe vil bli opprettet:

  2. Åpne mappen test-output.

  3. Høyreklikk indeksen.html-fil.

  4. Velg Åpne med > Nettleser. Rapporten vil se slik ut:

  5. Klikk (vis). Testmetodene vises alfabetisk:

  6. Klikk På Kronologisk visning. En oversikt med metodene i kronologisk rekkefølge vil bli vist:

8 Opprette En Testpakke

når du kjører testen som du gjorde I Kjør Testen, opprettes en testpakke automatisk. Denne testpakken inneholder alle testNG-filer som finnes i prosjektet. Men hva om du bare vil kjøre bestemte tester? Enn du trenger å lage en testpakke selv.

  1. Høyreklikk på src-mappen Og velg Ny > Annet.
  2. Åpne XML-mappen og velg XML-Fil:

  3. Klikk På Neste.

  4. Endre filnavnet Til MyFirstTestSuite.xml.

  5. Klikk Fullfør for å opprette XML-filen:

  6. Klikk På Kilde-fanen:

  7. Endre følgende kode:

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

    inn

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

    dette vil skape den nye testsuiten MyFirstTestSuite. Testpakken inneholder en test: Test1. Testen inneholder en testNG-fil, myfirsttestngpackage.MyFirstTestNGFile.

  8. Høyreklikk MyFirstTestSuite.velg Kjør som > 1 TestNG Suite.

Godt gjort! Du opprettet din første TestNG Suite!

9 Kjør Testpakken din På Flere Nettlesere Ved Hjelp Av @ Parameters

testen du opprettet, kjøres nå bare På Firefox. Hvis du vil forsikre deg om at funksjonaliteten fungerer som forventet i andre nettlesere, må du utføre testing av flere nettlesere. Med TestNG er det veldig enkelt å utføre den samme testen på forskjellige nettlesere.

  1. Last Ned ChromeDriver her: https://sites.google.com/a/chromium.org/chromedriver/downloads.
  2. Last ned IEDriver her: http://selenium-release.storage.googleapis.com/index.html.
  3. I Eclipse åpner Du MyFirstTestNGFile og endrer følgende kode:

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

    inn 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 brukes til å sette inn en parameter (i dette tilfellet browser) fra test suite XML. Hvis nettleserparameteren er chrome, starter En Chrome-driver.

    i denne delen, chromedriver.exe er lagret i C://Selenium mappe. Pass på å bruke riktig vei i denne koden.

  4. Trykk Ctrl + Skift + O, og følgende setninger vil bli importert:

    import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.testng.annotations.Parameters;
  5. Åpne MyFirstTestSuite og endre 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 testen (kalt ChromeTest) har nettleserparameteren chrome. Denne parameteren vil bli brukt i metoden @BeforeTest I MyFirstTestNGFile.

  6. Høyreklikk MyFirstTestSuite.xml-fil og velg Kjør som > TestNG Suite:

Godt gjort! Du opprettet din første automatiserte cross-browser test med TestNG!

nå vet du hvordan du oppretter En TestNG-testfil, hvordan du oppretter en testpakke og hvordan du kjører den automatiserte testen(e) på flere nettlesere.

Glad testing!

10 Les Mer

  • Test Mendix-Applikasjoner Ved Hjelp Av Selen IDE
  • Test Mikrostrømmer Ved hjelp Av Enhetstestmodulen

Leave a Reply

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.