DEV Community

Cover image for Online API Mock Araçları Karşılaştırması: Apidog, Mockoon, WireMock, Beeceptor ve Postman
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Online API Mock Araçları Karşılaştırması: Apidog, Mockoon, WireMock, Beeceptor ve Postman

Çevrimiçi bir API sahte sunucusu, backend hazır olmasa bile çalışan bir uç nokta sağlar. Frontend uygulamanızı, mobil uygulamanızı veya test paketinizi barındırılan bir URL’ye yönlendirir ve gerçekçi yanıtlar alırsınız. Ancak Apidog, Mockoon, WireMock, Beeceptor ve Postman; kurulum süresi, veri üretimi, koşullu yanıt desteği ve mock’un nerede çalıştığı açısından belirgin şekilde farklıdır.

Apidog'u bugün deneyin

Bu rehberde her aracı şu açılardan karşılaştıracağız:

  • Mock sunucu nerede çalışıyor: bulut, yerel veya ikisi birden?
  • Yanıt verisi otomatik üretilebiliyor mu?
  • Aynı endpoint farklı isteklere farklı yanıt verebiliyor mu?
  • Kurulum ne kadar pratik?
  • Araç hangi ekip ve kullanım senaryosu için daha uygun?

Bir sahte sunucu için "çevrimiçi" ne anlama geliyor?

"Çevrimiçi" iki farklı modeli ifade edebilir:

  1. Bulutta barındırılan mock sunucu

    • Sağlayıcının altyapısında çalışır.
    • Herkesin erişebileceği genel bir URL üretir.
    • Mobil testler, uzaktaki ekip üyeleri ve müşteri demoları için uygundur.
  2. Yerel mock sunucu

    • Kendi makinenizde, Docker container’da veya CI runner’da çalışır.
    • Genellikle yalnızca aynı ağa veya makineye erişebilen istemciler tarafından kullanılır.
    • Daha hızlıdır, çevrimdışı çalışabilir ve testleri izole tutar.

Bu ayrım önemlidir. Örneğin:

Mobil uygulama testi      -> Genel URL gerekir
Lokal frontend geliştirme -> Yerel mock yeterli olabilir
CI testleri               -> Container veya yerel mock uygundur
Müşteri demosu            -> Bulut mock daha pratiktir
Enter fullscreen mode Exit fullscreen mode

Bu karar, daha geniş sahte sunucuya karşı gerçek sunucu yaklaşımıyla da yakından ilişkilidir.

Araçları değerlendirirken şu beş kriteri birlikte düşünün:

  • Barındırma modeli
  • Otomatik veri üretimi
  • Koşullu yanıt desteği
  • Kurulum eforu
  • API tasarımı ve test akışıyla entegrasyon

Apidog

Apidog, API tasarımınızdan otomatik olarak mock endpoint üretir. Bir endpoint tanımladığınızda ayrı bir mock sunucu konfigürasyonu yapmadan mock URL oluşur.

Örneğin API şemanızda şu alanlar varsa:

{
  "id": 1,
  "email": "user@example.com",
  "created_at": "2024-01-01T10:00:00Z",
  "avatar": "https://example.com/avatar.png"
}
Enter fullscreen mode Exit fullscreen mode

Apidog alan adlarına göre gerçekçi veri döndürür:

  • email alanı e-posta benzeri değer üretir.
  • created_at tarih/zaman üretir.
  • avatar görsel URL’si döndürür.

Bu özellik Akıllı Sahte Sunucu yaklaşımıdır.

Daha karmaşık senaryolarda Gelişmiş Sahte Sunucu kullanılabilir. Böylece aynı endpoint, isteğe göre farklı yanıtlar döndürebilir:

GET /users/1  -> 200 OK
GET /users/0  -> 404 Not Found
POST /users   -> 422 Validation Error
Enter fullscreen mode Exit fullscreen mode

Apidog mock sunucuları paylaşılabilir URL ile bulutta çalışabilir. Yerel hız veya izole test gerektiğinde yerel mock da kullanılabilir.

Apidog’un avantajı, mock sunucunun API tasarımı, hata ayıklama ve API sözleşme testi ile aynı projede bulunmasıdır. Böylece API spesifikasyonu değiştiğinde mock’un ayrı bir yerde eski kalma riski azalır.

En uygun olduğu yer: Gerçek API tasarımına bağlı, düşük kurulumlu ve test akışıyla entegre mock isteyen ekipler.

Mockoon

Mockoon, hızlı yerel mock geliştirme için kullanılan ücretsiz ve açık kaynaklı bir masaüstü uygulamasıdır.

Tipik kullanım akışı şöyledir:

  1. Mockoon’u açın.
  2. Yeni bir environment oluşturun.
  3. Endpoint tanımlayın.
  4. Yanıt gövdesini yazın.
  5. Sunucuyu yerel portta çalıştırın.

Örnek endpoint:

GET http://localhost:3000/users
Enter fullscreen mode Exit fullscreen mode

Örnek yanıt:

[
  {
    "id": 1,
    "name": "Ayşe Yılmaz",
    "email": "ayse@example.com"
  }
]
Enter fullscreen mode Exit fullscreen mode

Mockoon, Faker.js ile dinamik veri üretimini destekler. Ayrıca header veya query parametrelerine göre kural tabanlı yanıtlar tanımlayabilirsiniz.

Örneğin:

GET /users?status=active   -> aktif kullanıcılar
GET /users?status=blocked  -> engellenmiş kullanıcılar
Enter fullscreen mode Exit fullscreen mode

Yanıt gecikmesi ekleyerek yavaş ağ koşullarını da simüle edebilirsiniz.

Mockoon varsayılan olarak yerel çalışır. CLI ve Docker imajı sayesinde aynı mock’u CI ortamında veya kendi sunucunuzda çalıştırabilirsiniz. Ancak birinci taraf, hazır genel bulut URL’si sunmaz.

En uygun olduğu yer: Hesap açmadan, çevrimdışı çalışabilen hızlı bir yerel mock isteyen geliştiriciler.

WireMock

WireMock, özellikle hassas istek eşleştirme gereken senaryolar için güçlü bir mocklama aracıdır. JVM ekosisteminde güçlü köklere sahip olsa da bağımsız süreç olarak çalışabilir ve Java dışı projelerde de kullanılabilir.

WireMock ile şu kriterlere göre eşleştirme yapabilirsiniz:

  • URL pattern
  • HTTP method
  • Header
  • Cookie
  • Query parametreleri
  • JSON body içeriği

Örnek stub mantığı:

{
  "request": {
    "method": "GET",
    "url": "/users/123"
  },
  "response": {
    "status": 200,
    "jsonBody": {
      "id": 123,
      "name": "Mehmet"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

WireMock ayrıca şunları destekler:

  • Yanıt şablonlama
  • Hata enjeksiyonu
  • Proxy kullanımı
  • Record/replay
  • Container tabanlı çalışma
  • WireMock Cloud ile barındırılan URL

Buna karşılık kurulum maliyeti daha yüksektir. Stub’lar genellikle JSON dosyaları veya kod ile tanımlanır. Bu nedenle hızlı demo mock’larından çok, sürüm kontrolünde tutulan ciddi test altyapıları için uygundur.

Bu yaklaşım, CI/CD’de API testlerini otomatikleştirme süreçleriyle iyi eşleşir.

En uygun olduğu yer: Hassas request matching ve sürüm kontrollü mock isteyen mühendislik ekipleri.

Beeceptor

Beeceptor, genel bir mock URL’ye en hızlı şekilde ulaşmak için kullanılan bulut öncelikli bir araçtır.

Temel akış:

  1. Tarayıcıda endpoint adı seçin.
  2. Beeceptor size genel bir URL verir.
  3. Mock kurallarını web arayüzünden tanımlayın.
  4. Gelen istekleri UI üzerinden inceleyin.

Örnek kullanım:

https://your-endpoint.free.beeceptor.com/users
Enter fullscreen mode Exit fullscreen mode

Beeceptor şu senaryolarda pratiktir:

  • Hızlı demo hazırlama
  • Webhook yakalama
  • Üçüncü taraf callback testleri
  • Backend hazır olmadan frontend test etme
  • Belirli path’leri mock edip diğerlerini gerçek backend’e proxy etme

Ancak Beeceptor tamamen barındırılan bir araç olduğu için çevrimdışı geliştirme veya izole CI testleri için daha az uygundur. Ücretsiz katmanda istek hacmi ve kural sayısı sınırlıdır.

En uygun olduğu yer: Kurulum yapmadan hızlı genel mock URL, demo ve webhook yakalama isteyen ekipler.

Postman

Postman, kaydedilmiş bir koleksiyondan mock sunucu oluşturabilir. Her request için örnek response tanımlarsınız, koleksiyonu mock olarak yayınlarsınız ve Postman genel bir URL sağlar.

Tipik akış:

  1. Collection oluşturun.
  2. Request ekleyin.
  3. Her request için example response tanımlayın.
  4. Collection’dan mock server oluşturun.
  5. Postman’ın verdiği URL’yi uygulamanızda kullanın.

Postman mock sunucusu, gelen isteğe en uygun örnek yanıtı döndürür.

Bu yaklaşım özellikle zaten Postman koleksiyonlarıyla çalışan ekipler için pratiktir. Ancak kurulum Apidog’a göre daha manueldir:

  • Her örnek yanıtı kendiniz tanımlarsınız.
  • Koşullu mantık daha sınırlıdır.
  • Dinamik değerler Postman değişkenleriyle mümkündür ancak manuel bağlantı gerekir.

Postman alternatiflerini değerlendiren ekipler genellikle API testi için Postman alternatiflerini de inceler.

En uygun olduğu yer: Zaten Postman koleksiyonları kullanan ve hızlı bir barındırılan mock isteyen ekipler.

Yan yana karşılaştırma

Araç Barındırma Otomatik oluşturulan veri Koşullu yanıtlar Kurulum çabası Ücretsiz katman
Apidog Bulut + yerel Evet, alan adlarından Evet, Gelişmiş Mock Çok düşük Cömert
Mockoon Yerel + kendi kendine barındırma Evet, Faker.js Evet, kural tabanlı Düşük Tamamen ücretsiz
WireMock Yerel, container, ücretli bulut Şablonlu Evet, derin eşleşme Yüksek Açık kaynak çekirdeği
Beeceptor Sadece bulut Sınırlı şablonlama Evet, mock kuralları Çok düşük Sınırlı hacim
Postman Bulut Manuel, değişkenler aracılığıyla Sınırlı Orta Sınırlı çağrı

Nasıl seçilir?

Önce mock sunucunun nerede çalışması gerektiğine karar verin.

Genel URL gerekiyorsa

Şu durumlarda bulut mock daha uygundur:

  • Mobil uygulama test ediyorsunuz.
  • Uzaktaki ekip arkadaşınız mock’a erişmeli.
  • Müşteri demosu yapacaksınız.
  • Webhook veya callback test ediyorsunuz.

Bu durumda şu araçlara bakın:

  • Apidog
  • Beeceptor
  • Postman

Yerel veya CI mock yeterliyse

Şu durumlarda yerel mock daha uygundur:

  • Frontend geliştirmeyi lokal yürütüyorsunuz.
  • Testleri izole tutmak istiyorsunuz.
  • Çevrimdışı çalışmanız gerekiyor.
  • Mock’ları Docker veya CI içinde çalıştırmak istiyorsunuz.

Bu durumda şu araçlar öne çıkar:

  • Mockoon
  • WireMock

Kurulum hızı mı, kontrol mü?

Araç seçerken ikinci karar noktası kurulum hızı ve kontrol seviyesidir.

En hızlı genel URL        -> Beeceptor
Tasarım odaklı otomatik mock -> Apidog
Yerel GUI ile hızlı mock  -> Mockoon
Kodla yönetilen güçlü mock -> WireMock
Mevcut koleksiyonlardan mock -> Postman
Enter fullscreen mode Exit fullscreen mode

Beeceptor ve Apidog sizi dakikalar içinde çalışan bir mock’a ulaştırır. WireMock daha fazla başlangıç eforu ister ancak hassas eşleştirme ve sürüm kontrollü stub’lar sunar. Mockoon, kullanıcı dostu GUI ile pratik bir orta yol sağlar.

Mock’un API tasarımına bağlı kalması neden önemli?

Bağımsız mock sunucular hızlı stub üretmek için kullanışlıdır. Ancak API tasarımı sık değişiyorsa, mock sunucu spesifikasyondan kopabilir.

Örneğin API sözleşmesi şöyle değişirse:

{
  "id": 1,
- "name": "Ayşe"
+ "full_name": "Ayşe Yılmaz"
}
Enter fullscreen mode Exit fullscreen mode

Mock hâlâ eski name alanını döndürüyorsa frontend testleriniz yanıltıcı olabilir.

Apidog, mock sunucuyu canlı API tasarımından üretir. Böylece sözleşme değişiklikleri mock tarafına da yansır. Ayrıca gerçekçi veri üretimi sayesinde her response payload’unu elle yazma ihtiyacı azalır.

Tasarım, mock ve test akışını birlikte denemek için Apidog’u İndirin. Daha geniş bir araç listesi için REST API mocklama araçları rehberine, test tarafı için ise ücretsiz çevrimiçi API test araçlarına bakabilirsiniz.

Hızlı seçim rehberi

Aşağıdaki senaryolardan size en yakın olanı seçin:

  • Bir dakikadan kısa sürede genel URL istiyorum: Beeceptor
  • Hesap gerektirmeyen ücretsiz yerel mock istiyorum: Mockoon
  • Hassas request matching ve sürüm kontrollü stub istiyorum: WireMock
  • Ekibim zaten Postman koleksiyonları kullanıyor: Postman
  • API tasarımından otomatik mock, gerçekçi veri ve test akışı istiyorum: Apidog

Mock veri kalitesi hakkında bir not

Mock sunucunun döndürdüğü veri, aracın pratik değerini belirler.

Şu tarz bir response teknik olarak mock’tur:

{
  "name": "string",
  "id": 0
}
Enter fullscreen mode Exit fullscreen mode

Ancak gerçek istemci davranışını test etmek için çoğu zaman yeterli değildir. Daha faydalı bir mock şu şekilde görünmelidir:

{
  "id": 42,
  "name": "Zeynep Kaya",
  "email": "zeynep.kaya@example.com",
  "created_at": "2024-05-20T12:30:00Z"
}
Enter fullscreen mode Exit fullscreen mode

Araçların yaklaşımı farklıdır:

  • Apidog: Alan adlarından anlam çıkararak veri üretir.
  • Mockoon: Faker.js şablonlarıyla gerçekçi veri üretir.
  • WireMock: Yanıt şablonlama sağlar ancak yapılandırma gerekir.
  • Postman: Değişkenler kullanılabilir ancak manuel bağlantı gerekir.
  • Beeceptor: Sınırlı şablonlama sunar.

Bir aracı değerlendirirken sadece mock’un çalışıp çalışmadığına bakmayın. Bir request gönderin ve response body’yi inceleyin. Veri gerçekçi değilse, bu mock’a karşı yazılan testlerin değeri de sınırlı olur.

Sıkça sorulan sorular

Bulut ve yerel API mock’u arasındaki fark nedir?

Bulut mock’u sağlayıcının sunucularında çalışır ve genel bir URL sağlar. Mobil testler, uzaktan ekip çalışması ve demolar için uygundur.

Yerel mock kendi makinenizde, Docker container’da veya CI runner’da çalışır. Daha hızlıdır, çevrimdışı kullanılabilir ve testleri izole tutar.

Hangi mocklama aracı en az kurulum gerektirir?

Beeceptor ve Apidog en hızlı seçeneklerdir.

Beeceptor, endpoint adı seçtiğiniz anda genel bir URL verir. Apidog ise API tasarımınızdan ayrı bir mock sunucu yapılandırması yapmadan otomatik mock üretir.

WireMock sadece Java projeleri için mi?

Hayır. WireMock JVM kökenli olsa da bağımsız süreç olarak çalışabilir, Docker imajı sunar ve HTTP API üzerinden kullanılabilir. Stub’lar JSON formatında tanımlanabildiği için farklı dillerle çalışan ekipler için de uygundur.

Bu araçlar gerçekçi verileri otomatik olarak oluşturabilir mi?

Apidog ve Mockoon bu konuda öne çıkar.

Apidog, email, phone, created_at gibi alan adlarından veri üretir. Mockoon ise Faker.js şablonlamasını kullanır. WireMock yanıt şablonlama destekler. Postman tarafında değişkenler kullanılabilir ancak manuel tanımlama gerekir.

Ekibim zaten Postman kullanıyorsa Postman’ın mock sunucusunu kullanmalı mıyım?

Kullanabilirsiniz. Mock’un mevcut koleksiyonlarınızın yanında durması pratiktir.

Ancak response example’ları manuel tanımlanır ve koşullu mantık sınırlıdır. Otomatik veri üretimi, kural tabanlı yanıtlar veya API tasarımına bağlı mock istiyorsanız özel bir mocklama aracı daha verimli olabilir.

Top comments (0)