Mountebank ile requestleri kaydetme/görüntüleme
Mountebank, Çiçeksepeti’nde mikroservis testlerimizde kullandığımız, servisleri mocklayarak, gerekli olan response’ları dönmemizi sağlayan açık kaynak bir araçtır.
Mountebank, bir requestin belirli kriterlerine dayalı olarak, istediğimiz şekilde response almamızı ve sağladığı arayüzüyle atılan requestleri inceleyebilmemizi sağlamaktadır.
Entegrasyon testlerimizde test ettiğimiz servis, başka servisler ile haberleşiyorsa, bu dış servislerin test ortamlarına gitmek yerine mountebank ile mocklamaktayız. Böylelikle test ortamlarındaki değişiklikler /hatalar veya dataların değişmesi sonucu testlerimizin etkilenmesini önlemekteyiz.
Kullanacağımız tüm servisler için belirlediğimiz portlarda ayrı ayrı mock datalarımızı oluşturduktan ve projemizi ayağa kaldırdıktan sonra, http://localhost:2525/imposters adresinde, gidilen her bir dış servis için oluşturduğumuz imposter dosyalarını ve gelen requestleri görmekteyiz.
İstek atılan imposter detayına girildiğinde, /verify
endpointine POST isteği atıldığını görmekteyiz. Request’in header ve body bilgileri aşağıdaki gibi görüntülenebilmektedir. Imposterlar bu formata uygun olarak oluşturduğumuzda imposter.ejs içerisinde düzenlediğimiz response dönecektir.
Requestleri görüntüleyebilmek için mountebank dosyalarında yapılması gerekenler:
- Atılan requestleri görüntüleyebilmek için
"recordRequests": true
olarak her imposter dosyasına eklenmelidir.
- Mountebank için container oluştururken arayüze erişebilmek ve requestleri görünteleyebilmek için ayrı bir port eklenmelidir.
Referanslar: