Merhaba arkadaşlar, Mobilhanem.com üzerinde Selenium ile Test Otomasyonu Geliştirme serimizin altıncı dersinde JUnit Notasyonları Nelerdir ve Nasıl Kullanılır bunu göreceğiz. Bir önceki dersimizde Selenium WebDriver ile JUnit Test nasıl yazılır onu anlatmaya çalışmıştık. Bu dersimizde ise JUnit notasyonlarının ne anlama geldiğini ve ne için kullanılacağını anlamış olacağız.
JUnit Notasyonları Nelerdir ?
- @BeforeClass
- @AfterClass
- @Before
- @After
- @Test
- @Ignore olmak üzere altıya ayırabiliriz.
@BeforeClass
Bütün testler başlamadan önce çalışacak metottur. Örneğin, veritabanı bağlantısı bu sınıfta gerçekleştirilir.
@AfterClass
Bütün testler bittikten sonra çalışacak metottur. Yukarıda bahsetmiş olduğumuz veritabanı bağlantı işlemi @BeforeClass notasyonu ile başlatılırken veritabanı bağlantısını sonlandırma işlemi ise burada gerçekleştirilmektedir.
@BeforeClass public static void testBeforeClass (){ System.out.println("@testBeforeClass: Önce çalışır."); } @AfterClass public static void testAfterClass(){ System.out.println("@AfterClass: Sonra çalışır"); }
@Before
Before notasyonu da test adımlarından önce başlamaktadır. Veri okuması ve testin öncesinde yapılması gereken işlemler test adımlarını hızlandırmak için yani zamandan tasarruf etmek için bu metot da tanımlanır. Model ve nesnelerine atama işlemlerinin burada gerçekleştiririz. Bir önceki dersimizde Before notasyonun içerisinde WebDriver tanımlarını ve model atamalarını burada gerçekleştirdik. Örnek olarak aşağıdaki tanımlamaya bakabilirsiniz.
@Before public void setUp() throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Users\\aybukeka\\Desktop\\chromedriver.exe"); driver = new ChromeDriver(); baseUrl = "https://test.mobilhanem.com.tr/registration/"; //Driver elementlere erişim için 10 sn bekleme süresi tanınır driver.manage().timeouts().implicitlyWait(10, SECONDS); //Sayfaların beklenmesi için süre aşağıdaki gibi tanınır driver.manage().timeouts().pageLoadTimeout(200, SECONDS); elementPage = new Elements(driver); }
@After
After notasyonu ise test metodlarından sonra çalışmaktadır. After notasyonun da en çok yapılan işlem, test metodlarından sonra her seferinde atanan değerlere null değerler gönderilmektedir.
@Before public void testBefore(){ System.out.println("@Before: Test metotlarından önce çalışır."); } @After public void testAfer(){ System.out.println("@After: Test metotlarından sonra çalışır."); }
@Before ve @After notasyonları her test metodundan sonra çalışabilirken @BeforeClass ve @AfterClass bir kere çalışmaktadır.
@Test
Test notasyonu içerisinde test case’mizde yer alacak adımları tanımlarız. Bir önceki dersimizde test notasyonunun içerisinde yapmış olduğumuz örnek aşağıda yer almaktadır. Buradan bu notasyonu ne için kullanılacağını anlayabiliriz.
@Test public void testUyeol() throws Exception { driver.get(baseUrl); //Yazı alanlarını önce temizleyip sonra gönderiyoruz elementPage.txtUserName().clear(); elementPage.txtUserName().sendKeys(userName); elementPage.txtEmail().clear(); elementPage.txtEmail().sendKeys(email); elementPage.txtConfirmEmail().clear(); elementPage.txtConfirmEmail().sendKeys(confirmEmail); elementPage.txtPassword().clear(); elementPage.txtPassword().sendKeys(userPassword); elementPage.txtConfirmPassword().clear(); elementPage.txtConfirmPassword().sendKeys(confirmPassword); elementPage.btnUyeOl().click(); }
Aynı zamanda bu notasyon örneklerini Katolon IDE kullanarak test adımlarını record ettikten sonra export kısmında da görebiliriz. Katalon IDE kullanarak notasyonlarımızı görelim.
public class Notasyon { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = "https://www.katalon.com/"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @Test public void testNotasyon() throws Exception { driver.get("https://test.mobilhanem.com.tr/"); driver.findElement(By.linkText("Bize ulaşın")).click(); driver.findElement(By.linkText("Blog")).click(); driver.findElement(By.linkText("Hakkımızda")).click(); driver.findElement(By.linkText("Örnek sayfa")).click(); driver.findElement(By.linkText("Registration")).click(); driver.findElement(By.linkText("Search")).click(); driver.findElement(By.name("s")).clear(); driver.findElement(By.name("s")).sendKeys("a"); driver.findElement(By.linkText("Search")).click(); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } }
@Ignore
Yazdığımız test metotlarının çalıştırılmasını istemiyorsak bu amaç ile kullanabileceğimiz bir notasyondur. @Ignore notasyonunu ilgili test metodundan önce tanımlamamız yeterli olacaktır.
Yukarıda yer alan görselde test notasyonlarının hangi sırada işlendiğini görebilirsiniz.
Mobilhanem.com da Selenium ile Test Otomasyonu Geliştirme serisinin bu dersinde JUnit Notasyonları Nelerdir ve Nasıl Kullanılır adlı dersimizin sonuna geldik. Eksik ya da yanlış gördüğünüz veya anlamadığınız yerler için çekinmeden ulaşabilirsiniz. Bir sonraki yazıda görüşmek üzere.
Tüm Selenium derslerimiz için tıklayınız.
8
Yorum Yaz