TestNG : Selenium Web Driver da Birden Fazla Testler İstenilen Sırada Nasıl Koşturulur?

Nesli Necipoğlu
neslinecipoglu
Published in
4 min readSep 17, 2019

Bir önceki yazımda TestNG kurulumunu gösterip, bir örnek testi TestNG çerçevesinde koşturmuştuk. Peki ya testimiz bir değil de birden fazla ise ve biz bu testlerimize önce bu çalışsın ondan sonra bu test koşsun gibi bir sıralama yapmak istiyorsak nasıl yaparız? İşte bu yazım tam olarak bu soru işaretlerini aydınlatmaya yönelik bir yazı olacak. TestNG çerçevesinde birden fazla test nasıl art arda koşturulur hep beraber öğrenmiş olacağız.

Yine örnek üzerinden gidelim. Örneğin koşturmamız gereken üç tane testimiz olsun biri Instagram Login , biri Twitter Login , bir diğeri de Facebook Login olsun. Öncelikle Java classımızın içine Url’ lerimizi tanımlamamız gerekmektedir. Çünkü aynı java class içinde bu üç testimiz olacağı için ve her testimizin gideceği adres farklı olduğundan dolayı ayrı ayrı Url tanımlamamız gerekmektedir ki istediğimiz sayfalar açılsın. Aşağıda Instagram, Facebook ve Twitter Url değişken tanımlama kısımını bırakıyorum;

Bir önceki yazımda zaten Instagram Login test etmiştik, yine de aşağı bırakıyorum.

Bir sonraki test olarak Twitter Login ekledim , @test yazdıktan sonra istediğiniz testi yazabilirsiniz.

Tekrar bir @test açıp bu defa da Facebook Login testini yazıyorum.

Bunların hepsini tek bir java class ’ta yazdım, yine de tüm kodları aşağı bırakıyorum;

TestNG.java

pom.xml

TestNG.xml Dosyası Oluşturma

Şimdi ise sırada yeni bir dosya oluşturmak var. testing.xml dosyamızı oluşturmamız gerek. Esas Proje dosyamızın üzerine gelip faremizin sağ tuşuna basıp New>>File adımlarını takip edelim. Aşağıya da bırakıyorum ;

Tıkladıktan sonra yeni dosyamız için bizden dosya adı girmemiz istenecektir. testng.xml olarak girelim.

testng.xml dosyamızın içine koşturacağımız testleri de ekliyorum. testng.xml dosyamızın içeriği aşağıdaki gibi olmalıdır;

testng.xml

Şimdi sol tarafta bulunan testng.xml dosyamızın üzerine gelip faremizin sağ tuşuna basarak Run seçeneğine tıklayıp, çalıştıralım.

Testlerimizi Nasıl Sıralarız?

Sıralama işlemini iki şekilde yapabiliriz.

1- TestNG.XML dosyası ile

TestNG.XML dosyamızın içindeki <include name=” “> sıralamasını değiştirirsek , testng.xml dosyamızı çalıştırdığımızda o sıralama ile gidecektir. Aşağıya hemen bir örnek gif bırakıyorum. Bu örnekte önce xml dosyamızın içinde Facebook, Instagram en sonunda da Twitter testimiz çalışsın istedim o yüzden xml dosyasındaki sıralama şu şekilde oldu ;

<methods>
<include name=”Facebook”/>
<include name=”Instagram”/>
<include name=”Twitter”/>
</methods>

Sonra da sıralamayı değiştirip şu şekilde çalışmasını istedim , önce Twitter sonra Facebook , bu defa da en son Instagram açılsın dedim. Onu da xml dosyamızda methods kısımını şu şekilde güncelledim;

<methods>
<include name=”Twitter”/>
<include name=”Facebook”/>
<include name=”Instagram”/>
</methods>

Bu şekilde testlerinizi istediğiniz sıralamaya koyup , o şekilde testlerinizi koşturabilirsiniz.

Küçük bir dip not olarak izlediğiniz görüntüde login sayfasında hesabım açılmıyor hiçbirinde çünkü gerçek şifremi sendkey ile göndermedim. Eğer siz aşağıdaki kod kısımına gerçek e-posta ve gerçek şifrenizi yazarsanız, testlerimizdeki sosyal medya hesaplarınıza girişiniz geçekleşecektir.

driver.findElement(name(“username”)).sendKeys(“……@gmail.com”);

driver.findElement(name(“password”)).sendKeys(“…….”);

2- Testlere Öncelik Vererek (priority)

Java class dosyamızın içinde 3 tane testimiz vardı. İstediğimiz sıralamaya testleri koymak için @test lerimizin sonuna örneğin o testin ilk sırada çalışmasını istiyorsanız @test (priority=1) olarak yazmanız yeterli olcaktır. Testinizin sayısına göre eğer o testin 15. sırada çalışmasını isterseniz ilgili testin yanına @test (priority=15) demeniz gerekmektedir. Bizim örnek testlerimiz 3 tane olduğu için priority ile nasıl sıralamaya konulduğu örneğini de aşağıya bırakıyorum. Aşağıdaki örnekte sıralama şu şekilde olacaktır; önce Twitter testi sonra Instagram en son olarak da Facebook testi çalışacaktır. Bunun için yaptığım şey ise Twitter testimizin en başına @test (priority=1), Instagram testinin başına @test (priority=2) ve son olarak Facebook testinin başına ise @test (priority=3) olarak ekledim. xml dosyanızdaki sıralama ne olursa olsun , koşturulacak testler başlarına yazılan bu öncelikler ile çalışacaktır.

Bu yazımda tek bir java class içinde birden fazla testi nasıl istenilen sırada koşturabileceğinizi , TestNG.xml dosyası oluşturmayı göstermeye çalıştım.

Bir sonraki yazımda görüşmek üzere..

--

--