Postman ile Backend API Otomasyonuna İlk Adım

Ozan Eser
5 min readOct 2, 2019

--

Herkese merhaba,

Bu yazı dizisi boyunca sizlere Backend API otomasyonu, Postman kullanımı ve Postman ile API otomasyonu geliştirilmesi hakkındaki bilgi ve tecrübelerimi paylaşmaya çalışacağım. Keyifli bir yazı dizisi olması dileğiyle…

Hadi başlayalım o zaman!

Postman, kullanıcıların hem basit hem de karmaşık HTTP isteklerini hızlı şekilde bir araya getirmelerini sağlayarak API’leri paylaşmak, test etmek, geliştirmek, belgelendirmek ve monitör etmek için kullanılan güçlü bir HTTP istemcisidir. Bu yazı dizisinde Postman’in diğer özelliklerinden de bahsedilmekle birlikte genel olarak API test otomasyonu üzerine yoğunlaşacağız. API nedir? REST nedir? API testi nedir? Postman Nedir? Postman kurulum ve güncellemeleri, Postman arayüz, Sending API request, collection, script, environments ve globals, collection runs, monitors, mock servers, CI ve workspaces kavramlarına cevap arayacağız.

1. API Nedir?

API (Application Programing Interfaces — Uygulama Programlama Arayüzleri) en kısa hali ile iki yazılım veya veritabanı arasında iletişim ve veri alışverişi sağlar. API sayesinde yazılım geliştiricileri, ellerindeki verileri istedikleri sınırlılıkta dış dünyayla paylaşabilmekte ve bu paylaşım sürecinde tüm kontrolleri ellerinde tutabilmektedirler.

Yukarıdaki resimde görüldüğü gibi API, database ile uygulamalar(ios, android, linux, windows ve web browser) arasında bir arayüzdür. Ayrıca API business logic’in önündeki bir katmandır. API’ye gelen bir request (istek) database’e gidebilir ve database’de işlenerek geri yönde bir response (cevap) dönebilir. Bu durum verilerin kalıcı olması isteniyorsa gerçekleşir. Yani API’ye gelen her request database’e gitmez. Database’e gitmeden bir takım işlemler yapılıp response dönebilir. Örneğin; veriler cache’de tutuluyor olabilir, validasyon hataları olabilir, kodun içerisinden statik bilgiler gönderiliyor olabilir.

Örneğin; cep telefonunuzda bir uygulama kullandığınızda, uygulama internete bağlanır ve verileri bir sunucuya gönderir. Sunucu daha sonra bu verileri alır, yorumlar, gerekli işlemleri yapar ve telefonunuza geri gönderir. Uygulama daha sonra bu verileri yorumlar ve okunabilir bir şekilde istediğiniz bilgileri size sunar. İşte tüm bu işlemler API üzerinden gerçekleşir.

2. Request Nedir? Response Nedir?

API’ler request ve response’lardan oluşur. Belirlenen parametreler ve metod ile bir request gönderilir ve gerekli işlemler yapıldıktan sonra bir response döner.

Örnek vermek gerekirse; bir uygulamaya ilk kez girdiğinizde kaydolmanız gerekir. Ad, soyad, email, telefon numarası gibi çeşitli parametreler girdikten sonra “Kaydol” butonuna basarsınız ve girilen parametreler uygunsa uygulamaya kaydolursunuz, değilse bir hata mesajı ile karşılaşırsınız. Aslında burada kaydol butonuna basıldığında Sign-Up API’sine request atılır ve girilen parametrelerin uygun olup olmamasına göre bir response döner. Böylelikle uygulamaya kaydolur veya bir hata mesajı alırsınız.

3. REST Nedir?

REST (REpresentational State Transfer), Türkçeye Temsili Durum Aktarımı olarak çevrilebilir. REST client-server iletişimini HTTP protokolü üzerinden sağlayan bir mimaridir. Client-server arasındaki veri alışverişini SOAP, RPC gibi kompleks mimarilerle sağlamak yerine, HTTP protokolü üzerinden sağlamaktadır. REST mimarisini kullanan servislere genel olarak RESTful servis denilmektedir. RESTful servisler SOAP ve RPC’nin aksine basit ve hafiftirler.

REST mimarisindeki önemli noktalardan biri de her HTTP request’inde yapılması istenilen işlemin HTTP metodlarıyla ifade edilmesidir (POST, PUT, DELETE ,GET gibi). Böylece proxy ihtiyacı ortadan kalkmış oluyor ve platform bağımsız yapılar kurmak kolaylaşıyor. Web API’lerinin tamamı REST mimarisi üzerinde dizayn edilir. Bundan dolayı platform bağımsız çalışır.

RESTful servislerin bir çok farklı response tipi olabilir. Bugünlerde popüler olarak JSON kullanılıyor. Fakat XML, CSV veya amaca bağlı olarak HTML bile kullanılabilir.

4. API Testi Nedir?

API isteklerinin, parameterlerini, işlevselliğini doğrulamak, sınır değer analizi yapmak ve hataları ortaya çıkarmak için yapılan testlerdir. Ayrıca ardarda çalışan API’lerin performansını ölçmek için de iyi bir yöntemdir. API’lerle gelen dönüş değeri giriş koşuluna göre kontrol edilir. API testleri, kullanılabilirlik, işlevsellik, güvenilirlik, performans ve güvenlik konularında güvence sağlamaktadır.

API testi, GUI testinden tamamen farklıdır ve temel olarak yazılım mimarisinin iş mantığına odaklanır. Bu test, bir uygulamanın görünümüne odaklanmaz.

API testi, API özelinde test edilmeye başlanır. Burada status code, response time, response body, response headers gibi bir çok alan test edilir. Sonrasında birden fazla API’den oluşan kullanıcı senaryoları gerçeklenir. Böylece uçtan uca (end to end) bir test gerçekleşir.

API Testlerimizi otomatize ederken belirli prensipler çerçevesinde yapmamız çok önemlidir. Bu prensipler arasında benim ilke edindiğim en önemli maddeler:

· Empati Kurmak: Otomasyon yazarken öncelikle happy senaryoyu düşünmeli ve bu duruma göre otomasyonu gerçeklemeliyiz. Happy senaryoyu gerçekleştirdikten sonra son kullanıcı (end-user) gibi düşünmeliyiz. Böylelikle bir kullanıcının gerçekleştireceği bütün senaryoları otomatize edebiliriz.

· Hız: API otomasyonunun en önemli özelliklerinden biri hızlı olmasıdır. Bu sebeple gerçeklediğimiz bir otomasyon suiti hızlı çalışmalıdır.

· Tekrar Edilebilir: Yazmış olduğumuz otomasyon suiti birden fazla kez koşulabilmelidir.

· İzole Edilmiş: Test edilecek birimi izole etmeli ve bağımlılıkları azaltmalıyız. Çünkü; karmaşık senaryolar veya hata senaryoları kolayca yaratılamamaktadır. Bu da otomatize edilmesini zorlaştırıyor. Otomatize edilse bile çok fazla zaman harcamamıza sebep olabiliyor veya el ile müdahale gerektiriyor.

· Stabil: Yazmış olduğumuz otomasyon suiti stabil şekilde çalışmalıdır. Yani bir çalıştırdığımızda 30 tane fail olan case varken 2. Çalıştırdığımızda 100 tane fail olan case var ise bu otomasyon suiti stabil çalışmamaktadır.

Tüm bu maddeler ışığında otomasyona doğru zamanda başlamakta çok önemlidir. Gereksinimlerin sık sık değiştiği durumlarda API otomasyonu gerçekleştirmek daha sonra çok fazla bakım maliyetine sebep olabilir. Bu yüzden projenin gereksinimleri netleştiğinde otomasyon adımlarının atılmasının daha doğru bir yaklaşımdır.

API Testi için kullanılan bir çok otomasyon aracı vardır. Bunlar arasında; Jmeter, Postman, SoapUI, Katalon Studio, Tricentis Tosca, Rest Assured, Karate DSL, Apigee ve Assertible sayılabilir. Bu yazı dizisinde Postman’den bahsedilecektir.

Bir sonraki yazımızda Postman kullanımı üzerinde duracağız.

Herkese keyifli ve sağlıklı haftalar :)

--

--

Ozan Eser

Software Test Automation Engineer @Ciceksepeti #JMeter #Postman #Appium #Selenium