- Proje Java programlama dilinde yazıldı.
- Proje Maven projesi olarak yazıldı.
- Selenium, JUnit ve Log4J kütüphaneleri kullanıldı.
- Proje OOP (Object Oriented Programming) prensiplerine uygun yazılmaya çalışıldı.
- Page Object Pattern kullanıldı.
Selenium, farklı tarayıcılarda ve farklı platformlarda web uygulamalarını doğrulamak için kullanılan ücretsiz açık kaynak kodlu bir otomasyon test aracıdır. Test komut dosyalarını oluşturmak için Java, C#, Python vb. birden fazla programlama dilini desteklemektedir.
- Intellij Idea (ya da başka bir ide)
- JDK (Java Development Kit)
- Maven
Maven build, reporting, dependency management ve documentation işlemlerini gerçekleştirir. Build işleminin iki yönünü ele alır: projenin nasıl build olacağını ve projenin dependency’lerini tanımlar. Build işlemi için kendisinden önceki araçların aksine kabul edilen bir düzen kullanır ve sadece istisnaların yazılması gerekir. Dependency management olarak Maven library ulaşmak için sırasıyla bulana kadar local, central ve uzak depolara bakar, indirilmesi gerekiyorsa indirir. Bu mekanizma sayesinde geliştiriciyi büyük bir iş yükünden kurtarır. Konfigrasyon için pom.xml dosyasını kullanır. Bu dosya projeyi build etmek için gerekli bütün bilgileri içerir. Maven başlıca Java projeleri için kullanılsa da C#, Ruby, Scala gibi farklı diller için de kullanılabilir.
Maven’ın asıl amacı geliştirme sürecini en kısa zamana düşürmektir. Bu amaca ulaşmak için Maven bir kaç alanla ilgilenir:
- Build işlemini kolaylaştırmak
- Sabit bir build sistemi sağlamak
- Kaliteli proje bilgisi sağlamak
- En iyi uygulamayı geliştirmek için kurallar sağlamak
- Yeni özelliklere geçişi kolaylaştırmak
Project Object Model ya da POM, Maven’ın en önemli parçalarından biridir. Proje hakkında build işlemi için gerekli bilgileri ve konfigrasyon detaylarını içeren bir XML doyasıdır. Maven bir görevi yerine getirmeden önce, ilk olarak çalışma dizininde POM’u bulur ve gerekli bilgileri okur.
- www.gittigidiyor.com sitesi açılır.
- Ana sayfanın açıldığı kontrol edilir. Siteye login olunur
- Login işlemi kontrol edilir.
- Arama kutucuğuna bilgisayar kelimesi girilir.
- Arama sonuçları sayfasından 2.sayfa açılır.
- 2.sayfanın açıldığı kontrol edilir.
- Sonuca göre sergilenen ürünlerden rastgele bir ürün seçilir.
- Seçilen ürün sepete eklenir.
- Ürün sayfasındaki fiyat ile sepette yer alan ürün fiyatının doğruluğu karşılaştırılır.
- Adet arttırılarak ürün adedinin 2 olduğu doğrulanır.
- Ürün sepetten silinerek sepetin boş olduğu kontrol edilir.
➡️ İlk olarak projemizi Maven olarak oluşturup POM dosyamıza aşağıdaki kodları eklemeliyiz.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
📃 BasePage : : Burada Webdriver oluşturma ve kullanacağımız Selenium komutlarını methodlar haline getirme işlemlerini yapacağız. Bu sayede işimize yarayan Selenium komutunu her defasında yazmak yerine methodu çağırarak çalıştıracağız.
📃 BaseTest : : Burada Before ve After anotasyonlarımız olacak. Before ve afterın ana mantığı şu şekilde; herhangi bir testimizi çalıştırdığımızda önce before anotasyonu sonrasında çalıştırdığımız test sonrasında ise after anotasyonumuz çalışacak. @Before anotasyonunda driver ayarlarını yaparken @After anotasyonunda ise driverımızı kapatıyoruz.
📂constants : Bu package içindeki class'larda elementlerimizin locatorlarını tutuyoruz. Bu sayede elementlerde ki herhangi bir değişiklik meydana gelmesi durumunda buradan müdahele etmemiz yeterli olacaktır.
📂test : Son olarak testimizi çalıştıracağımız komutlarımızı bu package içindeki class'ların @Test anotasyonu altında yazıyoruz. Burada dikkat edilmesi gereken husus test anotasyonu before ve after anotasyonları arasında olmalıdır.