Web Hizmeti nedir?
Web Hizmetleri, iki uygulamanın / makinenin, altını çizen mimarisi ve teknolojisine bakılmaksızın verileri değiş tokuş edeceği iletişim mekanizması veya aracıdır.
Web Servis Testi nedir?
Web Hizmetleri Testi , Web hizmetlerini doğrulayan bir tür yazılım testidir. Web Hizmetleri Testinin amacı, bir API'nin (Uygulama Programı Arayüzü) işlevselliğini, güvenilirliğini, performansını ve güvenliğini kontrol etmektir. Web Hizmeti Testi, bazı durumlarda birim testine benzer. Bir Web Hizmetini manuel olarak test edebilir veya kendi otomasyon kodunuzu oluşturabilir veya Postman gibi kullanıma hazır bir otomasyon aracını kullanabilirsiniz.
Web Hizmeti Neden Gereklidir?
Genel olarak, yazılım uygulamaları, bir kişinin bir yazılım hizmetine bir talep gönderdiği ve bunun karşılığında insan tarafından okunabilir formatta bir yanıt döndürdüğü insanlar tarafından tüketilmek üzere geliştirilir.
Modern teknoloji çağında, bir yazılım uygulaması oluşturmak istiyorsanız, her şeyi sıfırdan oluşturmanız gerekmez. Uygulamanıza ekleyebileceğiniz birçok hazır hizmet mevcuttur ve bu hizmetleri uygulamanızda sunmaya başlayabilirsiniz.
Örneğin, uygulamanızda verileri toplamanız, işlemeniz ve işlemeniz gerekmeyen hava tahmini bilgilerini görüntülemek istiyorsunuz. Hizmetleri, bu tür verilerin işlenmesi ve yayınlanması konusunda halihazırda yerleşik kişilerden satın alabilirsiniz.
Web servisleri bu tür uygulamaları yapmamıza izin verir.
Örnek olarak, aşağıdaki Web Hizmetini göz önünde bulundurun
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Bir Şirket için Hisse Değeri verir.
Google için hisse fiyatını bulalım (Sembol: GOOG)
XML yanıtı hisse senedi fiyatını verir.
Bu Web Hizmeti, SOAP veya HTTP protokolü kullanan bir Yazılım Uygulaması tarafından çağrılabilir.
Web Servis Protokolleri
Web Hizmetleri farklı şekillerde uygulanabilir, ancak aşağıdaki ikisi popüler uygulama yaklaşımlarıdır.
- SOAP (Basit Nesne Erişim Protokolü)
- REST (Temsili Durum Aktarım mimarisi)
SABUN
SOAP, web hizmeti isteklerini ve yanıtlarını göndermek ve almak için W3C Standardı tarafından tanımlanan standart bir protokoldür.
SOAP , isteği göndermek ve almak için XML biçimini kullanır ve bu nedenle veriler, platformdan bağımsız verilerdir. SOAP mesajları, sağlayıcı uygulamaları ve SOAP zarfları içindeki alıcı uygulama arasında değiş tokuş edilir.
SOAP basit http aktarım protokolünü kullandığından, mesajları güvenlik duvarları tarafından engellenmez.
DİNLENME
REST, Temsili Durum Transferi anlamına gelir; genellikle HTTP üzerinden çalışan bir mimaridir. REST stili, sınırlı sayıda işlemle zenginleştirilen istemciler ve hizmetler arasındaki etkileşimleri vurgular. REST, SOAP'a (Basit Nesne Erişim Protokolü) bir alternatiftir ve istek için XML kullanmak yerine bazı durumlarda REST basit URL kullanır. SOAP'tan farklı olarak, RESTFUL uygulamaları meta bilgileri taşımak için başlıklarda HTTP yapısını kullanır.
Kullanıcının API'ye erişimi olup olmadığını belirlemek için REST'in kullandığı çeşitli kodlar vardır, kod 200 veya 201, yanıt gövdesiyle başarılı bir etkileşimi belirtirken, 400, hatalı bir isteği veya istek URI'sinin sistemdeki API'lerle eşleşmediğini belirtir. Tüm API istek parametreleri ve yöntem parametreleri, POST veya GET değişkenleri aracılığıyla gönderilebilir .
Rest API, WebServices API Testi için hem XML hem de JSON formatını destekler. Uygulamanın daha hızlı ve sorunsuz çalışmasını sağladığı için genellikle Mobil ve web uygulamaları için tercih edilir.
WSDL
WSDL (Web Hizmetleri Açıklama Dili), bir web hizmeti tarafından sunulan hizmetleri açıklamak için kullanılacak olan XML tabanlı bir dildir.
WSDL, belirli bir web hizmeti tarafından sunulan tüm işlemleri XML biçiminde açıklar. Ayrıca, hizmetlerin nasıl çağrılabileceğini, yani hangi girdi değerini sağlamamız gerektiğini ve her hizmet türü için üreteceği yanıtın formatının ne olacağını tanımlar.
Bir Web Hizmeti nasıl test edilir?
Web hizmetini test etmek için şunları yapabilirsiniz:
- Manuel Olarak Test Et
- Kendi Otomasyon Kodunuzu oluşturun
- SoapUI gibi kullanıma hazır bir otomasyon aracı kullanın.
Web Hizmetleri Otomasyon Testi aşağıdaki adımları içerir -
- WSDL dosyasını anlayın
- Belirli bir web servisinin sağladığı işlemleri belirleyin
- Göndermemiz gereken XML istek formatını belirleyin
- Yanıt XML biçimini belirleyin
- İstek göndermek ve yanıtı doğrulamak için bir araç kullanmak veya kod yazmak
Para Birimi Dönüştürme Olanağı sağlayan web hizmetini test etmek istediğimizi varsayalım. Farklı ülkelerin para birimi arasındaki mevcut dönüşüm oranları olacaktır. Uygulamalarımızda değerleri bir para biriminden diğer para birimine dönüştürmek için kullanabileceğimiz bu hizmet.
Şimdi yukarıdaki adımlara bakalım
Adım 1 ila 4: WSDL'yi anlama ve işlemleri ve XML formatlarını belirleme
Para Birimi Dönüştürücü WSDL dosyası, destekleyeceği Currency Convertor web hizmeti yöntemleri, geçmemiz gereken parametre ve parametrelerin türü
… vbAdım 5: İstek göndermek ve yanıtı doğrulamak için bir araç kullanmak veya kod yazmak
SOAP web hizmetini test etmek için birçok Web Hizmeti Test aracı bulunmaktadır. SoapUI, SOAP web hizmetlerini test etmemize yardımcı olacak popüler API araçlarından biridir. Aslında, XML talebini http üzerinden web servis sağlayıcı uygulamasına gönderebilen ve yanıt XML'ini beklenen sonuca göre ayrıştırıp doğrulayabilen herhangi bir programlama dilini kullanabilirsiniz. Bu Web Hizmetleri Test eğitiminde, Web Hizmetini test edeceğiz.
- Java kullanmak
- SoapUI kullanma
BÖLÜM 1) Apache Axis2 API (Java) Kullanarak Web Hizmeti Testi.
Genellikle web servisi talebi alır ve yanıtı XML formatında gönderir.
Apache Axis2 API projesi, hem sunucu tarafı (hizmet sağlayıcı) hem de istemci tarafı (hizmet tüketicisi) için Web hizmetlerini oluşturmak için kullanılacak bir Java uygulama API'sidir.
Axis2, SOAP mesajları gönderebilir ve SOAP mesajlarını alır ve işler. Web servisini oluşturmak için API kullanarak küçük bir Java programı yazabiliriz. Axis2, web hizmeti tarafından sunulan hizmetleri iletmek için kullanılacak olan Java programından WSDL oluşturacaktır. Web servis talebini oluşturmak, talebi servis uç noktasına göndermek ve yanıtı işlemek için bir istemci programı olarak kullanabileceğimiz WSDL dosyasından Java sınıfını (saplama) oluşturmak için aynı Axis2'yi kullanabiliriz.
- Temel olarak, stub sınıfını somutlaştıracağımız basit bir Java programı oluşturacağız.
- Saplamayı kullanarak, gerekli tüm bilgileri ileterek istek yöntemini çağıracağız.
- Stub programı bu isteği XML istek biçimine dönüştürür ve isteği okuyacak ve isteği işleyecek ve yanıtı XML biçiminde gönderecek olan hizmet bitiş noktasına gönderir.
- XML yanıtı saplama tarafından Java sınıfına dönüştürülecek ve gerçek programa geri döndürülecektir.
Yukarıdaki adımlara ayrıntılı olarak bakalım
Adım a) Eksen2 API'sini indirin @ https://axis.apache.org/axis2/Java/core/download.cgi & 'AXIS2_HOME' ortam değişkenini ayarlayın
Adım b) Oluşturulan tüm eserleri saklamak için bir klasör oluşturun
Ör: C: \ Axis \ Projeler \ CurrencyConverter
Adım c) Komut istemini açın ve yapıları oluşturmak istediğiniz klasör yapısına gidin ve taslakları oluşturacak aşağıdaki komutu çalıştırın.
% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s
Adım d) Komut başarıyla çalıştırıldığında, gerekli dosyaların bulunduğu klasörü göreceksiniz.
Adım e) Bu Web Hizmetleri Testi öğreticisinin bir sonraki adımında, oluşturulan koçanları kullanarak gerçek isteği göndereceğimiz istemci programını oluşturmalıyız. Tutulmayı açın ve yeni Java projesini oluşturun ve yukarıda oluşturduğumuz klasörü seçin.
Adım f) Eksen2 yazılım klasörünün lib klasöründe bulunacak olan proje oluşturma yoluna tüm axis2 ile ilgili kavanozları ekleyin
(örneğin: C: \ Axis \ axis2-1.6.2 \ lib)
Adım g) Yeni bir Java sınıfı (örn: Client.Java) oluşturun ve saplama nesnesini somutlaştırın. Stub nesnesini kullanarak, belirli WebService'in desteklenen tüm yöntemlerini çağırabiliriz.
Client.Java Programıpaket org.apache.axis2.currencyconvertor;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRate;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.ConversionRateResponse;import org.apache.axis2.currencyconvertor.CurrencyConvertorStub.Currency;public class Client {public static void main (Java.lang.String args []) {Deneyin {// Hizmet uç noktası url'sini ileterek saplama nesnesini oluşturunCurrencyConvertorStub saplama = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate, başlangıç ve bitiş para biriminden bahsetmemiz gereken sınıftır// ConversionRate nesnesi, conversionRate işleminin parametresi olacakConversionRate conversionRate = new ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Para Birimi.INR);// Yanıtı yakalamak için kullanılacak ConversionRateResponse nesnesini oluşturun// saplama nesnesini kullanarak conversionRate hizmetini çağırınConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// ConversionRate Hizmetinin yanıtını almak için conversionRateResponse nesnesini kullanabilirizSystem.out.println ("INR'den USD'ye Dönüşüm Oranı: + conversionRateResponse.getConversionRateResult ());} catch (İstisna e) {e.printStackTrace ();}}}
BÖLÜM 2) SoapUI Web Hizmetini Kullanarak Nasıl Test Edilir
SoapUI'de
- Dosyaya Git> Yeni Sabun Projesi
- Proje adını ve WSDL URI konumunu girin
- Tamam'ı tıklayın
- İlk isteği genişletin ve 'İstek1'e çift tıklayın. SOAP isteğini XML formatında gösterecektir.
- Para Birimi ve Para Birimine Girin
- Gönder düğmesine tıklayın
- Yanıt XML'si sağ taraftaki bölmede görüntülenecektir.
Sonuç olarak, SoapUI gibi Web Hizmeti Test araçlarının kullanılması, Web Hizmetleri Otomasyon Testi Çabalarınızı hızlandırır. Bu nedenle SoapUi, sonraki eğitimlerde öğrenmemizin odak noktası olacak.
Özet
- Yazılım Uygulamaları, bir Web Hizmeti kullanarak birbirleriyle iletişim kurar ve veri alışverişi yapar
- SOAP ve REST, bir Web Hizmeti oluşturmak için 2 popüler protokoldür
- SOAP, XML tabanlı veri alışverişini destekler
- REST, WebServices API Testi için XML, Json veya basit URL'de veri alışverişini destekler.
- WSDL, bir web hizmeti tarafından sunulan hizmetleri açıklamak için kullanılacak olan XML tabanlı bir dildir. SABUN, WSDL kullanılarak tanımlanır.
- WebService'i test etmek için şunları yapabilirsiniz:
- Kendi kodunuzu oluşturun. Örneğin, Java için Axis2 API kullanın
- SoapUI gibi Web Hizmeti Test Otomasyonu araçlarını kullanın
- SoapUI gibi Otomasyon Araçları, Web Hizmetleri Otomasyon Testi çalışmalarınızı hızlandıracak ve Axis2 API kullanarak kendi kodunuzu oluşturmaya kıyasla daha az kodlama çabası gerektirecektir
SSS
WebService ve WebAPI arasındaki fark nedir?
İnternet servisi |
Web API |
|
|
|
|
|
|
|
|
Web API Testi hakkında daha fazla bilgi edinin
Bu Web Hizmetleri Testi öğreticisi, Bay Narender Reddy Nukala'nın katkılarıyla sağlanmıştır.