Postman ile API Testi

Bu yazımda Postman ile API testi yazmayı ve yazdığımız testleri otomatik olarak nasıl koşacağımızı öğreneceğiz.
Postman sahip olduğu arayüzü ile API’lerinizi hem masaüstü hem de web tabanlı uygulamalarında kontrol etmenize olanak tanır. Bunun yanısıra JavaScript kullanarak testler yazmaya yazdığımız testleri otomatik olarak koşmamıza olanak sağlar.
Postman arayüzünde bulunan Tests Alanında testlerimizi yazacağız.
Temel olarak API testi; Çağrı sonucunda response da iletilen değerin, bekelenen değerle karşılaştırılmasıdır.

Testlerimizi yazarken Postman’ in bize sağladığı pm kütüphanesinin test metodunu kullanacağız. pm.test fonksiyonu iki adet argümana sahip olmalıdır. Bunlardan ilki String değere sahiptir ve bu string alan testimizin
adını
oluştururken diğer alan ise Chai Assertion Library BDD syntax’ı ile gerekli kontrolleri sağlayacağız.

Status Code Testi

API testlerinde en çok kullanılan Status Code testi; gönderdiğimiz Request den dönmesini beklediğimiz Status Code’ un kontrol edilmesidir.

Bu case de Status Codun 200 olması kontrol edilmektedir.
pm.test("Status kod 200 testi", function () {
    pm.response.to.have.status(200);
});
Testin başarılı olması durumu:
Testin başarısız olması durumu:

Response Time Testi

API testlerinde Response time önemli bir kriter olup performans iyileştirmeleri için gerekli bir testtir.

Bu case de Response time ın 200 ms den az olma durumu test edilmektedir.
pm.test("Response time 200ms'den az", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
Testin başarılı olması durumu:
Testin başarısız olması durumu:

Response Value Testi

Response Value testlerimizi yazabilmemiz için bazı formatlamalar yapmamız gerekmekte. Postman bu işlem için bizlere bir çok fonksiyon sunmaktadır. Biz pm.response.json() fonksiyonunu kullanarak çözümleme yapacağız.
JSON olarak çözümlediğimiz sonucu bir değişkene atayarak, bu değişken üzerinden gerekli kontrolleri sağlayacağız.

Bu case de foo alanının value1 olma durumu test edilmektedir.

pm.test("foo alanı testi", function() {
    let jsonData = pm.response.json();
    pm.expect(jsonData.args.foo).is.equals("value1")
})
Testin başarılı olması durumu:
Testin başarısız olması durumu:

Otomatik Test Koşumu

Yazdığımız testleri Collection Runner yardımı ile koşacağız.
Açılan menüde Test Iterations ve Delay değerleri set edip Run butonuna basacağız.
Tüm testler koşulduktan sonra Postman ‘in bize sunduğu Results:

Yazdığımız testleri yeni Monitor oluşturarak istediğimiz zaman aralığında otomatik olarak koşulmayı sağlayabiliriz. Test sonuçları Postman tarafından mail adresimize gönderilecektir.