Vytvořte automatizované testy pomocí TestNG

1 Úvod

automatizované testy lze vytvořit pomocí různých nástrojů v závislosti na typu testů. Integrační testy mohou být vytvořeny s SoapUI, jednotkové testy s jednotkovým testovacím modulem a testy UI se selenem IDE. S Selenium IDE můžete vytvářet skripty, které pomáhají při průzkumném testování podporovaném automatizací. Pokud chcete vytvořit robustní testy založené na prohlížeči, měli byste se podívat na použití testovacího rámce se selenem.

TestNG je testovací rámec Java, který lze použít k řízení selenu. V tomto návodu se naučíte, jak vytvořit automatizovaný test pomocí TestNG.

tento návod vás naučí, jak postupovat následovně:

  • vytvořit testovací soubory TestNG
  • spusťte automatizované testy s TestNG
  • generování sestav s TestNG

2 předpoklady

než začnete s tímto návodem, ujistěte se, že jste splnili následující předpoklady:

  • stáhněte a nainstalujte Eclipse
  • Stáhněte si klienta Selenium & WebDriver pro Javu

tento postup používá šablonu aplikace pro výdaje společnosti, která začíná v části přidat třetí testovací metodu pro příkladný scénář. Tato šablona aplikace však již Mendix nepodporuje platformu. Sekce používající tuto šablonu aplikace lze proto použít pouze jako reference a ne jako sekce, které lze dokončit krok za krokem.

3 Vytvoření projektu Java

v této kapitole nainstalujete Plug-in TestNG a vytvoříte Projekt Java v Eclipse včetně knihoven TestNG a Selenium:

  1. otevřete Eclipse.
  2. postupujte podle pokynů v Eclipse plug-in > instalovat z aktualizace stránky sekce stahování TestNG.
  3. restartujte Eclipse, aby se změny projevily.
  4. Vyberte Soubor > Nový > Projekt Java.
  5. zadejte název projektu MyFirstTestNGProject a klikněte na další.
  6. vyberte záložku Knihovny a klikněte na Přidat knihovnu.
  7. vyberte TestNG a klikněte na další.
  8. klepnutím na tlačítko Dokončit nastavte výchozí knihovnu TestNG pro tento projekt.
  9. klikněte na Přidat externí sklenice… a přejděte na místo, kde jste uložili soubory Selenium JAR.
  10. přidejte všechny soubory JAR do složek selen – a libs:

  11. klepnutím na tlačítko Dokončit vytvořte Projekt Java. MyFirstTestNGProject se zobrazí v Průzkumníku balíčků:

nyní jste hotovi s nastavením projektu!

4 Vytvořte soubor TestNG

Chcete-li vytvořit nový soubor TestNG, postupujte takto:

  1. klepněte pravým tlačítkem myši na složku src a vyberte Nový > Ostatní…:
  2. Vyberte třídu TestNG a klepněte na tlačítko Další:

  3. klepněte na tlačítko Procházet… vyberte zdrojovou složku, vyberte MyFirstTestNGProject > src a klepněte na tlačítko OK.

  4. zadejte následující informace:

    • Název balíčku: myfirsttestngpackage
    • název třídy: MyFirstTestNGFile
    • @BeforeTest: true
    • @AfterTest: pravda

  5. klikněte na Dokončit. Šablona pro váš první soubor TestNG bude vytvořena automaticky:

    anotace @Test se používá k prohlášení, že metoda pod ní je testovací případ. V tomto případě je metoda f testovacím případem. Anotace @BeforeTest se používá k prohlášení, že metoda pod ní bude provedena před prvním testovacím případem. Anotace @AfterTest se používá k prohlášení, že metoda pod ní bude provedena po posledním testovacím případu.

5 Vytvoření testovacího případu

pojďme nyní kódovat testovací případ.

5.1 přidat WebDriver

Chcete-li vytvořit proměnnou, která bude použita pro WebDriver, postupujte takto:

  1. vyhledejte následující:

    public class MyFirstTestNGFile {
  2. přidejte kód níže na další řádek. Tím se vytvoří driver proměnná typu WebDriver:

    public WebDriver driver;
  3. stisknutím kláves Ctrl + Shift + O uspořádejte import. Tím se importují chybějící příkazy a odstraní se nepoužívané příkazy importu. Následující příkaz bude importován:

    import org.openqa.selenium.WebDriver;

5.2 přidejte metodu BeforeTest

anotace @BeforeTest se používá k prohlášení, že metoda pod ní bude provedena před prvním testovacím případem. Před prvním testovacím případem otevřete prohlížeč Firefox podle následujících kroků:

  1. změňte následující kód:

    @BeforeTestpublic void beforeTest() {}

    do:

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

    tím se vytvoří nová instance ovladače Firefoxu a otevře se prohlížeč Firefox.

  2. stiskněte CTRL + SHIFT + O. importuje se následující příkaz:

    import org.openqa.selenium.firefox.FirefoxDriver;

5.3 Přidejte metodu AfterTest

anotace @AfterTest se používá k prohlášení, že metoda pod ní bude provedena po posledním testovacím případu. Po posledním testovacím případě zavřete prohlížeč změnou následujícího kódu:

@AfterTestpublic void afterTest() {}

do:

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

tím se zavře prohlížeč Firefox.

5.4 přidejte první zkušební metodu

Chcete-li přidat první zkušební metodu, otevřete v prohlížeči adresu URL a poté změňte následující kód:

@Testpublic void f() {}

do:

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

tato testovací metoda otevře adresu URL http://localhost:8080/index.html v prohlížeči Firefox. Ve výchozím nastavení jsou metody anotované @Test prováděny abecedně. Parametry můžete použít k úpravě funkce Anotace. Parametr priority lze použít k provedení metod v jiném pořadí. TestNG provede anotaci @Test s nejnižší hodnotou priority až po největší.

5.5 přidejte druhou testovací metodu

Nyní, když jste v přihlašovacím okně, budete se chtít přihlásit. Chcete-li přidat druhou zkušební metodu, postupujte takto:

  1. otevřete Firefox a přejděte na http://localhost:8080/index.html.
  2. ke kontrole prvku použijte vývojářské nástroje.
  3. klikněte na vstupní pole Uživatelské jméno. ID tohoto pole je usernameInput. Volič CSS ID je hashtag (#) + název ID. Pro pole Uživatelské jméno to bude #usernameInput. Stejný princip se používá i pro ostatní kroky. Selektor CSS #usernameInput je jedinečný. Existuje jeden odpovídající uzel:

  4. opakujte kroky 5-6 pro pole pro zadání hesla a tlačítko pro přihlášení:

    Element CSS Selector
    pole pro zadání hesla #passwordInput
    tlačítko Přihlásit #loginButton
  5. přidejte novou zkušební metodu s názvem login. Použijte následující kód:

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

tato zkušební metoda obsahuje následující zkušební kroky:

  1. jako uživatelské jméno Zadejte MxAdmin.
  2. zadejte jako heslo 1.
  3. klikněte na tlačítko Přihlásit se.

5.6 Přidejte třetí zkušební metodu

Chcete-li přidat třetí zkušební metodu, postupujte takto:

  1. Otevřete aplikaci a v aplikaci Explorer otevřete stránku ProgramDetail.
  2. vyberte kartu Výdaje:

    název karty Výdaje je tabPage4. Každý prvek automaticky získá třídu CSS mx-name-, takže karta výdaje dostane třídu CSS mx-name-tabPage4, když je aplikace spuštěna.

  3. Vrať se do Eclipse.

  4. přidejte novou zkušební metodu s názvem openExpensesTab. Použijte následující kód:

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

    tato zkušební metoda volá ExpectedCondition každých 500 milisekund, dokud se buď úspěšně nevrátí, nebo uběhne 10 sekund. Když uplynulo 10 sekund a prvek není umístěn, bude vyvolána výjimka TimeoutException. Pokud je prvek umístěn do 10 sekund, metoda klikne na prvek s názvem třídy mx-name-tabPage4. Třída karty Výdaje je mx-name-tabPage4. Volič CSS třídy je tečka (.) + název třídy, takže pro kartu Výdaje to bude .mx-name-tabPage4.

5.7 Přidejte čtvrtou zkušební metodu

Nyní, když jste na kartě Výdaje, budete chtít vytvořit nový náklad. Chcete-li přidat čtvrtou zkušební metodu, postupujte takto:

  1. otevřete Studio Pro a poté otevřete stránku Desktop_AdminMenu.
  2. vyberte tlačítko Nové výdaje:

    název nového tlačítka výdajů je newButton3, takže tlačítko bude mít mx-name-newButton3 třídu CSS:

  3. otevřete stránku Desktop_Expense_NewEdit_Admin.

  4. Najděte názvy následujících prvků (jako v kroku 3):

    prvek Název
    částka pole textBox6
    rozbalovací nabídka popis referenceSelector1
    tlačítko Uložit 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. Vrať se do Eclipse.

  6. přidejte novou zkušební metodu s názvem createExpense. Použijte následující kód:

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

    tato zkušební metoda obsahuje následující zkušební kroky:

    1. klikněte na Nový výdaj.
    2. vymažte pole Množství.
    3. zadejte 15.00 v poli množství.
    4. vyberte druhou možnost z rozbalovací nabídky popis.
    5. Klikněte Na Uložit.

    po kliknutí na tlačítko New Expense (.mx-name-newButton3) se zobrazí vyskakovací okno. Chcete-li se ujistit, že je načten prvek aktivní stránky (což je v tomto případě vyskakovací okno), musíte přidat .mx-window-active do selektoru CSS prvků ve vyskakovacím okně.

    pro každé vstupní pole je třeba přidat input na konec voliče CSS.

    výchozí hodnota pole Částka je 0,00. Chcete-li zadat novou hodnotu, musíte nejprve pole vymazat.

    referenční volič má šest možností; prázdný, Ubytování, Jídlo, ostatní, zásoby, doprava. Chcete-li vybrat ubytování (druhá možnost), musíte přidat option:nth-child(2) na konci voliče CSS.

5.8 přidejte pátou zkušební metodu

poté, co jste vytvořili náklady, budete se chtít odhlásit. Chcete-li přidat pátou zkušební metodu, postupujte takto:

  1. otevřete Studio Pro a poté otevřete úryvek Desktop_MyInfo.
  2. Najděte název následujícího prvku:

    prvek Název
    tlačítko Odhlásit signOutButton1
  3. přidejte novou zkušební metodu s názvem signOut. Použijte následující kód:

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

    tato zkušební metoda klikne na prvek s názvem třídy mx-name-signOutButton1.

6 spusťte Test

Nyní jste připraveni spustit test. Chcete-li spustit test, postupujte takto:

  1. klepněte pravým tlačítkem myši na složku MyFirstTestNGProject.
  2. zvolte Spustit jako > test:

    výsledky testu se zobrazí v okně konzoly a v okně výsledků testu:

7 Test Report

TestNG generuje reporty ve formátu HTML. Chcete-li zprávu otestovat, postupujte takto:

  1. klepněte pravým tlačítkem myši na složku MyFirstTestNGProject a vyberte Obnovit. Vytvoří se složka test-output:

  2. otevřete složku test-output.

  3. klepněte pravým tlačítkem myši na index.html soubor.

  4. vyberte Otevřít pomocí webového prohlížeče >. Zpráva bude vypadat takto:

  5. klikněte (Zobrazit). Zkušební metody jsou uvedeny abecedně:

  6. klikněte na chronologické zobrazení. Bude zobrazen přehled s metodami v chronologickém pořadí:

8 vytvoření testovací sady

při spuštění testu jako při spuštění testu se automaticky vytvoří testovací sada. Tato testovací sada obsahuje všechny soubory testNG, které lze nalézt v projektu. Ale co když chcete spustit pouze konkrétní testy? Potřebujete vytvořit testovací sadu sami.

  1. klepněte pravým tlačítkem myši na složku src a vyberte Nový > Ostatní.
  2. otevřete složku XML a vyberte soubor XML:

  3. klikněte na další.

  4. změňte název souboru na MyFirstTestSuite.datum.

  5. klepnutím na tlačítko Dokončit vytvořte soubor XML:

  6. klikněte na kartu zdroj:

  7. změňte následující kód:

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

    do

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

    tím se vytvoří nová testovací sada MyFirstTestSuite. Testovací sada obsahuje jeden test: Test1. Test obsahuje jeden soubor testNG, myfirsttestngpackage.MyFirstTestNGFile.

  8. klepněte pravým tlačítkem myši na MyFirstTestSuite.xml soubor a vyberte Spustit jako > 1 TestNG Suite.

výborně! Vytvořili jste svůj první TestNG Suite!

9 spusťte testovací sadu na více prohlížečích pomocí @parametrů

test, který jste vytvořili, je nyní spuštěn pouze ve Firefoxu. Pokud se chcete ujistit, že funkce funguje podle očekávání v jiných prohlížečích, musíte provést testování více prohlížečů. S TestNG je velmi snadné provést stejný test na různých prohlížečích.

  1. Stáhněte si ChromeDriver zde: https://sites.google.com/a/chromium.org/chromedriver/downloads.
  2. Stáhněte si IEDriver zde: http://selenium-release.storage.googleapis.com/index.html.
  3. v Eclipse otevřete MyFirstTestNGFile a změňte následující kód:

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

    do:

    @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 se používá k vložení parametru (v tomto případě browser) z testovací sady XML. Pokud je parametr prohlížeče chrome, spustí se ovladač Chrome.

    v této části chromedriver.exe je uložen v C://Selenium složka. V tomto kódu použijte správnou cestu.

  4. stiskněte Ctrl + Shift+O a budou importovány následující příkazy:

    import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.ie.InternetExplorerDriver;import org.testng.annotations.Parameters;
  5. otevřete MyFirstTestSuite a změňte následující kód

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

    do:

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

    první test (nazvaný ChromeTest) má parametr prohlížeče chrome. Tento parametr bude použit v metodě @BeforeTest v MyFirstTestNGFile.

  6. klepněte pravým tlačítkem myši na MyFirstTestSuite.xml soubor a vyberte Spustit jako > TestNG Suite:

výborně! Vytvořili jste svůj první automatizovaný test mezi prohlížeči pomocí TestNG!

nyní víte, jak vytvořit testovací soubor TestNG, jak vytvořit testovací sadu a jak spustit automatizovaný test(y) na více prohlížečích.

šťastné testování!

10 Přečtěte si více

  • testujte aplikace Mendix pomocí Selenium IDE
  • testujte mikroflóry pomocí modulu pro testování jednotek

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.