Postman ile Mock Servis
Merhabalar,
Bu yazımda mock servisin ne olduğunu, neden ihtiyaç duyulduğunu ve postman ile mock servislerin nasıl oluşturulacağını anlatacağım.
İngilizce bir kelime olan mock sahte, taklit gibi anlamlara gelmektedir. Mock servisler ile bir servisi taklit edebiliriz ya da sahte bir servis oluşturabiliriz.
Mock servisleri asıl servise ulaşamadığımız durumlarda kullanabiliriz. Test veya geliştirmelerde entegre olarak çalışan birçok servisle karşılaşmaktayız. Bu servislere ortamsal veya başka bir sebep ile ulaşamadığımız durumlarda bu servislerin düzelmesini bekleyip zaman kaybı olmaması adına mock servisler ile işlemlerimizi devam ettirebiliriz.
Bu yazımda rest api üzerinden ilerleyeceğiz. https://reqres.in/api/users/2 servisinin response code ve response’unu kullanabiliriz.
İlk başta sol üstte yer alan new ikonuna tıkladıktan sonra açılan pencerede “Mock Server” bölümüne tıklıyoruz.
Mock Server’a tıkladıktan sonra mock servisimizi oluşturmamız için yer alan 3 adımdan ilki servisin metodunu, path’ini, response kodunu ve response body’sini seçeceğimiz bölümdür.
Method kısmını get olarak seçtikten sonra Path kısmına istediğimiz bir path yazabiliriz. Response Code kısmına ise ihtiyaca göre response’da hangi kodun dönmesini istiyorsak onu yazmamız gerekiyor. Response Body’de aynı şekilde servisimizi tetiklediğimizde nasıl bir cevap dönmesini istiyorsak onu yazmamız gerekiyor.
Bu seçimleri yaptıktan sonra next’e tıklayıp bir sonraki bölümümüze geçiyoruz.
Bu bölümün ilk kısmında mock servisimize bir isim veriyoruz. İsteğe bağlı olarak servisin çalışacağı ortamı da seçebiliriz.
“Make this mock server private” kısmını işaretlememiz mock servisimizin bize özel olmasını sağlar. Eğer biz bu alanı seçersek servisi tetiklemeden önce header’ın key kısmına x-api-key, value kısmına ise postman api keyimizi eklememiz gerekmektedir. Value kısmına yazacağımız API Keyimizi https://web.postman.co/settings/me/api-keys url’i üzerinden postman hesabınız ile giriş yaparak edinebiliriz. Api key’in nasıl eklenmesi gerektiği aşağıda yer almaktadır.
“Save the mock server URL as an environment variable” kısmını işaretlersek postman’in bizlere sağladığı base url’i otomatik olarak servis ismi ile aynı olarak oluşturulan environment’a kaydeder. Environment seçimi yaparak bu servisi tetikleyebiliriz.
“Add a delay before sending response” kısmını işaretlersek gelen cevaba bir gecikme ekleyebiliyoruz.
Bu seçimleri yaptıktan sonra Create Mock Server’a tıklayarak son kısmımıza geçiyoruz.
Bu kısımda sarı ile işaretlediğim bölümde postman’in bize sağladığı base url’i görüyoruz. Bir önceki bölümde yaptığımız seçim sayesinde bu url servisimizin ismi ile aynı olarak oluşturulan environment’a “url” adında değişken olarak da eklenmiş oldu.
Close diyerek artık servisimize dönebiliriz.
Ana sayfamıza döndüğümüzde seçtiğimiz isimde bir collection ve servisimizin oluştuğunu görüyoruz. Servisimizin path’i ise mock servisimizi oluşturma adımlarının ilkinde seçtiğimiz path olarak karşımıza geliyor.
Environment’ı kontrol ettiğimizde aynı isimde bir environment oluşmuş ve servisimizin base url’i ortam değişkeni olarak eklenmiştir.
Send butonuna tıklayarak mock servisimizi tetiklediğimizde belirlediğimiz response’un döndüğünü görüyoruz.
İstediğimiz zaman oluşturduğumuz mock servisin metodunu, path’ini, response’unu ve body kısmını değiştirebiliriz. Bunun için sarı ile işaretlediğim kısma tıkladığımızda çıkan default seçeneğine tıklıyoruz ve bu şekilde servisin istediğimiz bölümünü değiştirebiliriz.
Bu örnek için mock servisimizin response’unu değiştireceğim. Response’u değiştirdikten sonra değişiklikleri kaydetmemiz gerekmektedir. Bunun için Save Example butonuna tıklıyoruz.
Servisimizi yeniden tetiklediğimizde artık yeni response’umuz dönecektir.
Başka bir tool ile oluşturduğumuz mock servisi tetiklemeyi deneyebiliriz. SOAP UI ile mock servisimizi tetikleyebilmek için ortam değişkeni olarak kaydedilen url ve path’imiz ile mock servisimizin girişini yapıyoruz. Servisi tetiklediğimizde ise aynı response’u aldığımızı görüyoruz.
Umarım faydalı bir yazı olmuştur. Sağlıcakla kalın.
Hakan KAPLAN