Feb 242013
 

Daha önce SoapUI’ dan kısaca bahsetmiş ve hali hazırda var olan bir web servisinin bir istemci uygulaması geliştirmeye gerek kalmaksızın nasıl test edilebileceğini anlatmıştım. Şimdi de tam tersine, hali hazırda geliştirilmiş bir SAOP web servisi istemcisini, gerçek sunucuya erişim olmaksızın nasıl test edebileceğimizden bahsedeceğim. Çünkü bazen, gerçek sunucuya erişime hemen sahip olmayabilir ya da uygulamanızı çeşitli veriler ile test etmek isteyebilir ancak gerçek sunucuya erişiminiz olsa da her durumu test etmeye çalışmanız, sunucu servisi sağlayanlar tarafından hoş karşılanmıyor olabilir.

Test sunucusunu oluşturmak için önce yeni bir proje oluşturmamız gerek:
soapui-newproject-server

Ancak bu sefer test sunucusu da oluşturacağımız için “Create MockService: Creates a Web Service Simulation of the imported WSDL” seçeneğini de işaretlememiz gerekiyor. OK’ ye tıkladığımızda test sunucusunun detaylarını soran aşağıdaki gibi bir pencere ile karşılaşacaksınız:
soapui-testserver-details

“Operations” listesinde, web servisinin WSDL’ inde detaylanmış tüm metodları göreceksiniz. Benim kullandığım test WSDL’ inde sadece bir tane (GetQuote) metod var. Penceredeki “Path” kısmına test servisinin adresini, “Port” kısmına da kullanmak istediğiniz port numarasını yazabilirsiniz. Hali hazırda girilmiş değerleri de değiştirmeden kullanabilirsiniz. Örneğin, ekran görüntüsündeki test servisinin bilgilerini değiştirmediğim için servisin tam adresi http://localhost:8088/mockStockQuoteSoap ya da kullandığım bilgisayarın ağdaki adı “Antares” olduğu için adres http://Antares.local:8088/mockStockQuoteSoap olacak.

OK’ ye tıklayıp devam ettiğimizde SoapUI oluşturacağı test sunucusuna bir isim vermemizi isteyecek:
soapui-testserver-name

OK düğmesine tıklayıp devam edince, sol taraftaki “Projects” kısmında yeni test projemiz ile içindeki istemci ve sunucuyu göreceğiz. Eğer istemci ve sunucuları genişletirsek, hem servisteki metodlar için oluşturulmuş talepleri (request) hem de cevapları (response) göreceğiz:
SoapUI Project Tree

Şimdi “TestServer” sunucusuna çift tıklayalım. Sağ tarafta aşağıdaki gibi sunucu uygulamasının detaylarını göreceksiniz:
SoapUI Server

Eğer sunucu penceresinin sol üst köşesindeki soapui-submit düğmesine tıklarsak, sunucu servisi çalışmaya başlayacaktır. Ancak, sunucuyu çalıştırmadan önce, sunucudaki her metod için istemci uygulamasına gönderilecek cevapları hazırlamamız gerekiyor. Bunun için “Operations” listesinden istediğimiz metodu seçiyoruz (benim durumumda “GetQuote”):
SoapUI Operation MockResponses

Karşımıza yeni açılan pencerede metodumuz (GetQuote) için hazırlanmış test cevaplarını (Mock Responses) görüyoruz. Şu anda karşımızda sadece bir tane test cevabı var: Response 1. Ona çift tıklayınca aşağıdaki gibi bir cevap editörü açılıyor. Burada sunucunun GetQuote metoduna bir talep gönderildiğinde istemciye göndereceği cevabı dilediğimiz gibi düzenleyebiliriz:
SoapUI - Mock Response

Cevabı hazırladıktan sonra test sunucusunu çalıştıralım:
SoapUI - Test server is running

Sunucunun çalışıp çalışmadığını web tarayıcısıyla da görebiliriz:
SoapUI - Test server - Browser request

http://localhost:8088 adresine eriştiğimizde, test sunucusu, bu adreste hangi web servislerinin çalıştığını listeledi. “TestServer” servisine tıkladığımızdaysa, test servisinin WSDL’ i görüntülenecek:
SoapUI - Test service WSDL

Şimdi sunucuyu istemci uygulamanız ile test edebilirsiniz.

Ben şu anda bir istemci uygulaması yazmadığım için yine SoapUI kullanarak test edeceğim:
Test Request

Gördüğünüz gibi, test sunucusu daha önce tanımladığımız test cevabını verdi.

Peki farklı taleplere göre nasıl test cevabı hazırlayabiliriz? Bunun için öncelikle yeni bir test cevabı oluşturmamız lazım. Sol taraftaki proje listesinden, yeni test cevabı oluşturmak istediğiniz metoda sağ tıklayıp “New MockResponse” seçeneğini seçin:
New MockResponse

Yeni bir diyalog kutusu açılacak ve test cevabı için bir isim vermemiz istenecek:
response with error

OK’ ye tıkladıktan sonra karşımıza cevap editörü çıkacak:
Test response 2

Dilediğimiz cevabı yazdıktan sonra, bu cevabın gönderileceği talebi oluşturmamız gerekiyor. Bunun için cevap penceresinin sol üst köşesindeki soap-request-button düğmesine tıklıyoruz:
soap request button

SoapUI, yeni test cevabımız için hangi talebin gönderilmesi gerektiğini soracak. Dilersek hali hazırda var olan talep örneklerinden birini seçebilir ya da yeni oluşturabiliriz. Yeni oluşturmak için listeden “-> Create New” seçeneğini seçiyoruz:
Create new request

Daha sonra yeni talep için bir isim yaıp OK’ ye tıklıyoruz:
Request for error

Karşımıza yeni talep editörü çıkacak. Daha önce oluşturduğumuz test cevabını göndermek için ne tür bir talep gönderilmesi gerektiğini yazıyoruz:
Test request for error

Şimdi test sunucusunu çalıştırıp, yeni oluşturduğumuz test cevabını alabilmek için talepte bulunabiliriz:
20

Şimdilik bu kadar. Bir sonraki SoapUI yazımda web servisi yük testi konusuna değineceğim.

  2 Responses to “SoapUI ile SOAP Web Servislerini Test Etmek – 2”

  1. Yük testini anlatacak mısınız?

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)