Co to jest usługa sieciowa?
Usługi sieciowe to mechanizm lub środek komunikacji, za pośrednictwem którego dwie aplikacje / maszyny będą wymieniać dane niezależnie od ich architektury i technologii.
Co to jest testowanie usług internetowych?
Testowanie usług sieci Web to rodzaj testowania oprogramowania, który sprawdza poprawność usług sieci Web. Celem testowania usług sieci Web jest sprawdzenie funkcjonalności, niezawodności, wydajności i bezpieczeństwa API (Application Program Interface). Testowanie usług sieci Web jest w niektórych przypadkach podobne do testów jednostkowych. Możesz ręcznie przetestować usługę sieciową lub utworzyć własny kod automatyzacji lub skorzystać z gotowego narzędzia do automatyzacji, takiego jak Postman.
Dlaczego potrzebna jest usługa sieciowa?
Ogólnie rzecz biorąc, aplikacje programistyczne są opracowywane z myślą o ludziach, gdzie osoba wysyła żądanie do usługi oprogramowania, która z kolei zwraca odpowiedź w formacie czytelnym dla człowieka.
We współczesnej erze technologii, jeśli chcesz zbudować aplikację, nie musisz budować wszystkiego od zera. Dostępnych jest wiele gotowych usług, które możesz podłączyć do swojej aplikacji i rozpocząć świadczenie tych usług w swojej aplikacji.
Na przykład chcesz wyświetlić informacje o prognozie pogody, których nie musisz gromadzić, przetwarzać i renderować danych w swojej aplikacji. Możesz kupić usługi od osób, które mają już ugruntowaną pozycję w przetwarzaniu i publikowaniu tego typu danych.
Usługi internetowe pozwalają nam na tego typu implementacje.
Jako przykład rozważmy następującą usługę WebService
http://www.webservicex.net/stockquote.asmx?op=GetQuote
Daje wartość akcji dla firmy.
Znajdźmy cenę akcji dla Google (symbol: GOOG)
XML odpowiedzi podaje cenę akcji.
Ta usługa sieciowa może być wywoływana przez aplikację korzystającą z protokołu SOAP lub HTTP.
Protokoły usług internetowych
Usługi sieci Web można zaimplementować na różne sposoby, ale poniższe dwa to popularne podejścia do implementacji.
- SOAP (Simple Object Access Protocol)
- REST (architektura Representational State Transfer)
MYDŁO
SOAP to standardowy protokół zdefiniowany przez W3C Standard do wysyłania i odbierania żądań i odpowiedzi usług internetowych.
SOAP używa formatu XML do wysyłania i odbierania żądania, a zatem dane są danymi niezależnymi od platformy. Komunikaty SOAP są wymieniane między aplikacjami dostawcy i aplikacją odbierającą w kopertach SOAP.
Ponieważ SOAP używa prostego protokołu transportowego http, jego wiadomości nie są blokowane przez zapory ogniowe.
ODPOCZYNEK
REST oznacza REpresentational State Transfer; jest to architektura, która generalnie działa przez HTTP. Styl REST kładzie nacisk na interakcje między klientami a usługami, które są wzmacniane przez ograniczoną liczbę operacji. REST jest alternatywą dla SOAP (Simple Object Access Protocol) i zamiast używać XML do żądania, REST używa w niektórych przypadkach prostego adresu URL. W przeciwieństwie do SOAP, aplikacje RESTFUL używają wbudowanych nagłówków HTTP do przenoszenia metainformacji.
Istnieją różne kody, których REST używa do określenia, czy użytkownik ma dostęp do API, czy nie, jak kod 200 lub 201 wskazuje na udaną interakcję z treścią odpowiedzi, podczas gdy 400 wskazuje na złe żądanie lub identyfikator URI żądania nie pasuje do funkcji API w systemie. Wszystkie parametry żądań API i parametry metod mogą być wysyłane za pośrednictwem zmiennych POST lub GET .
Rest API obsługuje zarówno format XML, jak i JSON do testowania interfejsu API usług WebServices. Zwykle jest preferowany w przypadku aplikacji mobilnych i internetowych, ponieważ sprawia, że aplikacja działa szybciej i płynniej
WSDL
WSDL (język opisu usług sieci Web) to język oparty na języku XML, który będzie używany do opisu usług oferowanych przez usługę sieciową.
WSDL opisuje wszystkie operacje oferowane przez określoną usługę sieciową w formacie XML. Określa również, jak można wywołać usługi, tj. Jaką wartość wejściową musimy podać i jaki będzie format odpowiedzi, którą wygeneruje dla każdego rodzaju usługi.
Jak przetestować usługę internetową?
Aby przetestować usługę internetową, możesz
- Przetestuj ręcznie
- Stwórz swój własny kod automatyzacji
- Użyj gotowego narzędzia do automatyzacji, takiego jak SoapUI.
Testowanie automatyzacji usług sieci Web obejmuje następujące kroki -
- Zapoznaj się z plikiem WSDL
- Określ operacje, które zapewnia określona usługa sieciowa
- Określ format żądania XML, który musimy wysłać
- Określ format XML odpowiedzi
- Użycie narzędzia lub napisanie kodu w celu wysłania żądania i sprawdzenia odpowiedzi
Załóżmy, że chcemy przetestować usługę internetową, która zapewnia narzędzie do przeliczania walut. Będzie to aktualne kursy wymiany między walutami różnych krajów. Tej usługi możemy używać w naszych aplikacjach do przeliczania wartości z jednej waluty na drugą.
Spójrzmy teraz na powyższe kroki
Krok 1 do 4: Zrozumienie WSDL i określenie operacji i formatów XML
Plik WSDL konwertera walut można zobaczyć @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl), który zawiera informacje o metodach usługi internetowej Currency Convertor, które będzie obsługiwać, parametrze, który musimy przekazać oraz rodzaj parametrów
… ItdKrok 5: Użycie narzędzia lub napisanie kodu w celu wysłania żądania i sprawdzenia odpowiedzi
Dostępnych jest wiele narzędzi WebService Test do testowania usługi sieciowej SOAP. SoapUI to jedno z popularnych narzędzi API, które pomoże nam przetestować usługi sieciowe SOAP. W rzeczywistości możesz użyć dowolnego języka programowania, który jest w stanie wysłać żądanie XML do aplikacji dostawcy usług internetowych przez http i jest w stanie przeanalizować i zweryfikować odpowiedź XML pod kątem oczekiwanego wyniku. W tym samouczku dotyczącym testowania usług sieci Web przetestujemy usługę sieci Web
- Korzystanie z języka Java
- Korzystanie z SoapUI
CZĘŚĆ 1) Testowanie usług internetowych przy użyciu Apache Axis2 API (Java).
Zwykle usługa internetowa przyjmuje żądanie i wysyła odpowiedź w formacie XML.
Projekt Apache Axis2 API to API implementacji Java, które będzie używane do tworzenia usług sieciowych zarówno po stronie serwera (dostawca usług), jak i po stronie klienta (konsument usługi).
Axis2 może wysyłać komunikaty SOAP oraz odbiera i przetwarza komunikaty SOAP. Możemy napisać mały program w Javie używając API do stworzenia usługi sieciowej. Axis2 wygeneruje WSDL z programu Java, który będzie używany do komunikacji usług oferowanych przez serwis WWW. Możemy użyć tego samego Axis2 do wygenerowania klasy Java (stub) z pliku WSDL, którego możemy użyć jako programu klienckiego do wygenerowania żądania usługi sieciowej, wysłania żądania do punktu końcowego usługi i przetworzenia odpowiedzi.
- Zasadniczo stworzymy prosty program Java, w którym utworzymy instancję klasy pośredniczącej.
- Używając kodu pośredniczącego, wywołamy metodę request, przekazując wszystkie wymagane informacje.
- Program pośredniczący skonwertuje to żądanie na format żądania XML i wyśle do punktu końcowego usługi, który odczyta żądanie i przetwarza żądanie oraz wysyła odpowiedź w formacie XML.
- Odpowiedź XML zostanie przekonwertowana na klasę Java przez kod pośredniczący i zwrócona do właściwego programu.
Przyjrzyjmy się szczegółowo powyższym krokom
Krok a) Pobierz API axis2 @ https://axis.apache.org/axis2/Java/core/download.cgi & Ustaw zmienną środowiskową „AXIS2_HOME”
Krok b) Utwórz folder, aby zachować wszystkie wygenerowane artefakty
Np .: C: \ Axis \ Projects \ CurrencyConverter
Krok c) Otwórz wiersz polecenia i przejdź do struktury folderów, w której chcesz wygenerować artefakty, i uruchom następujące polecenie, które wygeneruje kody pośredniczące
% AXIS2_HOME% \ bin \ WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb -s
Krok d) Po pomyślnym uruchomieniu polecenia zobaczysz folder z wymaganymi plikami.
Krok e) W następnym kroku tego samouczka testowania usług sieci Web, musimy stworzyć program klienta, za pomocą którego wyślemy rzeczywiste żądanie przy użyciu wygenerowanych kodów pośredniczących. Otwórz eclipse i utwórz nowy projekt Java i wybierz folder, który utworzyliśmy powyżej.
Krok f) Dodaj wszystkie pliki jar związane z axis2 do ścieżki budowania projektu, która będzie tam w folderze lib folderu oprogramowania axis2
(na przykład: C: \ Axis \ axis2-1.6.2 \ lib)
Krok g) Utwórz nową klasę Java (np. Client.Java) i utwórz instancję obiektu zastępczego. Korzystając z obiektu stub możemy wywołać wszystkie obsługiwane metody danej usługi WebService.
Program Client.Javapakiet 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;klient klasy public {public static void main (Java.lang.String args []) {próbować {// Utwórz obiekt pośredniczący, przekazując adres URL punktu końcowego usługiCurrencyConvertorStub stub = new CurrencyConvertorStub ("http://www.webservicex.net/CurrencyConvertor.asmx");// ConversionRate to klasa, której musimy użyć, aby wspomnieć o walutach od i do// Obiekt ConversionRate będzie parametrem operacji conversionRateConversionRate conversionRate = new ConversionRate ();conversionRate.setFromCurrency (Currency.USD);conversionRate.setToCurrency (Currency.INR);// Utwórz obiekt ConversionRateResponse, który będzie używany do przechwytywania odpowiedzi// wywołanie usługi conversionRate przy użyciu obiektu stubConversionRateResponse conversionRateResponse = stub.conversionRate (conversionRate);// Możemy użyć obiektu convertRateResponse, aby pobrać odpowiedź usługi ConversionRateSystem.out.println ("Współczynnik konwersji z INR na USD: + conversionRateResponse.getConversionRateResult ());} catch (wyjątek e) {e.printStackTrace ();}}}
CZĘŚĆ 2) Jak testować za pomocą usługi internetowej SoapUI
W SoapUI
- Przejdź do Plik> Nowy projekt mydła
- Wprowadź nazwę projektu i położenie identyfikatora URI WSDL
- Kliknij OK
- Rozwiń pierwsze żądanie i kliknij dwukrotnie „Wniosek1”. Wyświetli żądanie SOAP w formacie XML.
- Wprowadź Od waluty i Do waluty
- Kliknij przycisk przesyłania
- XML odpowiedzi zostanie wyświetlony w prawym panelu.
Jak możesz podsumować, użycie narzędzi testowych usług sieci Web, takich jak SoapUI, przyspiesza wysiłek związany z testowaniem automatyzacji usług sieci Web. Stąd SoapUi będzie przedmiotem naszej nauki w kolejnych samouczkach.
Podsumowanie
- Aplikacje oprogramowania komunikują się i wymieniają dane między sobą za pomocą usługi sieci Web
- SOAP i REST to 2 popularne protokoły do tworzenia usługi sieciowej
- SOAP obsługuje wymianę danych w oparciu o XML
- REST obsługuje XML, Json lub wymianę danych w prostym adresie URL do testowania API usług WebServices.
- WSDL to język oparty na XML, który będzie używany do opisu usług oferowanych przez serwis WWW. SOAP jest definiowany za pomocą WSDL.
- Aby przetestować usługę WebService, możesz
- Stwórz swój własny kod. Na przykład użyj Axis2 API for Java
- Użyj narzędzi do automatyzacji testów WebService, takich jak SoapUI
- Narzędzia automatyzacji, takie jak SoapUI, przyspieszą wysiłki związane z testowaniem automatyzacji usług internetowych, będą wymagały mniej wysiłku związanego z kodowaniem w porównaniu do tworzenia własnego kodu za pomocą interfejsu API Axis2
FAQ
Jaka jest różnica między usługą WebService a interfejsem WebAPI?
Serwis internetowy |
Internetowy interfejs API |
|
|
|
|
|
|
|
|
Dowiedz się więcej o testowaniu internetowego interfejsu API
Ten samouczek dotyczący testowania usług internetowych jest możliwy dzięki wsparciu pana Narendera Reddy'ego Nukali