Bilindiği gibi Duman Testi (Smoke Test) bir ürünün herhangi bir ortama (test, production, vs.) deployment’i sonrası, ana fonksiyonlarının kontrol edilmesi amacıyla yapılmaktadır. Son dönemde Keytorc olarak mobil ve web test otomasyon projelerimizde, geliştirdiğimiz test case’lerden bir grubun Smoke Test olarak koşulması da müşterilerimizden sıklıkla almaya başladığımız istekler arasına girmiş durumda.
Esasen, Smoke Test’ler için JUnit kullanmak da mümkün olmakla birlikte, son zamanlarda özellikle mobil otomasyon projelerinde karşılaştığımız bazı sıkıntıları daha hızlı aşabilmek için TestNG framework’ünü tercih etmeye başladık. Bu yazımızda TestNG framework’ü ile nasıl Smoke Test yapılabileceğini anlatacağız.
Adım 1: Maven Konfigürasyonunun Yapılması
Öncelikli olarak Maven kullanarak yarattığımız projemizin pom.xml dosyasında maven-surefire plugin tag’ine eklemeler yapmamız gerekmektedir.
<build><plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<groups>${grupAdı}</groups>
</configuration>
</plugin></plugins>
</build>
Adım 2: Test Metodlarının Gruplanması
Geliştirdiğimiz test case’leri “Smoke Test”, “System Test” şeklinde işaretlememiz gerekmektedir. Bu sayede metodlarımızı gruplamış oluyoruz.
@org.testng.annotations.Test(groups = { "smoke,system" })
public void applyCard() {
}
@org.testng.annotations.Test(groups = { "smoke" })
public void openProfile() {
}
Adım 3: BeforeSuite Konfigürasyonunun Yapılması
BeforeSuite ile işaretlediğimiz, driver gibi objelerimizi yarattığımız metodumuzun “alwaysRun=True” parametresi ile işaretlenmesi gerekmektedir. Bu sayede BeforeSuite metodumuzun bağımsız olarak çalışmasını garantilemiş oluyoruz.
@BeforeSuite(alwaysRun=true)
public static void setupDriver() {
}
Adım 4: Testin Koşulması
Artık projemizi “mvn test –Dgroup=grupAdı” parametresi ile çalıştırabiliriz.
Daha sonra Continuous Integration için kullandığınız aracınızda farklı job’lar tanımlayarak duman testlerinizi, standart otomasyonunuzdan bağımsız çalıştırabilirsiniz.