Postman ile RESTful API’lere Test Otomasyonu Hazırlamak Bölüm 4

Ali Akyürek
Neyasis Technology
Published in
7 min readSep 30, 2020
Postman ile RESTful API’lere Test Otomasyonu Hazırlamak

Bölüm 4: İlişkili Verileri Kayıt Etme, Kayıt Güncelleme ve Silme İşlemleri

Merhabalar,

Sizlere aktaracağım serinin bu bölümünde kayıt eklediğimiz sayfanın datalarından beslenen farklı bir sayfaya kayıt ekleme, kayıt güncelleme ve kayıt silme işlemlerini gerçekleştireceğiz. Bu işlemleri gerçekleştirirken önceden yapmış olduğumuz işlemleri de kullanıp pekiştirmiş ve otomasyonumuzu tamamlamış olacağız.

Web projemize girip gruplar sayfamızı açıyoruz ve eklemiş olduğumuz “Example Group” adlı grubumuzu görüntülüyoruz.

Grupları Görüntüleme (Web projesi Tarafı)

Ardından Postman kütüphanemize bu request’imizi ekliyoruz.

Grupları Görüntüleme Postman Tarafı

Bu request için ilk olarak authorization tarafını ayarladıktan sonra data çekmek için kullanılan GET metodunu kullanıyoruz ve gönderdiğimiz request sonucunda projemizde bulunan grupları çekiyoruz.

Eklemiş olduğumuz “Example Group” adlı grubunda response body alanı içersinde geldiğini görüyoruz.

Bu işlemlerin ardından request’imizin test tarafını açıyor ve şu kodları ekliyoruz.

Grupları Görüntüleme Postman Test Tarafı

var jsonData = JSON.parse(responseBody);
jsonData adlı bir değişken oluşturulur ve response’da dönen body json formatına parse ederek bu değişkene atanır.

Artık response da dönen herşeyi jsonData olarak adlandırdığımız değişken ile yakalayıp test yazmak için kullanabiliriz.

const formItem = jsonData.items.find(i => i.name == “Example Group”);
formItem adında bir değişken oluşturup jsonData içerisinde yani response body de gelen kayıtlar içerisinde adı example group olan kayıtı yakalıyoruz.

postman.setEnvironmentVariable(“T.O_Group_Id”, formItem.id);
Yakaladığımız kayıtın Id’sini değişken olarak T.O_Grup_Id adı ile çağırılmak üzere değişken ortamımıza kayıt ediyoruz.

pm.test(“Should Be Status Code Is 200”, function () {pm.response.to.have.status(200);});
İşlemimizin başarılı olarak dönen statüsü 200 olmalıdır diyoruz.

Kayıt Eklediğimiz Sayfanın Datalarından Beslenen Farklı bir Sayfaya Kayıt Ekleme:

Diyelim ki projemizde oluşturduğumuz grup içerisinde olan kişilere, proje içerisindeki sayfalara ve işlemlere erişmesi veya erişememesi doğrultusunda yetkiler vermek istiyoruz ve bunu sağlayan farklı bir sayfa daha var.
Bu sayfa yetki oluşturma sayfası olsun ve bizden oluşturduğumuz yetkileri gruplar sayfasında oluşturulan hangi gruba atanacağının bilgisini, yani gruplar sayfasında oluşturduğumuz grubun Id’sini istiyor olsun.

Yetki Oluşturma Web Projesi Tarafı

Yetki kaydı oluşturuyor ve oluşturduğumuz bu yetkiyi grubumuza atıyoruz. Üstteki “Yetki Oluşturma Web Projesi Tarafı” görselinde görüldüğü üzere request’imizde oluşturduğumuz yetki kaydının isim ve ve yetkilendirme datalarıyla beraber bu yetkiyi bağlayacağımız gruba ait olan Id de gönderilmiş.

Postman kütüphanemize bu request’i de ekleyelim.

Yetki Oluşturma Postman Tarafı

Authorization tarafını ayarladıktan sonra body kısmına gelerek gönderdiğimiz datayı gene json formatına çevirip post metodunu kullanıyoruz.

Gönderilecek olan grup Id kısmına bir önceki GET request’imizin test tarafında (Grupları Görüntüleme Postman Test Tarafı Görseli) yakalayıp environment’ımıza eklemiş olduğumuz grubumuzun Id’sini {{T.O_Group_Id}} şeklinde yazarak çağırmış oluyoruz.
Böylece oluşturacağımız yetkilerin hangi gruba bağlanacağını Postman tarafında belirtmiş oluyoruz.

Environment’tan çağırılan değişkenleri kullanırken üstteki “Yetki Oluşturma Postman Tarafı” görselinde de gözlemleyebileceğiniz üzere süslü parantezler içerisinde kullanmalıyız aksi halde hata alırız.

Test tarafına pm.test(“Should Be Status Code Is 202”, function () {pm.response.to.have.status(202);});
İşlemimizin başarılı olarak dönen statüsü 202 olmalıdır kodunu ekliyoruz ve Send butonuna tıklıyoruz.

Post metodu kullanarak yolladığımız request’in dönen 202 durum kodu ile olarak başarılı bir şekilde eklendiğini görüyoruz.

Kayıt Güncelleme:

Diyelim ki eklemiş olduğumuz yetki kayıtını güncellemek istiyoruz bunun için ilk yapmamız gereken yetkiler sayfasındaki kayıtları çekerek güncellemek istediğimiz kayıta ait olan idyi yakalamak olacaktır.

Yetkileri Görüntüleme İşlemi (Web Projesi Tarafı)

Postman kütüphanemize de bu işlemi ekleyelim.

Yetkileri Görüntüleme İşlemi (Postman Tarafı)

Request adresimizi yazıp GET metodunu kullanarak yolladığımızda 200 olarak dönen başarılı istek durumunu ve dönen response body alanındaki “My Group Role” adlı kaydımızı görüyoruz.

Authorization tarafını ayarladıktan sonra test kısmına gelerek güncellemek istediğimiz kayıtın Id’sini yakalamak için aşağıdaki kodları ekliyoruz.

var jsonData = JSON.parse(responseBody);
jsonData adlı bir değişken oluşturulur ve responseda dönen body json formatına parse ederek bu değişkene atanır. Artık response da dönen her şeyi jsonData olarak adlandırdığımız değişken ile yakalayıp test yazmak için kullanabiliriz.

const formItem = jsonData.items.find(i => i.name == “My Group Role”);
formItem adında bir değişken oluşturup jsonData içerisinde yani response body’de gelen kayıtlar içerisinde adı My Group Role olan kayıtı yakalıyoruz.

postman.setEnvironmentVariable(“T.O_Role_Id”, formItem.id);
Yakaladığımız kayıtın Id’sini değişken olarak T.O_Role_Id ile çağırmak üzere değişken ortamımıza kayıt ediyoruz.

pm.test(“Should Be Status Code Is 200”, function (){pm.response.to.have.status(200);});
İşlemimizin başarılı olarak dönen statüsü 200 olmalıdır kodunu ekliyoruz.

Artık güncelleyeceğimiz kayıtın Id’sine sahibiz. Sıra güncelleme işlemini yapmakta. Güncelleyeceğimiz yetkiye ulaşıp vermiş olduğumuz yetkilerden bir tanesinin işaretini kaldırıp güncelleme işlemini tamamlıyoruz.

Yetki Güncelleme İşlemi (Web Projesi Tarafı)

Kaydımızı güncellediğimizde, güncellediğimiz kayıta ait olan Id request url’imizin en sonunda put metodu ile gönderiliyor.
Gönderilen bu id “Yetkileri Görüntüleme İşlemi (Postman Tarafı)” adlı iki üst görselde gözlemleyebileceğiniz üzere bizim bir önceki işlemimizde yaptığımız get requestimizin test tarafında yakalayarak “T.O_Role_Idadı verdiğimiz değişkende tutulan id olacak.
Şimdi bu işlemi postman kütüphnemize ekleyelim.

Yetki Güncelleme İşlemi (Postman Tarafı)

Authorizetion tarafını ayarladıktan sonra body kısmına gelerek göndereceğimiz yetki datasını gene json formatına çevirip yetki adına “My Group Roles Updated” yazarak değişitiriyoruz ve put metodunu seçiyoruz.
Url alanımıza eklediğimiz adresin id kısmına bir önceki yaptığımız get işleminin test tarafında yakalayıp environmentımıza eklemiş olduğumuz grubumuzun id sini {{T.O_Role_Id}} şeklinde yazıyoruz.
Send butonuna tıklayıp requestimizi gönderdiğimizde başarılı güncelleme yapmış olduğuzu belirten 202 durum kodunu görüyoruz.
Test tarafına da pm.test(“Should Be Status Code Is 202”, function (){pm.response.to.have.status(202);});
İşlemimizin başarılı olarak dönen statüsü 202 olmalıdır kodunu ekliyoruz.

Şimdi tekrar get işlemi yapalım ve yetkimiz güncellenmiş mi bakalım.

Yetki Güncelleme Kontrolü (postman Tarafı)

Yetkilerimizi çekiyoruz ve response body alanında görüyoruz ki güncelleme işlemimiz başarılı olmuş.
Kayıdımızın adı son güncellendiğimiz üzere “My Group Roles Updated” olacak şekilde yansımış.
Test tarafımıza pm.test(“Should Be Status Code Is 200”, function (){pm.response.to.have.status(200);});
İşlemimizin başarılı olarak dönen statüsü 200 olmalıdır kodunu da eklemeyi unutmayalım.

Şimdi sırada belirdeğimiz bir kayıdı silmek var.

Kayıt Silmek: Önce kayıt eklemek için yazmış olduğumuz insert group requestimizi kopyalayıp yeni bir grup ekleyelim sonra eklemiş olduğumuz grubu get işlemi ile çekelim ve idsini yakalayalım ardından yakaladığımız grubun idsini güncelleme işleminde yapmış olduğumuz gibi silme işleminde de kullanacağız ayrıca şimdiye kadar yapmış olduğumuz işlemleri de tekrar pekiştirmiş olacağız.

Grup Ekleme Requesti Kopyalama İşlemi (Postman Tarafı)

İnsert group requestimzi seçiyoruz ve ctrl+c yapıp basit bir kopyalama işlemi yapıp ardından ctrl+v yapıyoruz ve kütüphanemizdeki request listemizin en altına insert groups copy adında gelen insert group adlı requestimzin kopyasını görüyoruz.
Postman arayüzü bu kısayol komutlarının kullanımına izin veriyor.
Requestin üstüne sağ tıklayıp adını insert Group 2 şeklinde değiştiriyoruz. Requestimizin url, metot, body, authorizetion ve test tarafları kopyalanmış şekilde geldiği için değişiklik yapmaya gerek yok sadece body alanındaki name alanının sonuna 2 yazarak send butonuna basıyor ve isteğimizin başarılı olduğunu dönen 202 durum koduyla beraber anlıyoruz.
Basit bir kopya işlemi yaparak web projemize yeni bir grup eklemiş olduk.
Şimdi web projemizde bu işlemi kontrol edelim.

Kopya Grup Görüntüleme (Web Projesi Yansıma Kontrolü)

Görüldüğ üzere web projemize baktığımızda postman ile yaptığımız ekleme işlemi yansımış ve grubumuz eklenmiş.
Şimdi eklenen grubumuzun idsini yakalamak için grup kayıtlarını çekmeliyiz ve grup kayıtlarını çekmek için önceden yazdığımız View Groups adlı requesti kopyalayıp adını View Groups 2 olarak değiştiriyoruz.
Send butonuna tıklayıp isteğimizi yolladığımızda isteğimizin başarılı oldupğunu belirten 200 durum kodunu ve response body içinde dönen Example Group 2 adlı son eklediğimiz grup kayıtını görüyoruz.

Kopya Grup Görüntüleme ve Test Tarafı Düzenleme (Postman Tarafı)

Requestimizin url, metot, body, authorizetion ve test tarafları kopyalanmış şekilde geliyor fakat test tarafında değişiklik yapmalıyız, idsini yakalayacağımız grubun adını;
const formItem = jsonData.items.find(i => i.name == “Example Group 2”); şeklinde güncelliyoruz ve ardından yakaladığımız idyi atayacağımız değişkenin adını;
postman.setEnvironmentVariable(“T.O_Gruop_Id_2”, formItem.id);olacak şekilde güncelliyor ve yeni bir değişken oluşturup ortamımıza eklemiş oluyoruz.

Şimdi gelelim idsini yakaladığımız kayıtı silmeye;

Grup Silme (Web Projesi Tarafı)

Kayıtımızı sildiğimizde silinen kayıtın idsi request urlimizin en sonunda delete metodu ile gönderiliyor.
Bu id “Kopya Grup Görüntüleme ve Test Tarafı Düzenleme (Postman Tarafı)” adlı iki üst görselde gösterimiş olmak üzere, bir önceki işlemimizde yaptığımız get requestimizin test tarafında yakalayıp “T.O_Gruop_Id_2” adı verdiğimiz değişkende tutulan id olcak.
Şimdi bu işlemi postman kütüphanemize ekleyelim.

Grup Silme (Postman Tarafı)

Authorizetion tarafını ayarladıktan sonra url alanımıza eklediğimiz adresin id kısmına bir önceki yaptığımız get işleminin test tarafında yakalayıp environmentımıza eklemiş olduğumuz grubumuzun id sini {{T.O_Gruop_Id_2}} şeklinde yazıyoruz ve metot olarak delete seçiyoruz.
Send butonuna tıklayıp isteğimizi yolladığımızda başarılı bir silme işlemi yapmış olduğuzu belirten 202 durum kodunu görüyoruz.
Test tarafına pm.test(“Should Be Status Code Is 202”, function (){pm.response.to.have.status(202);});
İşlemimizin başarılı olarak dönen statüsü 202 olmalıdır kodunu ekliyoruz.

Artık kütüphanemiz tamamlandı ve toplamda 10 requestlik bir kütüphaneye sahibiz.

Serinin devamında postman cloud ile yapmış olduğumuz collectionları paylaşmayı ve postman runner ile kütüphanemizdeki requestleri çalıştırarak otomasyon işlemini gerçekleştirmiş olacağız.

Teşekkürler.

Ali Erhan Akyürek

--

--