learn how use testng annotations selenium
TestNG, jak většina z vás ví, je automatizace rámec široce používaný v selenu . Je důležité, aby všichni testeři pochopili anotace použité při práci s TestNG.
Zjednodušeně řečeno, poznámky TestNG jsou řádky kódu, které jsou vloženy do programové / obchodní logiky pro řízení způsobu, jakým mají být spuštěny níže uvedené metody.
V tomto článku se zaměřím na důležitost různých typů anotací a jejich použití.
Níže sdílím nastavení použité pro můj projekt. U vašeho projektu to nemusí být nutně dodržováno.
Anotace se liší v závislosti na požadavcích vašeho projektu. Průběh provádění však bude stejný.
Předpoklady:
- Nainstalujte TestNG do Eclipse. Šek tento návod k instalační příručce .
- JDK - Vývojová sada Java
- Poznámky lze použít pouze s verzí Java 1.5 nebo vyšší
Před psaním testovacích skriptů nebo nastavením projektu bychom měli znát hierarchii, ve které anotace fungují. Provedení zůstane vždy stejné.
Například, zkompilujte a spusťte níže uvedený skript a všimněte si spouštěcího příkazu. Bude to takto:
- BeforeSuite
- BeforeTest
- Před hodinou
- Před metodou
- Testovací případ 1
- AfterMethod
- Před metodou
- Testovací případ 2
- AfterMethod
- Po hodině
- AfterTest
- AfterSuite
Příklad:
public class test { @BeforeMethod public void beforeMethod() { System.out.println(' Before Method will execute before every test method'); } @AfterMethod public void afterMethod() { System.out.println('After Method will execute after every test method '); } @BeforeClass public void beforeClass() { System.out.println('Before Class will always execute prior to Before Method and Test Method '); } @AfterClass public void afterClass() { System.out.println('After Class will always execute later to After Method and Test method'); } @BeforeTest public void beforeTest() { System.out.println('Before Test will always execute prior to Before Class, ,Before Method and Test Method '); } @AfterTest public void afterTest() { System.out.println('After Test will always execute later to After Method, After Class '); } @BeforeSuite public void beforeSuite() { System.out.println(“Before Suite will always execute prior to all annotations or tests in the suite.'); } @AfterSuite public void afterSuite() { System.out.println('After suite will always execute at last when all the annotations or test in the suite have run.'); } @Test public void testCase1() { System.out.println('This is my First Test Case 1'); } @Test public void testCase2() { System.out.println('This is my Second Test Case 2'); } }
Proces testovacího skriptu můžeme rozdělit do následujících kroků:
- Napište obchodní logiku svého testu a vložte ji výše Anotace TestNG ve vašem kódu
- Přidejte informace o svém testu (např. Název třídy, skupiny, metody, které chcete spustit atd.) Do a testng.xml soubor.
- Spusťte TestNG
Otázkou však stále zůstává - jaké informace bychom měli poskytnout ve výše uvedených anotacích?
Podívejte se na důležité kroky, kterých můžeme dosáhnout pomocí výše uvedených anotací:
# 1) @Test
Toto je hlavní část našeho automatizačního skriptu, kde budeme psát obchodní logiku, věci, které chceme automatizovat. Můžeme předat atributy naší testovací metodě.
Níže jsou uvedeny seznamy atributů, které můžeme předat naší testovací metodě:
- alwaysRun : Toto se používá, když se chceme ujistit, že metoda vždy běží, i když selžou parametry, na kterých metoda závisí. Pokud je nastavena na hodnotu true, bude tato testovací metoda vždy spuštěna. Např: @Test (alwaysRun = true)
- dataProvider : TestNG dataProvider se používá k poskytnutí jakýchkoli dat pro parametrizaci. Např. @Test (dataProvider = „Ahoj“).
- dataProviderClass : Toto je třída, odkud předáváme data poskytovateli dat. V našem případě je název třídy dataProvider „Hello“.
- záleží na skupinách : Je to seznam skupin, na kterých tato metoda závisí. Např: @Test (groups = {„City“, „State“})
- dependOnMethods: Tento příkaz se používá k provedení metody založené na její závislé metodě. Např: @Test (dependsOnMethods = {„OpenBrowser“, „databáze je nahoře“})
- popis : Jedná se o popis metody. Např: @Test (description = “testovací metoda”)
- invocationCount : Odkazuje na to, kolikrát by měla být metoda vyvolána. Bude to fungovat jako smyčka. Např: @Test (invocationCount = 7) . Tato metoda se tedy provede sedmkrát.
- invocationTimeOut : Toto se odkazuje na maximální počet milisekund, které by metoda měla trvat, než se dokončí všechny vyvolání. Tento atribut bude ignorován, pokud není zadán invocationCount. Např: @Test (invocationCount = 7, invocationTimeOut = 30)
- přednost : Tento příkaz nastavuje prioritu testovací metody. Nejprve budou naplánovány nižší priority. Např: @Test (priorita = 1)
#dva)@BeforeSuite a @AfterSuite
v @BeforeSuite anotovanou metodu, můžete nastavit a spustit selen řidiči a v @AfterSuite komentovanou metodou můžete zastavit ovladače selenu
Příklad :
public class TestSuiteSetup () { @BeforeSuite(alwaysRun = true) public void setupSuite() { WebDriver driver = new FirefoxDriver(); } @AfterSuite(alwaysRun = true) public void tearDown() { driver().close(); } }
# 3)@BeforeClass a @AfterClass
v @Před hodinou anotovanou metodou, můžete nastavit vlastnosti firefoxu, inicializovat ovladač atd @Po hodině anotovanou metodou, můžete řidiče zastavit
Příklad :
@BeforeClass(description = 'Set capabilities for your Firefox browser and set time it should wait for a page to load.') public static void firefoxSetUp() throws MalformedURLException { DesiredCapabilities capability = DesiredCapabilities.firefox(); driver = new FirefoxDriver(capability); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); driver.manage().window().setSize(new Dimension(1920, 1080)); } @AfterClass(description = 'close your firefox driver') public void afterclass(){ driver.close(); }
# 4)@BeforeMethod a @AfterMethod
v @BeforeMethod anotovanou metodu, můžete zkontrolovat připojení k databázi před provedením testovací metody a v @AfterMethod anotovanou metodou, můžete ukončit připojení k databázi
Příklad :
@BeforeMethod(description='connect to database') public void beforemethod() throws SQLException{ //check database connection is up String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; DriverManager.getConnection(databaseurl, 'username', 'password'); }
@AfterMethod(description='close database connection') public void aftermethod() throws SQLException{ //check database connection is closed String databaseurl = 'jdbc:oracle://192.168.1.258/myDB'; Connection connect = DriverManager.getConnection(databaseurl, 'username', 'password'); if(connect!=null) connect.close(); }
# 5)@BeforeTest a @AfterTest
v @BeforTest způsob, můžete nastavit předvolby profilu firefox a v @AfterTest metodou, můžete vložit nějaký kód, který vygeneruje výsledek testu a pošle jej poštou zúčastněným
Příklad :
@BeforeTest (description='set your firefox profile preferences according to your project requirement') public void single_run(){ FirefoxProfile firefoxProfile = new FirefoxProfile(); firefoxProfile.setPreference ('browser.download.folderList',2); firefoxProfile.setPreference ('browser.download.manager.showWhenStarting',false); firefoxProfile.setPreference ('browser.download.dir','E:\reports\'); firefoxProfile.setPreference ('browser.helperApps.neverAsk.saveToDisk','csv'); driver = new FirefoxDriver(firefoxProfile); String baseUrl = 'www.gmail.com'; } @AfterTest (description='') public void teardown(){ //a code which will send the test details report }
Nejdůležitějším aspektem, který si zde při práci s anotacemi všimněte, je to, že váš systém by měl být vybaven verzí Java 1.5 nebo vyšší, jinak by Eclipse mohl zobrazit chybu, že anotace ve vašem systému nejsou podporovány.
Nyní zvažte případ, kdy má váš systém správnou verzi Java potřebnou pro anotace, ale chyba se stále zobrazuje.
Něco jako níže:
Syntaxová chyba, poznámky jsou k dispozici, pouze pokud je úroveň zdroje 1,5 nebo vyšší.
Co budeš dělat teď? Existují tři možnosti, jak tuto situaci napravit.
Pojďme to projít jeden po druhém:
Možnost 1:
- Přejděte do Eclipse a klikněte pravým tlačítkem na svůj projekt
- Vyberte Vlastnosti
- Klikněte na Java Compiler
- Ujistěte se, že vaše úroveň souladu kompilátoru je 1,5 nebo vyšší
- Uložte nastavení a váš problém je vyřešen
Možnost č. 2:
- Přejít na kartu Okno v Eclipse
- Vyberte Předvolby
- Klikněte na Javu a poté na Kompilátor
- Ujistěte se, že vaše úroveň souladu kompilátoru je 1,5 nebo vyšší
- Uložte nastavení a váš problém je vyřešen
Možnost č. 3:
Zkontrolujte svou domovskou cestu Java nastavením správné proměnné cesty prostředí Java.
Závěr:
Prostřednictvím tohoto článku jsme se pokusili probrat některé důležité poznámky a atributy, které testeři často používají. V TestNG však existuje více anotací, které se často nepoužívají, jako např @AfterGroups, @BeforeGroups a tak dále, které se používají při práci se skupinami v testovacím skriptu projektu.
Použijte tedy výše uvedené anotace podle svých požadavků. Vždy je vhodné neprovádět nastavení projektu testovací metodou. Do testovací metody napište základní obchodní logiku, která má být testována.
java rozhovor kódování otázky a odpovědi
Ujistěte se, že je váš systém vybaven verzí Java 1.5 nebo vyššími, jinak by Eclipse mohl zobrazit chybu, že váš systém nepodporuje anotace.
Doufám, že vám tento článek pomůže s anotacemi TestNG. V případě jakýchkoli připomínek nebo dotazů nás prosím kontaktujte.
Doporučené čtení
- Jak používat rámec TestNG pro vytváření skriptů selenu - výukový program TestNG selenu č. 12
- Výukový program pro vyhledání prvku selen pomocí textu s příklady
- 30+ nejlepších návodů na selen: Naučte se selen se skutečnými příklady
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Efektivní scénáře selenu a řešení potíží - Scénář selenu č. 27
- Ladění selenových skriptů pomocí protokolů (výuka Log4j) - výuka selenu č. 26
- Výukový program Python DateTime s příklady