DEV Community

Cover image for SoapUI Mock Servis: Kurulum Rehberi ve Modern Alternatif
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

SoapUI Mock Servis: Kurulum Rehberi ve Modern Alternatif

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'u bugün deneyin

💡 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ış:

  1. Yapılandırdığınız yerel bir portu dinler (örn. http://localhost:8088/MockService)
  2. İstekleri yakalar
  3. Dağıtım mantığı ile doğru sahte yanıtı eşleştirir
  4. İ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

  1. SoapUI projesinde bir SOAP arayüzüne sağ tıklayın.
  2. “Generate MockService” seçin.
  3. Açılan pencerede:
    • Hizmet adı (örn. “OrderService Mock”)
    • Port numarası (varsayılan: 8088; gerekirse değiştirin)
    • Yol (örn. /orders)
  4. Tamam'a tıklayın. Proje ağacında bir MockService düğümü oluşur.
  5. MockService altında her SOAP işlemi için bir “MockOperation” göreceksiniz.
  6. Bir MockOperation'a çift tıklayın ve SOAP yanıt XML'ini düzenleyin.
  7. 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

  1. Proje ağacında bir REST arayüzüne/ kaynağına sağ tıklayın.
  2. “Add to MockService” veya “Generate MockService” seçin.
  3. Port ve yolu ayarlayın.
  4. Her kaynak/metot için sahte yanıt gövdesi ve durum kodunu girin.
  5. 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"
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode
  • 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}
Enter fullscreen mode Exit fullscreen mode

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:

  • orderId UUID ise rastgele UUID üretir
  • amount 0-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.

Top comments (0)