Allure Rapor ile Rest Assured Entegrasyonu

Sevilay Ağıl
HardwareAndro
Published in
4 min readMar 28, 2020

--

Merhaba bu yazımda rest assured ile bir api testi yapıp Allure ile raporlama sistemini entegre edeceğiz. Sonrasında Jenkins ile tetikleyerek işlemlerimizi otomatize edeceğiz.

Ben projemde örnek api sistemi olarak https://reqres.in/ kullandım. Buradaki get ve post requestlerle senaryolarımı oluşturdum.

Projemin Github Reposu: https://github.com/sevilayagil/AllureRestAssured

Rest-Assured’dan daha önce bahsettiğim yazı ise : https://medium.com/hardwareandro/rest-assured-ile-rest-api-testi-5d4ccdaf0f05

Kullandığımız teknolojiler

Rest-Assured

Allure

Testng

Proje adımlarına geçmeden öncelikle allureyi tanıyalım. Allure, otomasyon testlerimizi koştuktan sonra bunları görüntüleme imkanı veren bir raporlama sistemidir. Birçok programlama dili ile entegre şekilde çalışabilir. Test senaryolarının sonuçlarının süresini, sonuçlarını (pass,fail vs ), ekran görüntülerini görüntüleyebilme imkanı sağlar.

Allureyi kısaca özetledikten sonra şimdi ise Allure kurulumuna geçelim. Öncelikle allureyi indirmek için scoopu kurmak gerekiyor. Powershellimizi açalım. Scorp install komutunu yazalım.

$  Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

Kurulum tamamlandıktan sonra şimdi allureyi sistemimize kuralım

scoop install allure

Allure kurulumu da bittikten sonra versiyonu kontrol edelim. (Benim versiyonum şuan son sürüm olan : 2.13.2)

allure — version

Kurulumlar bittikten sonra ise intellijimizi açıp yeni bir maven projesi oluşturulım. Proje dizini aşağıdaki gibi olacaktır.

Proje dizini

Şimdi projede kullanacağımız kütüphaneleri ve Pluginleri ekleyelim. (Ben JUnit4 kullandım.) Pom.xml dosyası aşağıdaki gibi olacaktır.

Proje sonunda allure rapor oluştururken(allure-results) target altına atması için bir properties oluşturalım. (allure.properties) İçine raporu oluşturmasını istediğimiz yolu aşağıdaki gibi yazalım.

allure.results.directory=target/allure-results

Şimdi de GetTest ve PostTest classlarımızın raporda görüntülemensi için bir testng.xml dosyası oluştalım. Aşağıdaki gibi senaryo yolumuzu belirtelim.

Buraya kadar işlemlerimiz tamam şimdi senaryolarımıza geçmeye hazırız.

Proje için örnek bir Post Request ve Get Request classı oluşturdum. Burada senaryolarımızı yazağız. Ama öncelikle post requestlerde kullanmak üzere bir user model oluşturalım.

Şimdi de senaryolarda ortak kullanacağımız çatı bir yapı oluşturalım. Burada BaseUrl ve Pathi tanımlayalım.@BeforeClass annototionu sayesinde testleri çalıştırırken öncelikli olarak çalışacaklar ve alt sınıflarda tekrar tekrar yazmaya gerek kalmayacaktır.

Sonrasında ise test senaryolarımızı yazmak için bir class oluşturalım ve raporda gözükmesini istediğimiz alanları AllureReport annotationlarıyla belirtelim.

Ben burada raporda iki ayrı feature olarak görüntülemek için Get ve Post classları iki ayrı feature şeklinde tanımladım. Ayrıca raporda senaryoların içinde gözükmesini istediğiniz linkleri de örnekteki gibi belirtebilirsiniz. Senaryolarda ekleyeceğiniz senaryo adı , detaylarını vb yapıları Allure sayesinde Annotation şeklinde ekleyebiliyorsunuz. Bu şekilde raporların ilgili alanlarında sizin tanımladığınız şekilde görüntülenebiliyor. Detaylı bilgi için linke bakmayı unutmayın.

Post Requestler gibi aşağıdaki GetRequestler içinde bir class oluşturup burada da senaryolarımızı tanımladık. RestAssured sözdizimi ile requestlerimizi oluşturup responseda kontrol edeceğimiz alanları aşağıdaki gibi kontrol ettik.

Senaryolarımızı da tamamladıktan sonra şimdi projejmizi kaldıralım. Bunun için aşağıdaki gibi terminale komut yazıyoruz. Sonrasında raporumuz target adı altında allure-results şeklinde oluşuyor.

$  mvn clean test

Harika! raporumuz oluştu şimdi görüntüleyelim. 💃 🕺

Bunun için aşağıdaki gibi komut yazarak oluşan raporu görüntülüyoruz.

$ allure serve C:\kullanıcıadı\proje lokasyonu \target\allure-results

Raporumuzu da görüntüledikten sonra şimdi piyasanın popüler continuous Integration aracı olan Jenkins ile enterasyonunu gerçekleştirelim. Hadi başlayalım🤞

Öncelikle Jenkins de Allure Plugini kurmamız gerekiyor. Bunun için manage Jenkinse gidip sonrasında manage plugins alanından arama seçeneklerine Allure Jenkins Plugin yazıp eklentiyi kuralım.

Sonra tekrar Manage Jenkinse gelip Global Tool Configration seçeneğine tıklayalım. Burada Allure’yi konfigre edelim

Konfigrasyon işlemi de bittikten sonra sıra geldi projeyi otomatik tetiklemeye. Bunun için New Item diyerek FreeStyleProject i seçip Git konfigrasyonunu yapalım.

Source Code alanında projemizin repositorysini verelim. Credentials alanından Github username ve password bilgilerimizi girelim.

Build alanından pom.xml adını verelim. Goals alanına localde yaptığımız gibi clean test yazalım. Maven versiyonumuzu girelim.

Post-build Actions alanıda ise rapor çıktısı yolunu girelim.

Konfigrasyon tamam şimdi projemizi build edelim ve testimiz çalıştıktan sonra sonucunda oluşan raporumuzu görüntüleyelim.

Bu yazımda Rest Assured ile Allure Rapor entegrasyonundan bahsedip Jenkins ile otomatik tetiklemeyi aktarmaya çalıştım. Bir sonrakilerde görüşmek dileğiyle sağlıcakla kalın #evde kalın 🙋‍♀️

https://github.com/sevilayagil/AllureRestAssured

--

--