Postman’de Test Yazmak ve Testleri Bir Tık İle Çalıştırmak

Duygu Demirbaş
Kodcular
Published in
5 min readNov 24, 2020

Postman Nedir ne işe yarar ve avantajları nelerdir diyenlerdenseniz öncelikle sizi şuraya alalım :

Postman’de Tests tabında Javascript kodları yazarak dönen response’un beklediğimiz gibi olup olmadığını kontrol edebiliriz. Normalde tek tek kontrol edeceğimiz sonuçları tests tabına yazarak kaydedebilir ve API’de herhangi bir değişiklik olduğunda tek tık ile tüm testleri çalıştırabiliriz.

Javascript kodu yazarak test ediyoruz dediğime bakmayın bunun için POSTMAN’in snippets kısmından da destek alarak çok az Javascript bilgisi ile hızlıca testler yazabiliyoruz.

Tests tabına gidip sağdaki Snippets bölümünden “Status Code is 200" yazan yere tıklıyoruz ve Tests tabına ilgili test kodunun geldiğini görüyoruz.

pm.test(“Status code is 200”, function () {
pm.response.to.have.status(200);
});

Send butonuna tıkladığımızda Test Results kısmında test sonuçlarını görebiliriz.

Request sunucuya gönderilip response döndükten sonra testlerimiz çalışır. pm.response ile nesneye erişilerek parametreler test edilebilir.

Snippets bölümünden ”Response time is less than 200ms” tıkladığımızda ikinci testi de Tests sekmesine eklediğini göreceğiz ve SEND dediğimizde iki testin de çalıştırıldığını göreceğiz.

Yukarıda iki tane test yazıp bunların başarı ile çalıştığını gördük. JSON dışında başka response tiplerini de parse edebiliriz, bunun için :

JSON : const responseJson = pm.response.json();
XML : const responseJson = xml2Json(pm.response.text());
CSV : const parse = require('csv-parse/lib/sync');
const responseJson = parse(pm.response.text());
HTML : const $ = cheerio.load(pm.response.text());
//output the html for testing
console.log($.html());

Neden Collection’lar İçin Test Yazmalı ?

Tüm apilerimizde response’un JSON döndüğünü düşünelim. Bu durumda API’den dönen sonucun JSON olduğunu kontrol ettiğimiz bir test oluşturalım.

pm.test(“Response is json”,function(){
pm.response.to.be.json;
});

Peki tüm apilerin tek tek Tests kısmına gidip bu kod parçacığını mı yapıştıracağız ? Cevabımız tabi ki HAYIR.

Postman Collection Edit

DRY{Don’t Repeat Yourself} prensibine uyarak tüm apilerimiz için geçerli olan testleri her api için ayrı ayrı yazmadan ilgili collection için çalışacak şekilde yazabiliriz. Collection’a gelip Edit diyerek Tests sekmesine testlerimizi yazarsak testler aynı collection içindeki tüm API’ler için çalışır.

Postman’de Console Log Yazmak

Postman’de aşağıdaki gibi log yazabiliriz : console.log('This is a log.')

Postman’de console’u açmak için sol altta status bar alanında bulunan “Postman Console” butonuna tıklayınız. (Ctrl + Alt + C)

Postman Console Ctrl + Alt + C

Postman’de Request, Folder ve Collection’lar İçin Testlerin Çalışma Sırası

Postman’ de scriptler aşağıdaki iki kısıma yazılır :

  1. Pre-request Script: Bir request sunucuya gönderilmeden önce çalıştırılması gereken kodlar bu kısma yazılır.

2. Tests: Bir request sunucuya gönderildikten ve response alındıktan sonra çalıştırılması gereken kodlar bu kısma yazılır.

Scriptlerin çalışma sırası Postman’de otomasyon yapmayı düşünüyorsanız oldukça önemlidir. Testler çalışırken aşağıdaki önceliğe göre çalışır :

  1. Collection Pre-Request Scripts
  2. Folder Pre-Request Scripts
  3. Request Pre-Request Scripts
  4. Request
  5. Response
  6. Collection Tests
  7. Folder Tests
  8. Request Tests

Postman’de testlerin çalışma sırasını gözlemlemek için yeni bir Collection oluşturalım. (My Collection)

Bu collecion altında yeni bir folder oluşturalım. (My Folder)

Ve onun altında da bir Request oluşturalım. Ve işlemlerin sırasını gözlemlemek için log yazalım.

Collection Folder ve Request’in Pre Request Script kısmına ve Tests kısmına aşağıdaki logları yazalım :

MyCollection Pre Request Script => console.log(‘1-My Coll Pre Req Script’)

MyCollection Tests => console.log(‘4-My Col Test Script’)

MyFolder Pre Request Script => console.log(‘2-My Folder Pre Req Script’)

MyFolder Tests => console.log(‘5-My Folder Test Script’)

Request Pre Request Script => console.log(‘3-Request Pre Req Script’)

RequestTests => console.log(‘6-Request Test Script’)

(Ctrl + Alt + C) ile console’umuzu açalım ve SEND butonuna basalım :

Logu incelediğimizde scriptlerimizin yukarıda anlattığımız sırada çalıştığını görüyoruz. Bu yapıyı bildikten sonra istediğimiz otomasyonu yapmak çok daha kolaydır.

Collection Runner ile Testleri Bir Tık İle Çalıştırmak

API’mizi geliştirdik, testlerimizi yazdık, sonrasında API’de ufak ama bir kaç yeri etkileyen bir değişiklik istendi. İlgili API’nin bulunduğu collection’ı açtım ve bu collection’ın içinde birbirini kullanan 5 tane API olduğunu gördüm. Önceden testlerini yazdığım, environment variable’lar ile API’ler arası data transferi yaptığım bir collection olduğunu düşünelim.

Postman Runner

Bu API’lerde istenen değişiklikleri yaptıktan sonra tüm yapmamız gereken üstteki Runner butonuna basıp ilgili collection’ı seçmek.

Açılan pencereden collection’ımızı seçip, bu collection için tanımladığımız environment varsa seçip Start Run butonuna basıyoruz.

Bizim için tüm API’lerin testlerini çalıştırıyor ve test sonuçlarını aşağıdaki gibi listeliyor: 2 testin geçtiğini 1 tanesinin ise fail olduğunu görüyoruz.

Postman Runner

Bu sayede geliştirmelerimiz tamamlar tamamlamaz 1 tık ile hata alan API’lerimizi görebiliyor, düzeltebiliyoruz.

--

--