TL;DR
SoapUI sahte hizmetleri, SOAP veya REST uç noktalarını yerel olarak simüle eder ancak çalışan bir Java süreci, manuel dağıtım yapılandırması gerektirir ve paylaşılan bir makine olmadan bir ekip arasında paylaşılamaz. Apidog'un Akıllı Sahtesi (Smart Mock), API şemanızdan sahte yanıtlar üretir, bulutta çalışır ve ekibinizle otomatik olarak paylaşılır.
💡 Apidog, yerel bir Java süreci çalıştırmadan API tanımlarınızdan anında sahte uç noktalar oluşturan yerleşik Akıllı Sahte (Smart Mock) özelliğine sahip ücretsiz, hepsi bir arada bir API geliştirme platformudur. Apidog'u ücretsiz deneyin, kredi kartı gerekmez.
Giriş
Sahte hizmetler (mock services), API geliştirmede yaygın bir sorunu çözer: istemci kodunuzun bir hizmeti, hizmet hazır olmadan önce nasıl işlediğini test etmek veya hata/ yavaş yanıt gibi uç durumları gerçek sistem üzerinde tetiklemeden simüle etmek için kullanılır.
SoapUI'nin sahte hizmet özelliği, yapılandırdığınız kurallara göre isteklere yanıt veren yerel bir HTTP sunucusu çalıştırır. Ancak bu süreç, SoapUI kapandığında sonlanır, ekip üyeleri ağ yapılandırması olmadan erişemez ve arayüzü hantaldır.
Bu rehberde, SoapUI sahte hizmetlerinin nasıl çalıştığı, adım adım kurulumu, karşılaşılan yaygın sorunlar ve Apidog'un bunlara nasıl alternatif sunduğu pratik olarak anlatılmaktadır.
SoapUI Sahte Hizmetleri Nasıl Çalışır?
SoapUI, mevcut SOAP veya REST arayüzlerinizden sahte hizmetler oluşturur. Temel akış:
- Yapılandırdığınız yerel bir portu dinler (örn.
http://localhost:8088/MockService) - İstekleri yakalar
- Dağıtım mantığı ile doğru sahte yanıtı eşleştirir
- İlgili yanıtı döndürür
SOAP için, WSDL'den otomatik olarak taslak yanıtlar oluşturulabilir. Gerçek hizmet yoksa veya uç noktaya erişiminiz yoksa hızlıca simülasyon yapabilirsiniz.
SoapUI Sahte Hizmeti Kurulumu (Adım Adım)
Bir SOAP Arayüzü İçin
- SoapUI projesinde bir SOAP arayüzüne sağ tıklayın.
- “Generate MockService” seçin.
- Açılan pencerede:
- Hizmet adı (örn. “OrderService Mock”)
- Port numarası (varsayılan: 8088; gerekirse değiştirin)
- Yol (örn.
/orders)
- Tamam'a tıklayın. Proje ağacında bir MockService düğümü oluşur.
- MockService altında her SOAP işlemi için bir “MockOperation” göreceksiniz.
- Bir MockOperation'a çift tıklayın ve SOAP yanıt XML'ini düzenleyin.
- MockService düzenleyicisinde yeşil oynatma düğmesine tıklayarak yerel sunucuyu başlatın.
Artık sahte hizmetiniz http://localhost:8088/orders adresinde çalışıyor. İstemci uygulamanızı bu URL'ye yönlendirin.
Bir REST Arayüzü İçin
- Proje ağacında bir REST arayüzüne/ kaynağına sağ tıklayın.
- “Add to MockService” veya “Generate MockService” seçin.
- Port ve yolu ayarlayın.
- Her kaynak/metot için sahte yanıt gövdesi ve durum kodunu girin.
- Sahte hizmeti başlatın.
Dağıtım Yapılandırması
Varsayılan olarak ilk sahte yanıt döner. Farklı yanıtlar için dağıtım betiği (Groovy) veya “SEQUENCE” tipi dağıtım kullanın.
Sıralı Dağıtım: Yanıtlar sırayla döner (ilk çağrı yanıt A, ikincisi B, ...).
Betik Dağıtım: Gelen isteği analiz eden bir Groovy betiğiyle yanıt seçim mantığı yazın.
Örnek:
def request = mockRequest.getRequestContent()
if (request.contains("orderId>12345")) {
return "OrderFoundResponse"
} else {
return "OrderNotFoundResponse"
}
Birden fazla yanıt tanımlayarak, gelen istek içeriğine göre dönecek yanıtı programlayabilirsiniz.
Yaygın SoapUI Sahte Hizmet Sorunları
1. SoapUI Kapandığında Sahte Hizmet Durur
Sahte hizmet SoapUI JVM sürecinin parçasıdır. SoapUI kapanınca hizmet erişilemez olur.
Çözüm yolları:
- SoapUI’yi özel/vm bir makinede daima açık tutun.
- Komut satırı ile başlatın:
mockservicerunner.sh -p 8088 -s "OrderService Mock" project.xml
- Kalıcı paylaşılan bir sunucu kullanın.
Her durumda Java ve SoapUI kurulumu gereklidir.
2. Sahte Hizmeti Ekipte Paylaşmak
localhost:8088 yalnızca o makineden erişilebilir. Ekip için:
- Ağ erişimi (firewall, VPN) ayarlanmalı
- Hizmet ortak sunucuya taşınmalı
Kurulum ve erişim karmaşıklaşır.
3. Karmaşık XML ile Dağıtım Betikleri
Groovy betikleri genellikle ham XML'de string araması yapar. Farklı ad alanı önekleri, betiklerin bozulmasına yol açar.
Çözüm: GroovyUtils ile XML parsing kullanmak gerekir; bu da betik karmaşıklığını artırır.
4. Durum Kalıcılığı Yok
Varsayılan sahte hizmetler durumsuzdur. POST ile oluştur, ardından GET ile oku gibi senaryolar için Groovy ile paylaşılan değişkenler gerekir, bu da kırılganlık yaratır.
5. SSL Kurulumu Zorluğu
HTTPS için SoapUI'da anahtar deposu oluşturmak, SSL ayarları yapmak ve istemcileri bu sertifikaya yönlendirmek gerekir. Sadece HTTP'ye kıyasla çok daha karmaşıktır.
Apidog Akıllı Sahtesi: Karşılaştırma
Apidog, API tasarımınızdan yola çıkarak, bulutta otomatik sahte uç noktalar oluşturur; herhangi bir süreç başlatmaya gerek yoktur.
Örneğin:
https://{proje-adınız}.mock.apidog.io/orders/{id}
Bu URL:
- Her zaman aktiftir (süreç başlatmaya gerek yok)
- Ekibinizdeki herkes tarafından erişilebilir
- API şemanıza göre yanıt üretir
Apidog Sahte Yanıtlar Nasıl Oluşturulur?
Yanıt şemanıza bakarak:
-
orderIdUUID ise rastgele UUID üretir -
amount0-10000 arasında ise bu aralıkta sayı döndürür
Özel kurallar da eklenebilir. (örn. orderId her zaman "test-123" olabilir.)
Apidog'da SOAP Uç Noktaları
Apidog'un Akıllı Sahte hizmeti REST/JSON ağırlıklıdır. SOAP için:
- Bir istek oluşturun
- Yanıt olarak SOAP zarfı içeren özel bir yanıt tanımlayın
Otomatik WSDL işleme yoktur, ancak temel SOAP mock işlemleri hızlıca yapılabilir.
Durumlu Sahte Hizmet (Stateful Mocking)
Apidog, JavaScript ile özel yanıt betikleri yazmayı destekler. İstek gövdesini inceleyerek farklı koşullara göre farklı yanıtlar döndürebilirsiniz (SoapUI’deki Groovy betiklere benzer, fakat daha modern ve hızlı).
Yan Yana Karşılaştırma
| Özellik | SoapUI Sahte Hizmeti | Apidog Akıllı Sahte Hizmeti |
|---|---|---|
| Java Gerektirir | Evet | Hayır |
| Her Zaman Açık | Sadece komut satırı ile | Evet (bulut) |
| Ekip Erişimi | Manuel ağ kurulumu | Evet, paylaşılan URL ile |
| WSDL Otomatik Oluşturma | Evet | Hayır |
| REST Şema Tabanlı | Hayır | Evet |
| Dinamik Yanıtlar | Groovy dağıtım | JavaScript sahte betikler |
| HTTPS Desteği | Manuel anahtar deposu kurulumu | Yerleşik |
| Durumlu Sahte Hizmet | Groovy değişkenleri aracılığıyla | JavaScript betikleri aracılığıyla |
| Ücretsiz | Evet | Evet |
Ne Zaman Hangisini Kullanmalı?
SoapUI kullanın:
- WSDL tabanlı bir SOAP hizmetini otomatik taslak yanıtlarla taklit etmek istiyorsanız
- Ekip çevrimdışı veya sıkı ağ kısıtlamalarıyla çalışıyorsa
- Mevcut SoapUI ekosistemini terk etmek istemiyorsanız
Apidog Akıllı Sahte Hizmeti kullanın:
- REST uç noktalarını taklit etmek ve ekip içinde paylaşmak istiyorsanız
- Sürekli çalışan, elle müdahale gerektirmeyen sahte sunucular istiyorsanız
- API sözleşmesini uygulamadan önce tanımlamak istiyorsanız
- Java ortamı kurmakla uğraşmak istemiyorsanız
SSS
SoapUI sahte hizmetlerini başsız (GUI olmadan) çalıştırabilir miyim?
Evet. Komut satırı araçları ile (mockservicerunner.sh/.bat) SoapUI GUI olmadan mock servisleri başlatabilirsiniz. Java yüklü olmalıdır.
Apidog SOAP sahte hizmetlerini destekliyor mu?
Kısmi destek var. SOAP XML ile özel yanıtlar oluşturabilirsiniz; otomatik WSDL işleme yoktur.
SoapUI sahte hizmetlerinde yavaş yanıt simüle edebilir miyim?
Evet. Yanıt yapılandırmasında “Delay” (gecikme) ayarlayabilirsiniz. Apidog da benzer şekilde yanıt gecikmesi ayarını destekler.
Apidog kaç sahte isteği işleyebilir?
Bulut sahte sunucusu tipik geliştirme ve test yüklerini rahatça işler. Yüksek hacimli performans testi için daha özel çözümler kullanabilirsiniz.
İki ekip üyesi aynı uç nokta için farklı yanıtlar isterse ne olur?
SoapUI’de her biri kendi sahte hizmetini çalıştırabilir. Apidog’da çoklu ortamlar oluşturarak veya “Mock expects” ile farklı istek/yanıt eşleştirmeleri yapabilirsiniz.
Apidog'un sahte hizmetleri için tam API şeması zorunlu mu?
Yanıt şeması, Apidog’un gerçekçi veri üretmesini sağlar, ancak şemasız elle özel yanıtlar da tanımlayabilirsiniz. Uç noktayı ekleyip, yanıt gövdesi girmeniz yeterli.
SoapUI’nin sahte hizmetleri işlevsel ancak yerel sürece bağımlı. Modern, paylaşımlı ekipler için Apidog’un bulut tabanlı yaklaşımı entegrasyonu ve erişimi kolaylaştırır.







