REST-Assured ile API Testi

0
911
Görüntüleme

Merhaba Arkadaşlar,

Bugün ki makalemizin konusu REST Assured ile api testi. Uygulama öncesinde Rest API nedir ilk önce bunu öğrenelim. REST API, geliştiricilerin HTTP protokolünü kullanarak GET ve POST gibi isteklerde bulunup, bu isteklere çeşitli formatlarda yanıt aldığı bir sistemdir. REST (REpresentational State Transfer)Temsili Durum Aktarımı olarak Türkçede de kullanılır.

 

Evet şimdi örnek bir test gerçekleştirelim. Test api olarak da https://www.mgm.gov.tr sitesindeki hava durumu api sini kullanacağım.

  • Öncelikle Maven Repository sitesinden REST Assured bağımlılığını kopyalayalım. (Makaledeki projede 2.9.0 versiyonu kullanıyorum)

Buradaki bağımlılığı maven projenizin pom.xml ine ekleyin.

Not : pom.xml e birde Junit 4 ekliyorum. Siz isterseniz Junit isterseniz de TestNG kullanabilirsiniz.

 

  • Bu adımda testini gerçekleştireceğimiz api nin web service ini yazan kişiden hangi URL’e hangi şekilde, tipte veri gönderileceği gibi bilgileri alabilirsek işimiz daha kolaylaşır fakat bizim şuan için böyle bi imkanımız olmadığı için ben tarayıcının Network bölümünden request leri inceleyerek api ye yapılan request i bularak, gerekli bilgileri bulacağım.

 

  • Manual olarak yaptığımız bu işlemi şimdi de Rest Assured kütüphanesi ile otomatikleştirelim. Burada basit bi GET isteği yaparak hava durumu sonuçlarını öğreneceğim.

 

  • RestAssured.baseURI kısmına ana domain i giriyoruz.  (Bu testimde ana domainim “https://servis.mgm.gov.tr/” )
  • Sonra given() ile request configuration ları, authorization gerekli ise auth().form() şeklinde ayarlıyoruz (bu testte api yetkilendirme istemiyor), request header ları gibi bilgileri veriyoruz.
  • Daha sonra when() ile request yöntemini (GET, POST, PUT, DELETE) belirliyoruz ve hangi URL’e istek yapacak isek o url i yazıyoruz. ( Bu testimde istek yapacağım url “api/tahminler/gunluk?istno=94101” )
  • then() kısmında da gelen response code un 200 olduğu validate ediyoruz.

response.jsonPath().getString() ile response body json daki data ları okuyorum.

 

Enes Aydın

CEVAP VER

Yanlış bir e-posta adresi girdiniz!
Lütfen adınızı buraya girin Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.