Web Hizmetleri Test Eğitimi: Nasıl Test Edilir? Örnekle Öğrenin

Web Hizmeti nedir?

Web Servisleri, iki uygulamanın/makinenin, alt yapı mimarisinden ve teknolojisinden bağımsız olarak veri alışverişinde bulunacağı mekanizma veya iletişim ortamı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 aşağıdaki gibi kullanıma hazır bir otomasyon aracı kullanabilirsiniz: Postman.

Web Hizmeti Neden Gereklidir?

Genel olarak, yazılım uygulamaları insanlar tarafından tüketilmek üzere geliştirilir; burada bir kişi bir yazılım hizmetine bir istek gönderir ve bu da insan tarafından okunabilir formatta bir yanıt verir.

Modern teknoloji çağında bir yazılım uygulaması oluşturmak istiyorsanız her şeyi sıfırdan oluşturmanıza gerek yoktur. Uygulamanıza takabileceğiniz pek çok hazır hizmet mevcut ve bu hizmetleri uygulamanızda sağlamaya başlayabilirsiniz.

Örneğin, uygulamanızdaki verileri toplamanız, işlemeniz ve işlemeniz gerekmeyen hava durumu tahmini bilgilerini görüntülemek istiyorsunuz. Hizmetleri, bu tür verileri işleme ve yayınlama konusunda zaten tecrübeli kişilerden satın alabilirsiniz.

Web servisleri bu tür uygulamaları yapmamıza olanak sağlar.

Örnek olarak, aşağıdaki WebService'i ele alalım

http://www.webservicex.net/stockquote.asmx?op=GetQuote

Bir Şirkete Hisse Değeri verir.

Google hisse fiyatını bulalım (Sembol: GOOG )

Web Hizmeti Testi

Yanıt XML'i hisse senedi fiyatını verir.

Web Hizmeti Testi

Bu Web Hizmeti, SOAP veya HTTP protokolü kullanılarak bir Yazılım Uygulaması tarafından çağrılabilir.

Web Hizmeti Protokolleri

Web Servisleri farklı şekillerde uygulanabilir, ancak aşağıdaki iki tanesi popüler uygulama yaklaşımlarıdır.

  1. SOAP (Basit Nesne Erişim Protokolü)
  2. REST (Temsili Durum Transfer 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.

SABUN şunu kullanır: İsteği göndermek ve almak için XML biçimi ve dolayısıyla veriler platformdan bağımsız verilerdir. SOAP mesajları, sağlayıcı uygulamalar ile 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, REpresentational State Transfer (Temsili Durum Transferi) anlamına gelir; genellikle HTTP üzerinden çalışan bir mimaridir. REST stili, sınırlı sayıda işlemle geliş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 REST bazı durumlarda basit URL kullanır. SOAP'ın aksine, RESTFUL uygulamaları meta bilgileri taşımak için HTTP yerleşik başlıklarını kullanır.

REST'in, kullanıcının API'ye erişimi olup olmadığını belirlemek için kullandığı çeşitli kodlar vardır; kod 200 veya 201, yanıt gövdesiyle başarılı etkileşimi belirtirken 400, hatalı bir isteği veya istek URI'sinin sistemdeki API'lerle eşleşmediğini gösterir. Tüm API istek parametreleri ve yöntem parametreleri ya aracılığıyla gönderilebilir POST or GET değişkenler.

Rest API, WebServices API Testi için hem XML hem de JSON formatını destekler. Genellikle bunun için tercih edilir Telefon ve web uygulamaları, uygulamanın daha hızlı ve sorunsuz çalışmasını sağlar

wsdl

WSDL (Web Hizmetleri Description Dili), bir web hizmeti tarafından sunulan hizmetleri tanımlamak için kullanılacak XML tabanlı bir dildir.

WSDL, belirli bir web hizmeti tarafından sunulan tüm işlemleri XML formatında açıklar. Aynı zamanda 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ı da tanımlar.

Bir Web Hizmeti nasıl test edilir?

Web hizmetini test etmek için şunları yapabilirsiniz:

  1. Manuel Olarak Test Et
  2. Kendi Otomasyon Kodunuzu oluşturun
  3. SoapUI gibi kullanıma hazır bir otomasyon aracı kullanın.

Web Hizmetleri Otomasyon Testi aşağıdaki adımları içerir:

  1. WSDL dosyasını anlayın
  2. Belirli bir web hizmetinin sağladığı işlemleri belirleyin
  3. Göndermemiz gereken XML istek formatını belirleyin
  4. Yanıt XML biçimini belirleme
  5. İsteği göndermek ve yanıtı doğrulamak için bir araç kullanma veya kod yazma

Para Birimi Dönüştürme Kolaylığı sağlayan web servisini test etmek istediğimizi varsayalım. Farklı ülkelerin para birimleri arasındaki mevcut dönüşüm oranları olacaktır. Değerleri bir para biriminden diğer para birimine dönüştürmek için uygulamalarımızda kullanabileceğimiz bu hizmettir.

Ş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 Convertor WSDL dosyası görülebilir @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl) Para Birimi hakkında bilgi verecek ConvertoDestekleyeceği web servis yöntemleri, geçirmemiz gereken parametre ve parametre türleri… vb.

WSDL ve işlemleri ve XML formatlarını belirleme

WSDL ve işlemleri ve XML formatlarını belirleme

Adım 5: İsteği göndermek ve yanıtı doğrulamak için bir araç kullanma veya kod yazma

SOAP web hizmetini test etmek için çok sayıda Web Hizmeti Test aracı mevcuttur. SoapUI en popülerlerden biri API aracı bu da SOAP web servislerini test etmemize yardımcı olacak. Aslında, XML isteğini http üzerinden web servis sağlayıcı uygulamasına gönderebilen ve yanıt XML'sini beklenen sonuca göre ayrıştırıp doğrulayabilen herhangi bir programlama dilini kullanabilirsiniz. Bu Web Hizmetleri Testi eğitiminde Web Hizmetini test edeceğiz

  1. kullanma Java
  2. SoapUI'yi kullanma

BÖLÜM 1) Apache Axis2 API Kullanarak Web Hizmeti Testi (Java).

Genellikle web servisi isteği alır ve yanıtı XML formatında gönderir.

Apache Axis2 API projesi bir Java hem sunucu tarafı (hizmet sağlayıcı) hem de istemci tarafı (hizmet tüketicisi) için Web hizmetleri oluşturmak için kullanılacak uygulama API'si.

Axis2, SOAP mesajları gönderme ve SOAP mesajlarını Alma ve İşleme yeteneğine sahiptir. Küçük bir şey yazabiliriz Java Web hizmetini oluşturmak için API'yi kullanan program. Axis2, WSDL'yi şuradan oluşturacaktır: Java Web hizmeti tarafından sunulan hizmetlerin iletilmesinde kullanılacak program. Oluşturmak için aynı Axis2'yi kullanabiliriz. Java Web servis isteğini oluşturmak, isteği hizmet uç noktasına göndermek ve yanıtı işlemek için istemci programı olarak kullanabileceğimiz WSDL dosyasından class (saplama).

  1. Temel olarak basit bir oluşturacağız Java saplama sınıfını başlatacağımız program.
  2. Saplamayı kullanarak gerekli tüm bilgileri ileterek istek yöntemini çağıracağız.
  3. Stub programı bu isteği XML istek formatına dönüştürecek ve isteği okuyacak ve isteği işleyecek ve yanıtı XML biçiminde gönderecek olan hizmet uç noktasına gönderecektir.
  4. XML yanıtı şuna dönüştürülecek: Java saplamalarla sınıf ve gerçek programa geri döndü.

Yukarıdaki adımlara ayrıntılı olarak bakalım

Adım a) axis2 API'sini indirin @ https://axis.apache.org/axis2/Java/core/download.cgi & 'AXIS2_HOME' ortam değişkenini ayarlayın

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Adım b) Oluşturulan tüm eserleri saklayacak bir klasör oluşturun

Örn: C:\Axis\Projects\CurrencyConverter

Adım c) Komut istemini açın ve eserleri oluşturmak istediğiniz klasör yapısına gidin ve taslakları oluşturacak olan 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

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Adım d) Komut başarıyla çalıştırıldığında gerekli dosyaların bulunduğu klasörü göreceksiniz.

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Adım e) Bu Web Hizmetleri Test eğitiminin bir sonraki adımında, oluşturulan taslakları kullanarak gerçek isteği göndereceğimiz istemci programını oluşturmamız gerekiyor. Eclipse'i açın ve yeni Java projeyi açın ve yukarıda oluşturduğumuz klasörü seçin.

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Adım f) axis2 yazılım klasörünün lib klasöründe bulunacak olan tüm axis2 ile ilgili jar'ları proje oluşturma yoluna ekleyin

(örneğin: C:\Axis\axis2-1.6.2\lib)

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Adım g) Yeni bir tane oluşturun Java sınıf (örneğin: Client.Java) ve saplama nesnesini başlatın. Saplama nesnesini kullanarak belirli bir Web Hizmetinin desteklenen tüm yöntemlerini çağırabiliriz.

Apache Axis2 API Kullanarak Web Hizmeti Testi (Java)

Client.Java Program
package 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[]) {

  try {

       //Create the stub object by passing the service end point url
       CurrencyConvertorStub stub = new CurrencyConvertorStub("http://www.webservicex.net/CurrencyConvertor.asmx");
       //ConversionRate is the class which we have to use mention the from and to currency
       //ConversionRate object will be the parameter for the conversionRate operation
       ConversionRate conversionRate = new ConversionRate();
       conversionRate.setFromCurrency(Currency.USD);
       conversionRate.setToCurrency(Currency.INR);

       //Create the ConversionRateResponse object, which is going to be used to catch the response
       //call the conversionRate service using the stub object
       ConversionRateResponse conversionRateResponse = stub.conversionRate(conversionRate);

       //We can use the conversionRateResponse object to retrieve the response of the ConversionRate Service
       System.out.println("Conversion Rate from INR to USD : " + conversionRateResponse.getConversionRateResult());

       } catch (Exception e) {
       e.printStackTrace();
      }
    }
}

BÖLÜM 2) SoapUI Web Hizmetini Kullanarak Test Etme

SoapUI'da

  1. Dosya > Yeni Sabun Projesi'ne gidin
  2. Proje Adını ve WSDL URI konumunu girin
  3. Tamam'ı tıklayın.

SoapUI Web Hizmetini Kullanarak Test Etme

  1. İlk isteği genişletin ve 'Request1' üzerine çift tıklayın. SOAP isteğini XML formatında görüntüleyecektir.
  2. Para Biriminden ve Para Birimi'ne girin
  3. Gönder düğmesine tıklayın
  4. Yanıt XML'i sağ taraftaki bölmede görüntülenecektir.

SoapUI Web Hizmetini Kullanarak Test Etme

Sonuç olarak, SoapUI gibi Web Hizmeti Test araçlarının kullanılması Web Hizmetleri Otomasyon Test Çalışmaları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şinde bulunur
  • SOAP ve REST, 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 tanımlamak için kullanılacak XML tabanlı dildir. SOAP, WSDL kullanılarak tanımlanır.
  • WebService'i test etmek için şunları yapabilirsiniz:
    • Kendi kodunuzu oluşturun. Örneğin Axis2 API'sini kullanın Java
    • SoapUI gibi WebService Test Otomasyon araçlarını kullanın
  • SoapUI gibi Otomasyon Araçları, Web Hizmetleri Otomasyon Testi çalışmalarınızı hızlı bir şekilde başlatacak ve Axis2 API'yi kullanarak kendi kodunuzu oluşturmaya kıyasla daha az kodlama çabası gerektirecektir.

SSS

İnternet servisi Web API'sı
W3C tarafından tanımlanan tüm iletişim ve veri alışverişi XML'e dayalıdır Web API iletişimi ve veri alışverişi XML, JSON veya düz veri olabilir
Tanımlanmış standartlara sahiptir – WSDL Tanımlanmış standart yok
Verileri sıkıştıramazsınız ancak HTML isteğini sıkıştırabilirsiniz Verileri sıkıştırabilirsiniz
Örnek: SABUN Örnek: REST

Hakkında daha fazla bilgi alın Web API Testi

Bu Web Hizmetleri Testi eğitimi Sayın Narender Reddy Nukala'nın katkılarıyla mümkün olmuştur.

Bu yazıyı şu şekilde özetleyin: