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:
- otevřete Eclipse.
- postupujte podle pokynů v Eclipse plug-in > instalovat z aktualizace stránky sekce stahování TestNG.
- restartujte Eclipse, aby se změny projevily.
- Vyberte Soubor > Nový > Projekt Java.
- zadejte název projektu MyFirstTestNGProject a klikněte na další.
- vyberte záložku Knihovny a klikněte na Přidat knihovnu.
- vyberte TestNG a klikněte na další.
- klepnutím na tlačítko Dokončit nastavte výchozí knihovnu TestNG pro tento projekt.
- klikněte na Přidat externí sklenice… a přejděte na místo, kde jste uložili soubory Selenium JAR.
-
přidejte všechny soubory JAR do složek selen – a libs:
-
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:
- klepněte pravým tlačítkem myši na složku src a vyberte Nový > Ostatní…:
-
Vyberte třídu TestNG a klepněte na tlačítko Další:
-
klepněte na tlačítko Procházet… vyberte zdrojovou složku, vyberte MyFirstTestNGProject > src a klepněte na tlačítko OK.
-
zadejte následující informace:
- Název balíčku: myfirsttestngpackage
- název třídy: MyFirstTestNGFile
- @BeforeTest: true
- @AfterTest: pravda
-
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 metodaf
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:
-
vyhledejte následující:
public class MyFirstTestNGFile {
-
přidejte kód níže na další řádek. Tím se vytvoří
driver
proměnná typu WebDriver:public WebDriver driver;
-
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ů:
-
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.
-
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:
- otevřete Firefox a přejděte na
http://localhost:8080/index.html
. - ke kontrole prvku použijte vývojářské nástroje.
-
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: -
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
-
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:
- jako uživatelské jméno Zadejte MxAdmin.
- zadejte jako heslo 1.
- 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:
- Otevřete aplikaci a v aplikaci Explorer otevřete stránku ProgramDetail.
-
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 CSSmx-name-tabPage4
, když je aplikace spuštěna. -
Vrať se do Eclipse.
-
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řídymx-name-tabPage4
. Třída karty Výdaje jemx-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:
- otevřete Studio Pro a poté otevřete stránku Desktop_AdminMenu.
-
vyberte tlačítko Nové výdaje:
název nového tlačítka výdajů je
newButton3
, takže tlačítko bude mítmx-name-newButton3
třídu CSS: -
otevřete stránku Desktop_Expense_NewEdit_Admin.
-
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.
-
Vrať se do Eclipse.
-
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:
- klikněte na Nový výdaj.
- vymažte pole Množství.
- zadejte 15.00 v poli množství.
- vyberte druhou možnost z rozbalovací nabídky popis.
- 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:
- otevřete Studio Pro a poté otevřete úryvek Desktop_MyInfo.
-
Najděte název následujícího prvku:
prvek Název tlačítko Odhlásit signOutButton1
-
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:
- klepněte pravým tlačítkem myši na složku MyFirstTestNGProject.
-
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:
-
klepněte pravým tlačítkem myši na složku MyFirstTestNGProject a vyberte Obnovit. Vytvoří se složka test-output:
-
otevřete složku test-output.
-
klepněte pravým tlačítkem myši na index.html soubor.
-
vyberte Otevřít pomocí webového prohlížeče >. Zpráva bude vypadat takto:
-
klikněte (Zobrazit). Zkušební metody jsou uvedeny abecedně:
-
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.
- klepněte pravým tlačítkem myši na složku src a vyberte Nový > Ostatní.
-
otevřete složku XML a vyberte soubor XML:
-
klikněte na další.
-
změňte název souboru na MyFirstTestSuite.datum.
-
klepnutím na tlačítko Dokončit vytvořte soubor XML:
-
klikněte na kartu zdroj:
-
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
. -
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.
- Stáhněte si ChromeDriver zde: https://sites.google.com/a/chromium.org/chromedriver/downloads.
- Stáhněte si IEDriver zde: http://selenium-release.storage.googleapis.com/index.html.
-
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čechrome
, 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.
-
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;
-
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čechrome
. Tento parametr bude použit v metodě@BeforeTest
v MyFirstTestNGFile. -
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