SoapUI - Hızlı Kılavuz

SOAP, Basit Nesne Erişim Protokolünün kısaltmasıdır. World Wide Web Consortium (W3C) tarafından şu adreste tanımlanmıştır:https://www.w3.org/TR/2000/NOTE-SOAP-20000508 aşağıdaki gibi -

SOAP, merkezi olmayan, dağıtılmış bir ortamda bilgi alışverişi için hafif bir protokoldür. Üç bölümden oluşan XML tabanlı bir protokoldür: bir mesajda ne olduğunu ve onu nasıl işleyeceğini açıklamak için bir çerçeve tanımlayan bir zarf; uygulama tanımlı veri türlerinin örneklerini ifade etmek için bir dizi kodlama kuralı; ve uzak prosedür çağrılarını ve yanıtlarını temsil etmek için bir kongre.

SABUN - Önemli Özellikler

SABUNUN bazı önemli özellikleri aşağıdadır.

  • İnternet üzerinden iletişim kurmak için tasarlanmış bir iletişim protokolüdür.

  • XML mesajlaşması için HTTP'yi genişletebilir.

  • Web servisleri için veri aktarımı sağlar.

  • Tüm belgeleri değiş tokuş edebilir veya uzak bir prosedürü çağırabilir.

  • Bir mesajı yayınlamak için kullanılabilir.

  • Hem platformdan hem de dilden bağımsızdır.

  • Hangi bilgilerin nasıl gönderileceğini tanımlamanın XML yoludur.

  • İstemci uygulamalarının uzak hizmetlere kolayca bağlanmasını ve uzak yöntemleri çalıştırmasını sağlar.

SOAP, çeşitli mesajlaşma sistemlerinde kullanılabilmesine ve çeşitli taşıma protokolleri aracılığıyla iletilebilmesine rağmen, SOAP'ın ilk odak noktası, HTTP aracılığıyla taşınan uzak prosedür çağrılarıdır. CORBA, DCOM ve Java RMI gibi diğer çerçeveler SOAP'a benzer işlevsellik sağlar, ancak SOAP mesajları tamamen XML'de yazılır ve bu nedenle benzersiz bir şekilde platformdan ve dilden bağımsızdır.

SOAP mesajı, aşağıdaki öğeleri içeren sıradan bir XML belgesidir -

  • Envelope- Mesajın başlangıcını ve sonunu tanımlar. Zorunlu bir unsurdur.

  • Header- Bir ara noktada veya nihai bitiş noktasında, mesajın işlenmesinde kullanılan mesajın isteğe bağlı özelliklerini içerir. İsteğe bağlı bir unsurdur.

  • Body- Gönderilen mesajı içeren XML verilerini içerir. Zorunlu bir unsurdur.

  • Fault - İletiyi işlerken oluşan hatalar hakkında bilgi sağlayan isteğe bağlı bir Hata öğesi.

Tüm bu öğeler SOAP zarfı için varsayılan ad alanında bildirilir -

https://www.w3.org/2001/12/soap-envelope

SOAP kodlaması ve veri türleri için varsayılan ad alanı -

https://www.w3.org/2001/12/soap-encoding

Note- Tüm bu özellikler değişebilir. Bu nedenle, W3 web sitesinde bulunan en son teknik özelliklerle kendinizi güncellemeye devam edin.

SOAP - Mesaj Yapısı

Aşağıdaki blok, bir SOAP mesajının genel yapısını tasvir etmektedir -

<?xml version = "1.0"?> 
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope" 
SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">  
   <SOAP-ENV:Header> 
      ... 
      ... 
   </SOAP-ENV:Header>  
   <SOAP-ENV:Body> 
      ... 
      ... 
      <SOAP-ENV:Fault> 
         ... 
         ... 
      </SOAP-ENV:Fault>  
   </SOAP-ENV:Body>  
</SOAP_ENV:Envelope>

REST, Temsili Devlet Transferi'nin kısaltmasıdır. Yazılım tasarlamanın mimari tarzı olarak tanımlanabilir. REST, bir spesifikasyon veya W3C standardı değildir. Dolayısıyla, RESTful Services ile çalışmak daha kolaydır. Herhangi bir ara yazılım spesifikasyon çerçevesi gerektirmez.

REST - Önemli Özellikler

REST'in bazı önemli özellikleri aşağıdadır.

  • Durum bilgisi olmayan, istemci-sunucu, önbelleğe alınabilir iletişim protokolüne dayanır - neredeyse her durumda HTTP kullanılır.

  • SOAP-WSDL gibi WebService ve RPC'nin (Remote Procedure Call) hafif ağırlıklı bir alternatifidir.

  • Her şeyi benzersiz kimlik veya URI'larda temsil eder.

  • GET, POST, PUT, DELETE gibi standart HTTP yöntemlerini kullanır.

  • Kaynakları birbirine bağlar.

  • REST kaynaklarının birden çok temsili olabilir.

  • Herhangi bir adlandırılmış bilgi Kaynak olarak kabul edilir. Örneğin: Bir görüntü, bir kişi, bir belge, hepsi bir kaynak örneği olarak düşünülebilir ve benzersiz bir kimlik veya bir URI olarak temsil edilebilir.

  • HTTP'ye dayalı World Wide Web'in kendisi REST tabanlı mimari olarak görülebilir.

REST hizmetleri Platform ve Dilden bağımsızdır. HTTP standartlarına dayandığından güvenlik duvarları varlığında rahatlıkla çalışabilir. WebServices gibi, REST de herhangi bir dahili güvenlik, oturum yönetimi, QoS garantisi sunmaz, ancak bunlar HTTP üzerine inşa edilerek eklenebilir. Şifreleme için REST, HTTPS'nin üzerinde kullanılabilir.

SoapUI, hem fonksiyonel hem de fonksiyonel olmayan testler için kullanılabilen bir araçtır. Web servislerinin test edilmesinde kullanılan fiili bir araç olmasına rağmen, web servisleriyle sınırlı değildir.

SoapUI - Önemli Özellikler

SoapUI'nin bazı önemli özellikleri aşağıdadır.

  • Hem müşteri hem de hizmet rolünü yerine getirebilir.

  • Kullanıcıların fonksiyonel ve fonksiyonel olmayan testleri tek bir ortam kullanarak hızlı ve verimli bir şekilde oluşturmasını sağlar.

  • GNU Leaser General Public License (LGPL) koşulları altında lisanslanmıştır.

  • Tamamen JAVA platformu kullanılarak gerçekleştirilir.

  • Windows, Mac, çoklu Linux lehçelerini destekler.

  • Test uzmanlarının farklı Web API'sinde otomatikleştirilmiş işlevsel, regresyon, uyumluluk ve yük testleri yürütmesine olanak tanır.

  • Her tür API'yi test etmek için tüm standart protokolleri ve teknolojileri destekler.

SoapUI, eksiksiz RESTful API ve SOAP Web Hizmeti testlerini test etmek için kullanılabilir. Fonksiyonel Test, Performans Testi, Birlikte Çalışabilirlik Testi, Regresyon Testi, Yük Testi ve çok daha fazlasını destekler.

Kullanıcı dostudur ve fonksiyonel testi, Yük, Stres testi gibi fonksiyonel olmayan testlere dönüştürmek kolaydır.

SoapUI aşağıdaki beş yönden zengindir -

  • Fonksiyonel test
  • Güvenlik Testi
  • Yük Testi
  • Protokoller ve Teknolojiler
  • Diğer araçlarla entegrasyon

Bu yeteneklerin her biri hakkında daha fazla bilgi edelim.

Fonksiyonel test

  • SoapUI, test uzmanlarının SoapUI'de işlevsel API testleri yazmasına izin verir.

  • SoapUI, komut dosyası geliştirmeyi hızlandıran Sürükle-Bırak özelliğini destekler.

  • SoapUI, testlerde hata ayıklamayı destekler ve test uzmanlarının veriye dayalı testler geliştirmesine olanak tanır.

  • SoapUI, QA, Dev ve Prod ortamları arasında geçiş yapmayı kolaylaştıran birden fazla ortamı destekler.

  • SoapUI, gelişmiş komut dosyası oluşturmaya olanak tanır (test uzmanı, senaryolara bağlı olarak kendi özel kodunu geliştirebilir).

Güvenlik Testi

  • SoapUI, eksiksiz bir güvenlik açığı taraması gerçekleştirir.

  • SoapUI, veritabanlarının güvenliğini sağlamak için SQL Enjeksiyonunu engeller.

  • SoapUI, büyük boyutlu belgelerin neden olduğu yığın taşmalarını tarar.

  • SoapUI, mesajlarda hizmet parametreleri açığa çıktığında oluşan siteler arası komut dosyası taraması yapar.

  • SoapUI, hizmetlerin düzensiz davranışını önlemek için fuzzing taraması ve sınır taraması gerçekleştirir.

Yük Testi

  • SoapUI, yük testlerini n sayıda LoadUI aracısına dağıtır.

  • SoapUI, yüksek hacimli ve gerçek dünya yük testini kolaylıkla simüle eder.

  • SoapUI, performans parametrelerini yakalamak için gelişmiş özel raporlamaya izin verir.

  • SoapUI, uçtan uca sistem performansının izlenmesine izin verir.

Protokoller ve Teknolojiler

SoapUI çok çeşitli protokolleri destekler -

  • SOAP - Basit Nesne Erişim Protokolü
  • WSDL - Web Hizmeti Tanım Dili
  • REST - Temsili Devlet Transferi
  • HTTP - Hiper Metin İletim Protokolü
  • HTTPS - Güvenli Hiper Metin İletim Protokolü
  • AMF - Eylem Mesajı Formatı
  • JDBC - Java Veritabanı Bağlantısı
  • JMS - Java Mesajlaşma Hizmeti

Diğer Araçlarla Entegrasyon

  • Apache Maven Projesi
  • HUDSON
  • JUnit
  • Apache - Ant ve daha fazlası….

SoapUI, testin temel özelliklerine sahip açık kaynak kodlu bir ücretsiz sürüm aracıdır; SoapUI NG Pro ise gelişmiş raporlama özellikleri, veri odaklı işlevsellik ve çok daha fazlasını içeren ticari bir araçtır.

Karşılaştırma

Aşağıdaki tablo, SoapUI ve SoapUI NG Pro'nun çeşitli özelliklerini karşılaştırır ve karşılaştırır.

Özellikleri SoapUI SoapUI NG Pro
Supported Technologies
SABUN Evet Evet
WSDL / WADL Evet Evet
DİNLENME Evet Evet
JMS Evet Evet
AMF Evet Evet
JDBC Evet Evet
HTTP Evet Evet
General Features
Bağımsız uygulama Evet Evet
Çoklu Ortam Desteği Hayır Evet
Yüzer Lisans Hayır Evet
WSDL Kapsamı Hayır Evet
Talep / Yanıt Kapsamı Hayır Evet
Mesaj Onaylama Evet Evet
Test Yeniden Düzenleme Hayır Evet
Birden çok test çalıştırma Evet Evet
Veri Kaynağına Dayalı Test Hayır Evet
Komut Dosyası Kitaplıkları Hayır Evet
Birim Raporlama Hayır Evet
Manuel test adımları Evet Evet
Reporting
Junit Raporları Hayır Evet
Rapor Verilerini Dışa Aktarma Hayır Evet
WSDL HTML Raporu Evet Evet
Test Paketi Kapsamı Hayır Evet
Test Durumu Kapsamı Hayır Evet
Onay Kapsamı Hayır Evet
Mesaj Kaydı Kapsamı Hayır Evet

SoapUI, platformlar arası bir araçtır. Windows, Linux ve Mac işletim sistemlerini destekler.

Önkoşullar

  • Processor - 1GHz veya üzeri 32-bit veya 64-bit işlemci.

  • RAM - 512MB RAM.

  • Hard Disk Space - Kurulum için minimum 200MB sabit disk alanı.

  • Operating System Version - Windows XP veya üstü, MAC OS 10.4 veya üstü.

  • JAVA - JAVA 6 veya üstü.

İndirme İşlemi

Step 1- www.soapui.org adresine gidin ve SoapUI İndir'i tıklayın.

Step 2- SoapUI Açık Kaynak'ı indirmek için "Al" ı tıklayın. Sistemde 112MB .exe dosyasını indirmeye başlayacaktır. İndirme işlemi tamamlanana kadar bekleyin.

Kurulum süreci

Step 1 - İndirdikten sonra .exe dosyasını “Yönetici olarak çalıştır” olarak çalıştırın.

Windows, aşağıdaki ekran görüntüsünde gösterildiği gibi kurulum işlemini başlatacaktır.

Step 2 - Kurulumun ardından işlem penceresi aşağıdaki ekranı görüntüler, İleri'yi tıklayın.

Step 3 - Lisans sözleşmesini kabul edin ve İleri'ye tıklayın.

Step 4- Kurulum dizinini seçin veya sistem tarafından seçilen varsayılan yol olarak tutun. Sonrakine tıkla.

Step 5- Kurmak istediğiniz bileşenleri seçin. Sonrakine tıkla.

Step 6 - HermesJMS için Lisans Sözleşmesini kabul edin ve İleri'ye tıklayın.

Step 7 - Eğitimleri kaydetmek için hedef dizini seçin ve İleri'yi tıklayın.

Step 8 - Başlangıç ​​menüsü klasör konumunu seçin veya varsayılan konumu olduğu gibi bırakın ve 'İleri'yi tıklayın.

Step 9 - 'Bir masaüstü simgesi oluştur' onay kutusunu etkinleştirin ve 'İleri'yi tıklayın.

Şimdi kurulum başlıyor. Tamamlanması birkaç dakika sürecektir.

Step 10 - Kurulum tamamlandıktan sonra, aşağıdaki sihirbazda Bitir'e tıklayın.

Finish'e tıklandığında SoapUI başlatılır.

  • Menü çubuğu
  • Araç çubuğu
  • Proje Gezinme Çubuğu
  • Çalışma Alanı Özellikleri
  • Günlük Paneli

Yapılandırma Süreci

İlk adım, birden çok proje içerebilen bir çalışma alanı oluşturmaktır.

Step 1 - Dosya → Yeni Çalışma Alanı'na gidin.

Step 2 - Çalışma alanının adını ekleyin ve Tamam'ı tıklayın.

Step 3 - Şimdi, çalışma alanı xml'sinin kaydedileceği yolu seçin.

Step 4 - Yolu seçin ve Kaydet'i tıklayın.

Aşağıdaki ekran görüntüsünde gösterildiği gibi çalışma alanı oluşturulur. Çalışma alanı özellikleri de sergileniyor.

WSDL, Web Hizmetleri Açıklama Dili anlamına gelir. Bir web servisini açıklamak için standart bir formattır. WSDL, Microsoft ve IBM tarafından ortaklaşa geliştirildi. WSDL 'wiz-donuk' olarak telaffuz edilir ve 'WSD-L' olarak yazılır.

WSDL ─ Kısa Bir Tarih

WSDL 1.1, Mart 2001'de XML Protokollerinde W3C XML Etkinliğine yönelik hizmetleri açıklamak için Ariba, IBM ve Microsoft tarafından bir W3C Notu olarak gönderildi.

WSDL 1.1, World Wide Web Consortium (W3C) tarafından onaylanmamıştır, ancak bir öneri (resmi bir standart) olacak ve bu nedenle W3C tarafından onaylanacak olan 2.0 sürümü için bir taslak yayınladı.

WSDL ─ Dikkat Edilecek Noktalar

WSDL, merkezi olmayan ve dağıtılmış bir ortamda bilgi alışverişi için XML tabanlı bir protokoldür. WSDL'nin diğer özelliklerinden bazıları aşağıdaki gibidir -

  • WSDL tanımları, bir web hizmetine nasıl erişileceğini ve hangi işlemleri gerçekleştireceğini açıklar.

  • XML tabanlı hizmetlerle nasıl arabirim kurulacağını açıklayan bir dildir.

  • XML tabanlı dünya çapında bir iş sicili olan Universal Description, Discovery ve Integration'ın (UDDI) ayrılmaz bir parçasıdır.

  • WSDL, UDDI'nin kullandığı dildir.

WSDL Kullanımı

WSDL, İnternet üzerinden web hizmetleri sağlamak için genellikle SOAP ve XML Şeması ile birlikte kullanılır. Bir web hizmetine bağlanan bir istemci programı, sunucuda hangi işlevlerin kullanılabilir olduğunu belirlemek için WSDL'yi okuyabilir. Kullanılan herhangi bir özel veri türü, WSDL dosyasına XML Şeması biçiminde yerleştirilir. İstemci daha sonra WSDL'de listelenen işlevlerden birini gerçekten çağırmak için SOAP kullanabilir.

WSDL'yi Anlamak

WSDL, web hizmetlerini, tanımlandıktan sonra birleştirilebilen veya yeniden kullanılabilen üç özel, tanımlanabilir öğeye ayırır.

Ayrı ayrı tanımlanabilen WSDL'nin üç ana unsuru şunlardır:

  • Types
  • Operations
  • Binding

Bir WSDL belgesinin çeşitli öğeleri vardır, ancak bunlar ayrı belgeler olarak geliştirilebilen bu üç ana öğenin içinde yer alır ve daha sonra tam WSDL dosyaları oluşturmak için birleştirilebilir veya yeniden kullanılabilir.

Bu eğitimde, CurrencyConverter WSDL'yi takip ediyoruz: http://www.webservicex.net

Biçim ve Öğeler

CurrencyConverter WSDL aşağıdaki gibi görünecektir -

WSDL ─ Bağlantı Noktası Türü

<portType> öğesi, eksiksiz bir tek yönlü veya gidiş-dönüş işlemi oluşturmak için birden çok mesaj öğesini birleştirir. Örneğin, bir <portType>, bir isteği ve bir yanıt mesajını tek bir istek / yanıt işleminde birleştirebilir. Bu, en çok SOAP hizmetlerinde kullanılır. Bir portType birden fazla işlemi tanımlayabilir.

Misal

  • PortType öğesi, ConversionRate adlı tek bir işlemi tanımlar.
  • İşlem, tek bir ConversionRateHttpPostIn giriş mesajından oluşur.
  • Çıktı mesajı için işlem ConversionRateHttpPostOut'tur.

Çalışma Şekilleri

WSDL, dört temel çalışma modelini destekler -

Tek Yön

Servis bir mesaj alır. İşlem bu nedenle tek bir giriş elemanına sahiptir. Tek yönlü işlem için dilbilgisi -

<wsdl:definitions .... >  
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

İstek ─ Yanıt

Hizmet bir mesaj alır ve bir yanıt gönderir. Dolayısıyla işlemin bir giriş öğesi ve ardından bir çıkış öğesi vardır. Hataları kapsüllemek için isteğe bağlı bir hata öğesi de belirtilebilir. İstek yanıtlama işleminin dilbilgisi -

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

Talep ─ Yanıt

Hizmet bir mesaj gönderir ve bir yanıt alır. Bu nedenle işlemin bir çıkış öğesi ve ardından bir giriş öğesi vardır. Hataları kapsüllemek için isteğe bağlı bir hata öğesi de belirtilebilir. Talep yanıtlama işleminin dilbilgisi şöyledir:

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken" parameterOrder = "nmtokens"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
         <wsdl:input name = "nmtoken"? message = "qname"/> 
         <wsdl:fault name = "nmtoken" message = "qname"/>* 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

Bildirimler

Servis bir mesaj gönderir. İşlem bu nedenle tek bir çıkış elemanına sahiptir. Bir bildirim işleminin dilbilgisi aşağıdadır -

<wsdl:definitions .... > 
   <wsdl:portType .... > * 
      <wsdl:operation name = "nmtoken"> 
         <wsdl:output name = "nmtoken"? message = "qname"/> 
      </wsdl:operation> 
   </wsdl:portType > 
</wsdl:definitions>

WSDL ─ Bağlama ve Hizmet

<binding>öğesi, bir portType işleminin gerçekte kablo üzerinden nasıl iletileceğine dair belirli ayrıntılar sağlar .

  • Bağlamalar, HTTP GET, HTTP POST veya SOAP dahil olmak üzere birden çok aktarım yoluyla kullanılabilir hale getirilebilir.

  • Bağlamalar, portType işlemlerini aktarmak için hangi protokolün kullanıldığına dair somut bilgiler sağlar.

  • Bağlamalar, hizmetin bulunduğu yerde bilgi sağlar.

  • SOAP protokolü için bağlama <soap: binding> ve aktarım, HTTP protokolünün üstündeki SOAP mesajlarıdır.

  • Tek bir portType için birden çok bağlamayı belirtebilirsiniz.

Hizmet

<service>öğesi, web hizmeti tarafından desteklenen bağlantı noktalarını tanımlar. Desteklenen protokollerin her biri için bir bağlantı noktası öğesi vardır. Hizmet öğesi bir bağlantı noktaları koleksiyonudur.

Web hizmeti istemcileri, hizmet öğesinden aşağıdakileri öğrenebilir -

  • Hizmete nereden erişilir,
  • Web hizmetine hangi bağlantı noktasından erişileceği ve
  • İletişim mesajları nasıl tanımlanır.

Hizmet unsuru, insan tarafından okunabilir dokümantasyon sağlamak için bir dokümantasyon unsuru içerir.

<wsdl:service name = "CurrencyConvertor">
   <wsdl:port name = "CurrencyConvertorSoap" binding = "tns:CurrencyConvertorSoap">
      <soap:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorSoap12"binding = "tns:CurrencyConvertorSoap12>
      <soap12:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:port name = "CurrencyConvertorHttpGet" binding = "tns:CurrencyConvertorHttpGet">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port>
   <wsdl:portname = "CurrencyConvertorHttpPost"binding = "tns:CurrencyConvertorHttpPost">
      <http:address location = "http://www.webservicex.net/CurrencyConvertor.asmx" />
   </wsdl:port> 
</wsdl:service>

SoapUI projesi, tüm SoapUI testlerinin merkezi noktasıdır. Proje oluşturulduktan sonra, kullanıcı işlevsel testler oluşturabilir ve çalıştırabilir, testleri yükleyebilir, sahte hizmetler oluşturabilir ve çok daha fazlasını yapabilir.

Bu bölümde iki şeyi tartışacağız - Nasıl yapılır -

  • SOAP projesi oluşturun
  • WSDL ekleyin

SOAP Projesi Oluşturun

Step 1 - Ekranın sol tarafındaki gezginde, "Proje" ye sağ tıklayın ve "Yeni SABUN Projesi" ni seçin.

Veya Dosya'ya gidin ve Yeni Sabun Projesi'ni seçin.

Seçim üzerine, yeni bir açılır pencere açılır - Yeni Sabun Projesi.

Step 2 - Project Name: Bir proje adı girin - bu kullanıcı giriş alanıdır. Initial WSDL: Zorunlu değildir. Kullanıcıya bağlıdır. Kullanıcı WSDL sağlayabilir veya Proje oluşturulduktan sonra ekleme yapabilir.

Bu durumda, bir proje oluşturuyoruz ve WSDL'yi daha sonra ekliyoruz.

Step 3- Tamam'ı tıklayın. Yeni bir proje oluşturacak ve sol taraftaki gezinme panelinde görünecektir.

WSDL ekleyin

SABUN Projeleri WSDL'ye dayanmaktadır. Bir WSDL'yi içe aktararak başlamak gerekli değildir, ancak WSDL, bir web hizmetini test etmek için gerekli olan talepler ve yanıtlar, içerdikleri ve çok daha fazlası gibi tüm bilgileri içerdiğinden, SoapUI testini basitleştirdiğinden testi kolaylaştırır.

Step 1 - WSDL eklemek için, Proje adına (SOAP - Örnek) sağ tıklayın ve WSDL Ekle'yi seçin.

Seçim üzerine WSDL sihirbazı görüntülenir.

Step 2 - WSDL Location: WSDL girin http://www.webservicex.com veya bilgisayardan göz atın.

Step 3- WSDL girilir girilmez, 3 onay kutusu - İstek Oluştur, TestSuite Oluştur, MockServices Oluştur etkinleştirilecektir. Gereksinime bağlı olarak, kullanıcı bir veya daha fazla onay kutusunu işaretleyebilir.

Varsayılan olarak, İstek Oluştur onay kutusu işaretlidir.

Step 4- Tamam'ı tıklayın. WSDL, Projeye başarıyla eklendi. Sol gezinme paneline bakılarak doğrulanabilir. Projenin içinde birden fazla işlem var ve WSDL'ye göre talepler ekleniyor.

Ayrıntılar Görünümü

Proje hakkında daha fazla ayrıntı almak için Proje Adına çift tıklayın, çeşitli detayların bulunduğu yeni bir pencere açılacaktır.

Genel Bakış sekmesinde, aşağıdakiler gibi çeşitli bilgiler sağlanır:

  • File Path - Kaydedilen xml projesinin konumunu görüntüler.

  • Interface Summary - Arayüz adı ve onunla ilişkili WSDL.

  • Test Summary - Projeye eklenen test takımlarını, test senaryolarını, test adımlarını, iddiaları görüntüler.

Kullanıcı, arayüz ayrıntılarını almak için Arayüz Adına çift tıklayabilir. Yeni bir pencere açacak ve WSDL ile ilgili bilgileri görüntüleyecektir. Bunlar bir WSDL'ye göz atmak ve incelemek için çok kullanışlıdır.

Genel Bakış sekmesinde WSDL Tanımları, Tanım parçaları ve İşlem ayrıntılarını listeler.

Benzer şekilde, Hizmet Uç Noktaları, uç noktaların ayrıntılarını listeler.

WSDL İçeriği sekmesinde, WSDL'nin tüm ayrıntıları XML / şema biçiminde aşağıdaki ekran görüntüsünde gösterildiği gibi sağlanır.

TestSuitefonksiyonel testleri mantıksal birimler halinde gruplamak için kullanılabilecek Test Durumlarının bir koleksiyonudur. Büyük test senaryolarını desteklemek için bir SoapUI projesi içinde herhangi bir sayıda TestSuite oluşturulabilir.

TestSuite'in oluşturulması

Step 1 - Bir proje içinde, arayüze sağ tıklayın (proje adının yanında) ve ardından 'TestSuite Oluştur'a tıklayın.

Burada, SOAP - Örnek bir Proje adı iken, CurrencyConvertorSoap ve CurrencyConvertorSoap12 arayüzlerdir.

Step 2- Yeni bir sihirbaz açılır. Gereksinime göre seçenekleri seçin.

Step 3 - Seçim yapıldıktan sonra Tamam'ı tıklayın.

Step 4- LoadTest Oluştur onay kutusunu işaretleyin. Bu, bu TestSuite'te oluşturulan her TestCase için bir Yük Testi oluşturacaktır.

Step 5 - Yeni sihirbaza TestSuite adını girin ve ardından Tamam'ı tıklayın.

Oluşturulan TestSuite, aşağıdaki ekran görüntüsünde gösterildiği gibi gezinme panelinde görüntülenir.

Step 6- TestSuite Adına çift tıklayın ve TestSuite penceresi sağ panelde açılır. TestCases eklenmediği için boştur.

TestSuite özellikleri Gezinme Panelinin alt kısmında görülebilir. Yeni Özel Özellikler, TestSuite düzeyinde eklenebilir.

Bir TestCase, web hizmetlerinin bazı özel yönlerini test etmek için bir araya getirilmiş TestSteps koleksiyonudur. Kullanıcı, bir TestSuite'e n sayıda TestCase ekleyebilir ve hatta karmaşık test senaryoları için birbirlerini çağırmak üzere bunları modüler hale getirebilir.

TestCase'in Oluşturulması

Step 1- Bir TestSuite içinde, kullanıcı birden çok test durumu ekleyebilir. Test Suite'e sağ tıklayın ve "New Test Case" öğesini seçin.

Step 2 - TestCase'in adını girin ve Tamam'ı tıklayın.

Oluşturulan TestCase şu anda sıfır test adımına sahiptir. TestCase, mevcut her tür test için sıfır TestSteps ile eklenir. Test Adımları eklendiğinde, parantez içindeki sayılar otomatik olarak değişecektir. İşlevsel TestStep, 'Test Adımları'na giderken, bir performans TestStep'i' Yük Testi'ne gitmeli ve bir güvenlik TestStep'i 'Güvenlik Testlerine' gitmelidir.

Step 3- TestCase Adına çift tıklayın ve sağ taraftaki panelde bir TestCase penceresi açılır. Eklenen TestSteps olmadığından, aşağıdaki ekran görüntüsünde görüldüğü gibi boştur.

TestSteps, SoapUI'deki işlevsel testlerin "yapı taşlarıdır". Bunlar bir TestCase'e eklenir ve yürütme akışını kontrol etmek ve test edilecek web hizmet (ler) inin işlevselliğini doğrulamak için kullanılır.

TestStep'in Eklenmesi

Step 1- TestSteps'e sağ tıklayın. Adım ekleyin ve listeden uygun bir TestStep seçin. Örneğin, kullanıcının bir REST WebService'i test etmesi gerekiyorsa, kullanıcı REST Test İsteğini seçecektir.

Step 2 - Alınan SOAP talebini TestSteps → Add Step → SOAP Request seçerek doğrulamak için bir TestStep ekleyin.

Step 3 - TestStep'in adını girin ve sihirbazda Tamam'ı tıklayın.

'Tamam'ı tıkladıktan sonra, başlatılacak işlemi seçmek için bir iletişim kutusu açılır. Tüm işlemler listelenir ve kullanıcılar başlatmak istedikleri işlemi seçebilirler.

Listelenecek iki işlem vardır. Kullanılan SOAP versiyonu haricinde her iki İşlem de aynıdır.CurrencyConvertorSoap SOAP sürüm 1.1'i kullanırken, CurrencyConvertorSoap12 SOAP sürüm 1.2'yi kullanır.

Step 4 - İlkini seçin - CurrencyConvertorSoap ve Tamam'ı tıklayın.

Bir TestCase eklerken, farklı standart iddialar eklenebilir. İddialar ayrıca SOAP talebinin / yanıtının kontrol noktaları / doğrulama noktaları olarak da adlandırılır.

Step 5 - Varsayılan seçenekle bir TestCase oluşturalım, bu da aşağıdaki doğrulama noktalarından herhangi biri OLMADAN bir TestStep oluşturmak anlamına gelir -

  • Testin yürütülmesinin ardından yanıt mesajının SOAP olup olmadığını doğrular.
  • Yanıt şemasının geçerli olup olmadığını doğrular.
  • SABUN yanıtının HATA içerip içermediğini doğrular.

Step 6 - Tamam'ı tıkladığınızda, aşağıdaki istek XML ekran görüntüsü açılır.

Test adımı sayısı artık işlevsel TestStep eklendiğinde bire yükseltildi. Benzer şekilde, yük ve güvenlik Test Adımları eklendikten sonra, ilgili sayı eklenen adım sayısına göre otomatik olarak artar.

Kurulum İste

Burada, para biriminin INR'den USD'ye dönüştürülmesini gerçekleştireceğiz.

  • FromCurrency - INR
  • ToCurrency - USD

Ardından, bu girdileri istek XML olarak gönderilecek soru işaretinin yerine girin. Bu değerleri ilgili XML etiketlerine yerleştirdikten sonra, yanıtı kontrol etmek için 'İstek gönder' düğmesini tıklayın.

Tepki

Bir istek gönderildikten sonra, web hizmeti talebi web sunucusu tarafından işlenir ve aşağıdaki ekran görüntüsünde gösterildiği gibi bir yanıt gönderir.

Cevabı okuyarak 1 birim INR = 0,0147 birim USD olduğu sonucuna varılabilir.

HTTP İsteği

SOAP mesajları HTTP protokolü ile taşınır. HTTP isteğini görüntülemek için, SoapUI İstek penceresinde (sol taraf) RAW seçeneğine tıklayın.

İstek web sunucusuna gönderilir. Bu nedenle, Http'nin POST yöntemi kullanılır.

SOAP İsteği, aşağıdaki gibi gösterilen http mesajının gövdesinde taşınır.

POST http://www.webservicex.com/currencyconvertor.asmx HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset = UTF-8 
SOAPAction: "http://www.webserviceX.NET/ConversionRate" 
Content-Length: 353 
Host: www.webservicex.com 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

HTTP Yanıtı

Yanıtın HTTP aracılığıyla nasıl gönderildiğini anlamak için SOAP-UI Yanıt Penceresindeki 'RAW' Sekmesine tıklayın.

Talebi işledikten sonra, http yanıt kodu (200) gösterilir, bu da başarılı olduğu anlamına gelir. Web sunucusu bunu başarıyla işledi.

SOAP yanıtı, HTTP mesajının gövdesinin bir parçası olarak istemciye geri gönderilir.

HTTP/1.1 200 OK 
Cache-Control: private, max-age = 0 
Content-Type: text/xml; charset = utf-8 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
Date: Sun, 22 Jan 2017 19:39:31 GMT 
Content-Length: 316

Aşağıdaki HTTP kodları, Web sunucusu tarafından yanıt göndermek için kullanılır ve hata ayıklama için çok kullanışlıdır.

HTTP Kodu Açıklama

1xx:

Informational - Bu, bir talebin alındığı ve devam eden bir süreç olduğu anlamına gelir.

2xx:

Success - Eylem başarıyla alındı, anlaşıldı ve kabul edildi.

3xx:

Redirection - Bu, talebin tamamlanması için daha fazla işlem yapılması gerektiği anlamına gelir.

4xx:

Client Error - Bu, isteğin kötü bir sözdizimi içerdiği veya yerine getirilemeyeceği anlamına gelir.

5xx:

Server Error - Sunucu, görünüşte geçerli bir isteği yerine getiremedi.

Özellikler, SoapUI ile daha gelişmiş testlerin merkezi bir yönüdür. Fonksiyonel Test özellikleri, testlerin yürütülmesini ve işlevselliğini parametrelendirmek için kullanılır.

  • Özellikler, hizmetlerin uç noktalarını tutmak için kullanılabilir, bu da test yürütme sırasında kullanılan gerçek uç noktaları değiştirmeyi kolaylaştırır.

  • Özellikler, kimlik doğrulama bilgilerini tutmak için kullanılabilir, bu da bunları merkezi bir yerde veya harici bir dosyada yönetmeyi kolaylaştırır.

  • Özellikler, test yürütme sırasında oturum kimliklerini aktarmak ve paylaşmak için kullanılabilir, böylece birden çok test adımı veya test senaryosu aynı oturumları paylaşabilir.

Özellikleri Tanımlama

Özellikler bir projede birçok seviyede tanımlanabilir.

  • Proje düzeyinde ortak olan özellikler Proje düzeyinde tanımlanabilir.

  • Benzer şekilde, TestSuite ve TestCase'e özgü özellikler de kendi seviyelerinde tanımlanabilir.

  • Projeye özgü özellikler, Özel Özellikler sekmesinde tanımlanır.

Örneğin, "ToCurrency" özelliği Proje düzeyinde "+" simgesine tıklanarak ve Mülk Adı ve Değer girilerek tanımlanabilir.

Mülke Erişim

Mülk Genişletme kullanılarak Projenin herhangi bir yerinden bir mülke erişilebilir.

Yapı şöyle olacaktır -

  • $ {# Project # PropertyName} - Proje Seviyesi için

  • $ {# TestSuite # PropertyName} - Test Paketi seviyesi için

  • $ {# TestCase # PropertyName} - Test Senaryosu seviyesi için

  • $ {TestStepName # PropertyName} - Test Adımı düzeyi için

  • $ {# MockService # PropertyName} - MockService özelliği için

  • $ {# Global # PropertyName} - Global özellikler için Dosya → Tercih → Global özellikler sekmesinde bulunur. Bu özellik tüm projelerde kullanılabilir

  • $ {# System # PropertyName} - Sistem Özelliği için, Yardım → Sistem özelliklerinde bulunur

  • $ {# Env # PropertyName} - Ortam değişkeni için

Aynı yapı, çalışma zamanı sırasında belirli bir özniteliğin değerini almak için İstek XML'ye yerleştirilebilir.

Bir özellik, bir bilgisayar programında bir değişken olarak da düşünülebilir. Kullanıcı başka bir yerde de kullanılabilecek bir şey tanımlamak isterse, Özellikler çok kullanışlıdır. Özellikler dinamik olarak da tanımlanabilir ancak Groovy betiğine bağlıdır.

Bazen bir yanıt mesajından bir miktar değer çıkarmak ve bunu sonraki taleplere eklemek gerekir. Böyle bir durumda, belirli bir değeri alıp projenin diğer unsurlarına aktaracak bir mekanizmaya sahip olmamız gerekir. SoapUI, Özellik Aktarımı TestStep aracılığıyla bu tür işlevleri destekler.

Mülk Transferi Ekleme

Step 1 - TestCase veya TestStep'i seçin, → Adım Ekle → Özellik Aktarımı'na sağ tıklayın.

Step 2 - TestStep adını girin ve Tamam'ı tıklayın.

Step 3 - RateTransfer adımı eklendi ve yeni bir sihirbaz açılacaktır.

Step 4- Mülk devri penceresinde sol üst köşedeki Yeni bir mülk aktarımı ekle simgesine + tıklayın. Aktarım için bir ad girmeniz istenecektir. Oranı girin ve Tamam'a tıklayın.

Bir Mülkün Aktarılması

Transfer oluşturulduktan sonra, Source ve Target panesözellik değerlerini ayıklamak ve değiştirmek için ilgili XPath ifadelerini belirtmeniz gerekir. Kaynak'ın yanındaki açılır kutuda, mülk aktarımlarının kaynağı olarak kullanılabilecek çeşitli SoapUI projeleri listelenmiştir. Varsayılan olarak, en yakın TestStep gösterilecektir.

Bu durumda, Request – INR to USDTestStep. Özelliğin yanındaki açılır liste, aktarımda kullanılan kaynak özelliğini gösterir; bu istek, yanıt veya hizmet uç noktası olabilir.

Step 1- Yanıt'ı seçin ve Yol diline gidin. Kullanıcı özelliği tanımlamak için XPath, Xquery veya Jason'ı seçebilir. Bu durumda, XPath seçin.

Step 2 - xml kaynağının bildirimini almak için ns'ye tıklayın ve XPath'i belirtin.

Step 3- Yukarıdaki XPath ifadesinden çıkarılan değerin aktarılacağı hedefi belirtin. Bunun için özellik aktarımı penceresinin altında hedef bölme kullanılır.

Step 4 - RequestINRtoUSD adımının yanıtından ConversionRateResult çıkarılan değeri aktarın.

Target - Özellikler

Property - ConversionRate (yeni bir özellik eklendi, başlangıçta herhangi bir değeri yok).

Step 5 - Test senaryosu başarıyla çalıştıktan sonra, "ConversionRate" özelliği yanıta göre güncellenir.

Başlangıçta ekran görüntüsü aşağıdadır.

Başarılı bir çalışmanın ardından ekran görüntüsü aşağıdadır.

Benzer şekilde, Hedef bir sonraki İstek XML'si olabilir. Hedef SABUN isteği ise, hedef niteliği tanımlamak için XPath sağlamamız gerekir.

Günlükler bölmesi, istemci ile sunucu arasındaki işlemle ilgili tüm bilgileri depolar. Kullanıcılar, günlük bölmesinin çeşitli sekmelerini görebilecekler. Bu bölümde SoapUI ile çalışırken en sık kullanılan günlük bölmelerini tartışacağız.

SoapUI Günlüğü

SoapUI günlüğü, web sunucusundan gelen yanıt bilgilerini görüntüler. Aynı bilgiler, 'bin' dizini altındaki SOAP-UI kurulu klasörünün soapui.log dosyasında saklanır.

HTTP Günlüğü

HTTP günlüğü, tüm HTTP paket aktarımını görüntüler. 'RAW'daki tüm bilgiler HTTP günlüğünde gösterilir.

Hata Günlüğü

Hata günlüğü, tüm proje oturumu boyunca karşılaşılan tüm hataları görüntüler. Aynı bilgiler SoapUI kurulu konumunun 'bin' dizininde bulunan 'soapui-errors.log'da da mevcuttur.

Hafıza Günlüğü

Bu sekme bellek tüketimini izler ve aşağıdaki ekran görüntüsünde gösterildiği gibi grafik biçiminde görüntüler. Bellek yoğun bir işlem gerçekleştirildiğinde gerçekten yararlıdır.

İddia, bir kontrol noktası veya bir doğrulama noktası olarak yorumlanabilir. Bir web sunucusuna bir istek gönderildiğinde, bir yanıt alınır. Verileri içeren yanıtın beklendiği gibi doğrulanması gerekir. Yanıtı doğrulamak için SoapUI bir onaylama özelliğine sahiptir.

Dikkat Edilmesi Gereken Noktalar

  • Onaylar, yürütme sırasında bir TestStep tarafından alınan mesajı doğrulamak için kullanılır.

  • Mesajın bir kısmını veya tüm mesajı beklenen bir değerle karşılaştırır.

  • Her biri yanıt mesajının bazı farklı yönlerini ve içeriğini doğrulayan herhangi bir sayıda iddia bir TestStep'e eklenebilir.

  • Bir TestStep yürütüldükten sonra, tüm iddiaları alınan yanıta uygulanır ve bunlardan herhangi biri başarısız olursa, TestStep TestCase görünümünde başarısız olarak işaretlenir.

  • Başarısız giriş, test yürütme günlüğünde gösterilir.

İddiaların Türü

SoapUI, yanıt olarak çok çeşitli iddiaları destekler.

SoapUI tarafından desteklenen iddiaların listesi aşağıdadır.

İddia Açıklama
Property Content
İçerir Belirtilen dizenin varlığını kontrol eder. Ayrıca düzenli ifadeyi de destekler.
İçermez Belirtilen dizenin var olmadığını denetler. Ayrıca düzenli ifadeyi de destekler.
XPath Maçı Hedef düğümü ve değerlerini seçmek için XPath ifadesini kullanır. Bir XPath ifadesinin sonucunu beklenen bir değerle karşılaştırır.
XQuery Eşleşmesi Hedef özellikten içerik seçmek için bir Xquery ifadesi kullanır. Bir XQuery ifadesinin sonucunu beklenen bir değerle karşılaştırır.
Compliance, Status, Standards
HTTP DOwnload All Resource HTML belgesi olarak belirtilen tüm kaynakları (resimler, komut dosyaları, vb.) İndirir ve hepsinin kullanılabilir olduğunu doğrular. HTML içeren herhangi bir mülk için geçerlidir.
Geçersiz HTTP Durum Kodları Hedef TestStep'in, tanımlı kodlar listesinde olmayan bir durum koduna sahip bir HTTP sonucu aldığını kontrol eder. HTTP mesajlarını alan tüm TestStep'ler için geçerlidir.
SABUN Arızası Değil Son alınan mesajın bir SOAP Hatası olmadığını doğrular. SOAP TestSteps için geçerlidir.
Şema Uyumluluğu Son alınan mesajın ilişkili WSDL veya WADL şema tanımıyla uyumlu olduğunu doğrular. SABUN ve DİNLENME Test Adımlarına uygulanabilir. Şema tanımı URL'si Özellik Genişletmelerini destekler (örn. $ {# System # my.wsdl.endpoint} / services / PortType? Wsdl).
SABUN Hatası Son alınan mesajın SABUN Arızası olduğunu doğrular. SOAP TestSteps SOAP İsteği için geçerlidir - son alınan talebin geçerli bir SOAP İsteği olduğunu doğrular. Yalnızca MockResponse Test Adımları için geçerlidir.
SABUN Yanıtı Son alınan yanıtın geçerli bir SOAP Yanıtı olduğunu doğrular. Yalnızca SOAP TestRequest Steps için geçerlidir.
Geçerli HTTP Durum Kodları Hedef TestStep'in, tanımlı kodlar listesinde bir durum kodu içeren bir HTTP sonucu aldığını kontrol eder. HTTP mesajlarını alan tüm TestStep'ler için geçerlidir.
WS-Adresleme İsteği Son alınan isteğin geçerli WS-Adresleme Başlıkları içerdiğini doğrular. Yalnızca MockResponse TestSteps için geçerlidir.
WS-Adresleme Yanıtı Son alınan yanıtın geçerli WS-Adresleme Başlıkları içerdiğini doğrular. Yalnızca SOAP TestRequest Steps için geçerlidir.
WS-Güvenlik Durumu Son alınan iletinin geçerli WS-Security üstbilgileri içerdiğini doğrular. SABUN Test Adımlarına uygulanabilir.
Script
Komut Dosyası Onaylama Kullanıcıların, kullanıcı tanımlı doğrulamaları gerçekleştirmek için özel bir komut dosyası yürütmesine izin verir. Yalnızca TestSteps için geçerlidir (yani özellikler için geçerli değildir)
SLA
Yanıt SLA Son alınan yanıtın yanıt süresinin tanımlanan sınır içinde olup olmadığını doğrular. İstek gönderen ve yanıt alan Script TestSteps ve TestSteps için geçerlidir.
JMS
JMS Durumu Hedef TestStep'in JMS isteğinin başarıyla yürütüldüğünü doğrular. JMS uç noktası ile TestSteps İsteme için geçerlidir.
JMS Zaman Aşımı Hedef TestStep'in JMS ifadesinin belirtilen süreden daha uzun sürmediğini doğrular. JMS uç noktası ile TestSteps İsteme için geçerlidir.
Security
Hassas Bilgilerin Açığa Çıkması Yanıt mesajının hedef sistemle ilgili hassas bilgileri ifşa edip etmediğini doğrular. Bu iddiayı REST, SOAP ve HTTP TestSteps için kullanabiliriz.
JDBC
JDBC Durumu Hedef TestStep'in JDBC isteğinin başarıyla yürütüldüğünü doğrular. Yalnızca JDBC TestSteps için geçerlidir.
JDBC Zaman Aşımı Hedef TestStep'in JDBC ifadesinin belirtilen süreden daha uzun sürmediğini doğrular. Yalnızca JDBC TestSteps için geçerlidir.

SoapUI'de, kullanıcılar biraz uyanıklıkla çözülebilecek birçok genel ortak sorunla karşı karşıya kalıyor. Bu en yaygın sorunlardan bazıları şunlardır -

Issue- Ad alanı yanlış tanımlanmış. Doğru ad alanını kullanın. Ad alanı, web hizmetinin bulunduğu URL olmalıdır.

Solution - Bir komut dosyası oluşturma iddiası geliştirilirken bir hata atılırsa, değişkenlerin içeriğini yazdırmak için 'log.info' kullanın.

Issue - Yanıt XML'si olarak bir hata kodu alınırsa, bunun nedeni geçersiz giriş olabilir.

Solution - İstek XML girişini doğrulayın.

Example - Para birimi dönüştürücüsünde, 'FromCurrency' girdisi mevcut olmayan '123' ise, çıktı 'SOAP-Client' olarak bir hata kodu atar, bu da sorunun, müşteri tarafı.

İstek

Tepki

Issue - XPath veya XQuery kullanırken geçerli yanıtta eşleşme yok.

Solution -

  • XPath veya XQuery'yi tanımlarken doğru sözdizimini kullanın.
  • Ad alanını bildirirken iki nokta üst üste kullanıldığını ve nokta olmadığını doğrulayın.
  • XPath ve XQuery'nin doğru olduğundan emin olun.

Performans testi, Web Hizmeti testindeki en yaygın önemli kontrol noktalarından biridir. Performans Testi, yükü yapay olarak oluşturmak veya simüle etmek ve ortamın bunu nasıl işlediğini ölçmek olarak tanımlanır.

Bu, bir sistemin yüksek yük altında nasıl performans gösterdiğinin gerekli olmadığı anlamına gelir, aynı zamanda temel yük veya beklenen yük altında nasıl çalıştığı da olabilir. SoapUI gibi TestWare'de yapılandırılması, otomatikleştirilmesi veya oluşturulması bile gerekmez; Web tarayıcısını tekrar tekrar çok hızlı bir şekilde yenilemek de bir Yük Testi'dir.

Performans Testi Türleri

Aşağıda Performans Testi türleri verilmiştir -

  • Baseline Testing - Bir sistemin beklenen veya normal yük altında nasıl performans gösterdiğini inceler ve diğer test türlerinin karşılaştırılabileceği bir temel oluşturur.

  • Load Testing- Yükü artırmayı içerir ve sistemin daha yüksek yük altında nasıl davrandığını görün. Yük Testleri sırasında kullanıcı yanıt sürelerini, verimi, sunucu durumunu ve çok daha fazlasını izleyebilir. Yük Testinin amacı, hedef ortamı bozmak değildir.

  • Soak Testing - Test etmenin amacı, daha uzun süre istenmeyen davranışların ortaya çıkmamasını sağlamaktır.

  • Scalability Testing- Ölçeklenebilirlik Testi, Yük Testine çok benzer, ancak istek sayısını artırmak yerine, gönderilen isteklerin boyutunu veya karmaşıklığını artırır. Örneğin, büyük istekler, büyük ekler veya derinlemesine iç içe geçmiş istekler göndermek.

Web Hizmetinin Temel Özellikleri

Web Hizmeti performansının benzersiz özelliklerinde iki husus göze çarpmaktadır.

İlk Yön

Sunucu tarafında, XML / JSON işleme, hem XML / JSON ayrıştırma hem de serileştirme devam ediyor . Genellikle ilk başarısız olan şey, yüklerin işlenmesidir. Başarısızlığın nedenleri çok yönlü olabilir; platformda olabilir, uygulama sunucusunun zayıf yönleri olabilir veya gereksiz karmaşık WSDL'ler şeklinde bir uygulama sorunu olabilir. Ayrıca, kodun yanıt vermede yavaş olan bir veritabanına istekte bulunduğu anlamına da gelebilir.

Testing Aspect- XML ​​/ JSON yükünü çözümlemenin karmaşıklığı, Ölçeklenebilirlik Testine fazladan odaklanmaya ihtiyaç olduğu anlamına gelir. Aynı zamanda WSDL'lerin yakından incelenmesi gerektiği anlamına gelir. İstekler ve yanıtlar karmaşık veya daha büyükse veya büyük ekler içeriyorsa, karmaşıklığı vurgulamaya ve yük altında nasıl davrandığını görmeye odaklanılmalıdır.

İkinci Yön

Sık karşılaşılan bir diğer faktör ise güvenliktir. HTTPS'nin arkasındaki güvenli siteler, önemli ölçüde daha düşük performansa sahiptir ve Web Hizmeti testinde, HTTP güvenlik katmanına bir WSSecurity katmanı ekleyerek performansı daha da azaltabiliriz.

Testing Aspect- Güvenlik konusu, güvenli olan isteklerin test edilmesine odaklanılması gerektiği anlamına gelir. Tüm Web Hizmeti güvenliyse, özellikle WS-Security ve belirteç işleme kullanılıyorsa, Yük Testinin daha önemli olduğu anlamına gelir.

Load testingsistemin belirli bir yük altındaki davranışını değerlendirmek için gerçekleştirilen özel bir performans testi şeklidir. SoapUI'de, genellikle tüm işlevsel olmayan test türleri için "yük testi" terimini kullanırız, ancak SoapUI yük, stres ve dayanıklılık gibi web hizmetlerinin her tür performans değerlendirmesini destekler.

Dikkat Edilmesi Gereken Noktalar

  • SoapUI'de yük testi oldukça benzersizdir; hızlı bir şekilde performans testleri oluşturmaya ve değiştirmeye izin veren işlevsel bir test senaryosu.

  • Ana farklılaştırıcı, SoapUI'deki performans testlerinin genellikle mevcut fonksiyonel testlerden oluşturulmasıdır. Bu, hızlı bir şekilde gelişmiş performans testleri oluşturmaya izin verir.

  • Web Hizmeti performansı, farklı yük senaryoları altında doğrulanabilir. Yük altında kırılmadıklarını görmek için işlevsel doğrulamaları sürdürün, birbirlerini nasıl etkilediklerini ve daha fazlasını görmek için aynı anda birkaç yük testi çalıştırın.

Yük Testinin Oluşturulması

Step 1 - Functional Test Case'e sağ tıklayın ve New Load Test'i seçin.

Step 2 - Yükleme Testi adını girin ve iletişim sihirbazında Tamam'ı tıklayın.

Aşağıdaki ekran görüntüsünde gösterildiği gibi Yük Testi açılır ve Yük Testi oluşturulur.

Yük Testinin Yürütülmesi

Yeni bir Yük Testi oluşturulduğunda, Basit yükleme stratejisi kullanılarak 5 iş parçacığı ile 60 saniye (sağ üst) çalışacak şekilde önceden yapılandırılır.

Bu değerleri gereksinime göre değiştirin ve Çalıştırın. Note - Kullanıcı, Yük Testi yapılandırması ve kavramlarından haberdar olmalıdır.

Kullanıcı, verilerin toplanmasından başlayarak ortada istatistik tablosunu görecektir ve 60 saniye sonra bitmiş bir LoadTest'e sahip olmalıdır.

Onay Ekleme

Step 1 - LoadTest düzenleyicisinde, düzenleyicinin altındaki LoadTest Assertion sekmesini seçin.

Step 2 - Onay eklemek için LoadTest Assertion menü çubuğundaki Add Assertion düğmesini tıklayın.

Step 3- Onay Ekle iletişim kutusu açılacaktır. Maksimum Adım'ı seçin. Maksimum Seçin, yanıtların almasına izin verilen milisaniye cinsinden bir Maksimum Süre ayarlar; süre belirlediğimizi aşarsa test başarısız olur. Tamam'ı tıklayın.

Step 4- TestStep Max Assertion penceresi açılacaktır. Aşağıdaki ekran görüntüsünde görüldüğü gibi, maksimum 1 saniye, 1000 milisaniye yanıt veriyoruz. Hiçbir şeyi değiştirmeyelim. Tamam'ı tıklayın.

Maksimum Adım iddiası artık başarıyla eklenecektir.

Step 5- Şimdi testi tekrar çalıştırın. Cevaplar çok uzun sürerse, hata sütunundaki sayıların hızlı bir şekilde toplandığını görmelisiniz.

Web hizmeti, uygulamalar veya sistemler arasında veri alışverişi için kullanılan açık protokoller ve standartların bir koleksiyonudur. Çeşitli programlama dillerinde yazılan ve çeşitli platformlarda çalışan yazılım uygulamaları, tek bir bilgisayarda süreçler arası iletişime benzer bir şekilde İnternet gibi bilgisayar ağları üzerinden veri alışverişi yapmak için web hizmetlerini kullanabilir. Bu birlikte çalışabilirlik (örneğin, Java ve Python veya Windows ve Linux uygulamaları arasında) açık standartların kullanımından kaynaklanmaktadır.

REST Mimarisine dayalı web hizmetleri, RESTful Web Hizmetleri olarak bilinir. Bu web hizmetleri, REST mimarisi konseptini uygulamak için HTTP yöntemlerini kullanır. RESTful web hizmeti genellikle, JSON ve bir dizi HTTP yöntemi gibi kaynak gösterimi sağlayan bir hizmet olan bir URI'yi (Tekdüzen Kaynak Tanımlayıcısı) tanımlar.

SoapUI'nin tüm REST test yetenekleri, REST hizmeti olarak bilinen mantıksal bir temsile dayanmaktadır. Bunu burada "hizmet" terimiyle karıştırmamalıyız, çünkü bu bir hizmet uygulaması değil, çağrılan RESTful hizmetinin bir eşlemesi. Bir SoapUI projesine olabildiğince çok REST Hizmeti ekleyebiliriz. Her biri belirli bir RESTful hizmetini temsil eder. Bunlar aşağıdaki gibidir -

  • REST - Proje Kurulumu

  • REST - WADL

  • REST - Talep

  • REST - Yanıt

  • REST - HTTP Yöntemleri

SoapUI, JDBC İsteği adlı bir TestStep kullanarak veritabanı işleminin yönetilmesine izin verir.

Step 1 - TestStep'e sağ tıklayın ve Adım Ekle → JDBC İsteği'ni seçin.

Step 2 - Adım adını girin ve Tamam'ı tıklayın.

JDBC Adımı eklendi. Adım'a çift tıklayın ve JDBC sihirbazı açılacaktır.

Bir JDBC bağlantısı oluşturmak için, kullanıcının geçerli Sürücü ve Bağlantı Dizesi sağlaması gerekir. Bu parametreler, veritabanı türünü tanımlamak ve veritabanını kullanmak için bir bağlantı oluşturmak için kullanılır.

MySQL için veritabanı sürücüsü olabilir com.mysql.jdbc.Driver. Benzer şekilde, diğer veritabanı için, veritabanının belge bölümünde bulunabilen önceden tanımlanmış bir sürücü vardır.

Step 3 - Bağlantı Dizesi aşağıdaki formatta olmalıdır -

Jdbc:mysql://[host]:[port]/[database]?[property][=value]

Burada özellik, bir veritabanına bağlanmak için gerekli diğer parametrelerle birlikte kullanıcı adı ve şifredir.

Örneğin,

jdbc:mysql://localhost:8089/xxx_DB?user=root&password=root

Step 4- Bağlantıyı Test Et'i tıklayın. Başarılı bağlantıda, BAŞARILI mesajını gösterecek, aksi takdirde hatanın ayrıntılarını sağlayacaktır.

JDBC'nin, SQL Sorgusunda değişken olarak kullanılabilen kendi Add property bölümü vardır.

Nasıl davrandığını görelim -

Diyelim ki, JDBC adımında gerçekleştirilmesi gereken SQL Sorgusu, CurrencyCode = 'xxx' olan Para Biriminden Seç *.

Bu senaryoda, CurrencyCode istek girişine göre değiştirilebilir. Kullanıcı sabit kodlanmış bir değer sağlarsa, JDBC adımı istekte verilen para birimi için çalışmaz.

Bu tür senaryoların üstesinden gelmek için JDBC, bir özellik Kodunun tanımlanabildiği ve Özellik Aktarımı Adımını kullanarak değişmeye devam edeceği add özelliğini destekler.

SQL Sorgusu, Özellik Kodunun mevcut değerine dayalı olarak çalışacak ve SQL Sorgusu, CurrencyCode =: Code parametresini oluşturacaktır.

Özellik Ekle + öğesini ve Kod olarak adı tıklayın ve bunu sağlamak için Mülk Transferi adımını kullanmak için değer verin veya boş bırakın.

JDBC İsteği, SOAP isteği TestSteps ile yapılan iddiaların çoğunu da kullanabilir. SoapUI'de bu iddiaların çoğu TestSteps'ten bağımsızdır. Dolayısıyla, İçerir ve XPath Eşleşmesi gibi iddialar JDBC İsteği TestStep ile kullanılabilir.

Tıklayarak Add an assertion JDBC Request TestStep'in üst menüsündeki simgesine tıklandığında, kullanıcı TestStep tarafından hangi iddiaların desteklendiğini öğrenebilir.

Genel iddialara ek olarak, JDBC Request TestStep'e özgü iki iddia vardır -

JDBC Timeout - Bu iddia, geçerli SQL sorgusunun belirtilen Sorgu Zaman Aşımı özelliği değeri dahilinde yürütülüp yürütülmediğini doğrulamak için kullanılabilir.

JDBC Status - SQL ifadesinin başarılı bir şekilde yürütülüp yürütülmediğini kontrol etmek için, JDBC Durum onayını kullanabiliriz.

Sorgu Zaman Aşımını ayarlamak için ekranın sol tarafındaki Özellik Sorgu Zaman Aşımına ilişkin değeri girin. Lütfen milisaniye (ms) cinsinden değeri kabul ettiğini unutmayın.