Szoftver:
Programozói könyvtár:
Az slf4j és a Reactive-Streams letölthető a következő helyről:
A Selenium a következő helyről tölthető le:
Keressük a Java ikont.
Kapunk egy .zip fájlt. Csomagoljuk ki.
A selenium-java-x.y.z.zip fájl tartalmát egyben másoljuk a Java projekt lib könyvtárába, lib könyvtárastól.
A Maven tárolóból letöltött másik két .jar fájlt is másoljuk ide.
app01/ |-.vscode/ | `-setting.json |-bin/ |-lib/ |-src/ | `-App.java `-README.md
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class App { public static void main(String[] args) throws Exception { WebDriver driver = new ChromeDriver(); driver.get("https://szit.hu"); WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); Thread.sleep(5000); driver.quit(); } }
Másoljuk a lib könyvtárba a testng-x.y.z.jar fájlt is.
Test nevű könyvtár:
app01/ |-.vscode/ | `-setting.json |-bin/ |-lib/ |-src/ |-test/ | `-TestSzit.java `-README.md
A tesztben használjuk Test annotációt és az Assert osztályt.
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.Test; public class TestSzit { @Test public void testTitle() { WebDriver driver = new ChromeDriver(); driver.get("https://szit.hu"); WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Gluténmentes"); Assert.assertTrue(actual); driver.quit(); } }
Az AfterTest, BeforeTest, BeforeMethod annotációkat használjuk a tesztek előkészítésére.
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; public class TestSzit { WebDriver driver; @BeforeTest public void initTest() { driver = new ChromeDriver(); } @BeforeMethod public void initMethods() { driver.get("https://szit.hu"); } @Test public void testRecept() { WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("recept" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Gluténmentes"); Assert.assertTrue(actual); } @Test public void testAngularContent() { WebElement elem = driver.findElement(By.name("q")); elem.sendKeys("Angular" + Keys.ENTER); boolean actual = driver.getPageSource().contains("Angular"); Assert.assertTrue(actual); } @AfterTest public void endTest() { driver.quit(); } }
A tesztek végrehajtási sorrendjét a megadásuk sorrendje nem befolyásolja, csak az annotáció határozza meg a sorrendet.
A példában @AfterTest annotáció nincs.
A példa teszt megnyitja a szit.hu weboldalt, majd beírja a „recept” szót, majd megnyomja az „Enter” billentyűt. Megnézi, hogy a a találati weboldalon szerepel-e a „Gluténmentes” szót.
A következő teszt megint a szit.hu főoldalára navigál, majd beírja az Angular szót, megnyomja az „Enter” billentyűt, majd megnézi, hogy szerepel a találati weboldalon az Angular szó.
Végül a teszt bezárja a böngészőt.
Beállítható, hogy hamarabb hajtódjon végre egy teszt.
@Test(priority = 0) //... @Test(priority = 7) //...