Image 189
Postman’de Değişken Kullanımı

Postman Nedir?

Postman kendi web sayfasındaki tanımı ile; API’ler oluşturmaya ve kullanmaya yönelik bir API platformudur. Postman, API yaşam döngüsünün her adımını basitleştirir ve daha iyi API’leri daha hızlı oluşturabilmeniz için iş birliğini kolaylaştırır. Elimizde istemci (client) olarak kullanabileceğimiz bir uygulama olmadığında API tarafını test etmek veya denemek için istemci uygulama olarak kullanabileceğimiz bir uygulamadır kendisi.

Postman kullanımı ara yüzünde genel itibariyle istek mesajı gönderip yanıt mesajı almak üzerine dayanmaktadır. Bu yazımızda bu kısma değil, Postman ile işlem yaparken değişkenlerle nasıl çalışabileceğimize odaklanacağız. Bunun için önce bir rest API servise ihtiyacımız var.

Test amaçlı örnek bir rest API servis sağlamak için retool.com’un api-generator fonksiyonunu kullandım. Farklı bir uygulama ya da local bir servis de kullanabilirsiniz. Http GET, POST, PUT, PATCH ve DELETE metotlarını destekleyen id, Password, CustomerId ve SessionKey alanlarından oluşan bir servis hazırladım. Servis erişim adresi https://retoolapi.dev/gwxVqX/Login şeklinde oluştu. Servisin tüm metotları aşağıdaki gibidir.

Şekil 1. Tanımlanan servisin metotları ve url bilgileri

https://retoolapi.dev/gwxVqX/Login adresinden tüm dataya erişim sağlanabilirken aynı adrese POST ile ilgili alanlara uygun veriler verilmesi halinde yeni kayıt atılabilmektedir. Tüm veriler aşağıdaki gibidir.

Şekil 2. Servisimizdeki Tüm Verilerimiz

Postman Değişken Kapsamları ve Tanımları

Collection Kapsamında Postman Değişkenleri:

Postman uygulamasında birbiriyle ilişkili servis testlerinizi gruplandırabileceğiniz (klasörleyebileceğiniz) yapılara “Collection” adı verilmektedir. Uygulamanın Sol panelinde Collection alanı görülebilir. Bu alan içerisinde klasörler oluşturulup istediğiniz requestleri oluşturduğunuz klasör içerisine kaydedebilirsiniz.

Şekil 3. Collections Paneli

Bu kapsamda yapılan değişken tanımları yalnızca aynı collectionda kayıtlı requestlerde kullanılabilir. Tanım için aşağıdaki adımlar izlenir.

  • Tanımlamak istediğiniz Collection üzerine gelerek … menü ikonuna tıklayıp “Edit” seçeneği seçilir.
  • Variables sekmesine tıklanır.
  • Açılan tabloda Variable sütununa değişken adı Current Value sütununa değişken değeri yazılır. Örnek olarak url adresimizi Collection değişkeni olarak tanımlayalım.

Şekil 4. Collection Düzenleme Seçeneği
Şekil 5. Collection Değişken Ekranı

Ortam (Environment) Kapsamında Postman Değişkenleri:

Environment tanımı Postman’in kendi ifadesiyle: “An environment is a set of variables that allow you to switch the context of your requests.” şeklindedir. Bizim anlayacağımız şekilde ifade etmek istersek aynı collection içinde değişkenlerin farklı gruplar halinde tanımlanmasına imkân sağlayan bir yapıdır. Aslında tam anlamıyla ortam demektir. Mesela aynı requestleri hem test hem prep hem prod ortam için kullanmak istiyorsunuz. Birden fazla Environment tanımlayıp (Environmentlar aynı collection içinde çalışır.) aynı değişkenler için farklı değerler verilebilir. Yine url örneği üzerinden ilerlersek her ortamın url adresini aynı değişken adıyla farklı environment tanımlarında tanımlayabiliriz. Böylece farklı ortamda aynı requesti çalıştırmak için sadece environment seçmek yeterli olacaktır.

Environment ve değişken tanımı aşağıdaki şekilde yapılabilir.

  • Sol üst köşedeki “New” butonundan “Environment” seçeneği seçilir.
  • Environment’a bir isim verilir.
  • Aynı ekranda değişken ismi ve değeri tanımlanır.

Şekil 6. Environment (Ortam) Tanımı

Şekil 7. Environment (Ortam) Kapsamında Değişken Tanımı

Global Kapsamda Postman Değişkenleri:

Bu kapsamdaki değişkenler tüm collection ve environmentlerda kullanılabilir. Global değişken tanımlamak için aşağıdaki adımlar izlenir.

  • Sağ üst köşede yer alan Environment adının sağındaki quick look ikonuna tıklanır.
  • Açılan dialogdaki Global sekmesinde yer alan Add / Edit butonuna basılır.
  • Açılan ekrandan değişken adı ve değeri tanımlanır. Örnek olarak Login serivisinin POST metodu ile yeni tanımladığımız müşteri için aldığımız id değerini tanımlayalım.

Şekil 8. Global Kapsamda Değişken Tanımı-1

Şekil 9. Global Kapsamda Değişken Tanımı-2

Postman’de Değişken Kullanımı

Değişkenleri tanımladık. “Peki şimdi ne olacak?” derseniz gelelim değişkenlerin kullanımına 🙂

Herhangi bir değişkeni nerede kullanmak istersek (request url veya request mesajı içinde bi alan hiç farketmez) {{Değişken Adı}} şeklinde yazmamız yeterlidir. Aşağıdaki örnekte yukarıda tanımladığımız “url” collection değişkeni ve global “id” değişkeninin kullanımını bulabilirsiniz. GET metodu kullanıldığı için Postman otomatik olarak request gövdesindeki key – value çiftini url sonuna “?” ile ekliyor.

Şekil 10. Global Kapsamda Değişken Tanımı-2

Scriptlerle Postman Değişkenlerini Yönetmek

“Değişkenleri tanımladık ve kullandık. Ama değişkenin değeri her değiştiğinde el ile tekrar tekrar yazacak mıyız?” diyebilirsiniz. Yerden göğe haklısınız 🙂


Mesela id için oluşturduğumuz değişken her yeni customer için farklı değer alacaktır. İşte bunları da Postman scriptleri ile halledebiliyoruz. Script deyince gözümüz korkmasın 🙂 Postman içinde javascript ile kod yazılabiliyoruz. Üstelik bazı Postman’e özel fonksiyonlar da bizim için code snippet şeklinde hazırlanmış, bunlara da ulaşmak bir tıklama kadar yakın 🙂

Peki bu scriptlerimizi nereye yazıyoruz. Bunun iki farklı yeri var. Herhangi bir rest veya soap servis metodunun bir request bir de response mesajı bulunmaktadır. Bunlardan request mesajını yazdığımız alanda Pre-req ve Tests adında 2 sekme bulunmaktadır. Bu sekmelere scriptler yazılabilir. Pre-req servise istek atılmadan çalışmasını istediğimiz script kodlarını, Tests ise servis çalıştıktan sonra çalışmasını istediğimiz script kodlarını içerir.

Örnek olarak POST metodu ile yeni müşteri kaydeden isteğimiz çalıştıktan sonra (Tests sekmesi) global “id” değişkenimizin değerini yeni “id” ile güncelleyelim. Böylece müşteri sorgusu yapabildiğimiz GET metodumuzda güncel “id” değeri ile çalışmış olalım.

Şekil 11. Script ile Değişkene Değer Atamak

Evet, hadi yazdığımız koddan da biraz bahsedelim. Ne yazdık?

var jsonData = JSON.parse(responseBody);

pm.globals.set(“id”, jsonData.SessionKey);

Peki bu kod ne iş yapıyor? İlk satırda metodun responsunu Json objecti olarak bir değişkene atıyoruz. Tertemiz pure javascript bir kod. 🙂

İkinci satırda da Postman’in bizim için hazırladığı global değişken tanım fonksiyonunu kullandık. Bu fonksiyona da yukarıdaki resimde yer alan linklerden tıklayarak erişebiliyoruz. Global kapsamda “id” adında bir değişken tanımlayıp Json objectimizde yer alan “id” field değerini global değişkene atadık. İşte bu kadar basit. 🙂 Diğer metotlarımız içerisinde de {{id}}şeklinde tanımlayıp bu değişkeni kullanabiliyoruz. Bu şekilde her zaman güncel veri ile testlerimize devam edebiliyoruz. 🙂

Kaynaklar

Murat Kuşçi
Ocak 29 , 2024
Diğer Blog İçerikleri