Web サービス テストのチュートリアル: テスト方法例で学ぶ
Webサービスとは何ですか?
Web サービスは、基盤となるアーキテクチャやテクノロジーに関係なく、2 つのアプリケーション/マシンがデータを交換するためのメカニズムまたは通信媒体です。
Webサービステストとは何ですか?
Webサービスのテスト Web サービスを検証するソフトウェア テストの一種です。 Web サービス テストの目的は、API (Application Program Interface) の機能、信頼性、パフォーマンス、セキュリティをチェックすることです。 Web サービスのテストは、場合によっては単体テストに似ています。 Web サービスを手動でテストすることも、独自の自動化コードを作成することも、次のような既製の自動化ツールを使用することもできます。 Postman.
なぜWebサービスが必要なのでしょうか?
一般的に、ソフトウェア アプリケーションは人間が使用するために開発されており、人間がソフトウェア サービスにリクエストを送信すると、ソフトウェア サービスが人間が判読できる形式で応答を返します。
テクノロジーの現代では、ソフトウェア アプリケーションを構築する場合、すべてを最初から構築する必要はありません。 アプリケーションにプラグインできる既製のサービスが多数あり、アプリケーション内でそれらのサービスの提供を開始できます。
たとえば、アプリケーションでデータを収集、処理、レンダリングする必要のない天気予報情報を表示したいとします。 このような種類のデータの処理と公開にすでに定評のある人々からサービスを購入できます。
Web サービスを使用すると、このような実装が可能になります。
例として、次のWebServiceを考えてみましょう。
http://www.webservicex.net/stockquote.asmx?op=GetQuote
それは企業の株式価値を与えます。
Googleの株価を調べてみましょう(シンボル:GOOG)
応答 XML で株価が得られます。
この WebService は、SOAP または HTTP プロトコルを使用してソフトウェア アプリケーションから呼び出すことができます。
Webサービスプロトコル
Web サービスはさまざまな方法で実装できますが、次の 2 つが一般的な実装アプローチです。
- SOAP(シンプルオブジェクトアクセスプロトコル)
- REST (表現状態転送アーキテクチャ)
石鹸
SOAP は、Web サービスの要求と応答を送受信するために W3C 標準によって定義された標準プロトコルです。
SOAP では、 リクエストを送受信するためのXML形式 したがって、データはプラットフォームに依存しないデータです。 SOAP メッセージは、プロバイダー アプリケーションと受信側アプリケーションの間で SOAP エンベロープ内で交換されます。
SOAP は単純な http トランスポート プロトコルを使用するため、そのメッセージはファイアウォールによってブロックされません。
REST
REST は REpresentational State Transfer の略で、一般的に HTTP 上で実行されるアーキテクチャです。REST スタイルは、クライアントとサービス間のやり取りを重視しており、限られた数のオペレーションによって強化されています。REST は SOAP (Simple Object Access Protocol) の代替であり、リクエストに XML を使用する代わりに、REST では単純な URL を使用する場合もあります。SOAP とは異なり、RESTFUL アプリケーションでは、メタ情報を伝達するために HTTP 組み込みヘッダーを使用します。
ユーザーが API にアクセスできるかどうかを判断するために REST が使用するさまざまなコードがあります。たとえば、コード 200 または 201 は応答本文との対話が成功したことを示し、コード 400 は不正なリクエストまたはリクエスト URI がシステム内の API と一致しないことを示します。 すべての API リクエスト パラメータとメソッド パラメータは、次のいずれかを介して送信できます。 POST or GET 変数。
Rest API は、WebServices API テスト用に XML 形式と JSON 形式の両方をサポートしています。 通常は次のような場合に好まれます。 モバイル アプリの動作がより高速かつスムーズになるため、Web アプリも可能になります
wsdl
WSDL (Webサービス DescriptXML (ion Language) は、Web サービスによって提供されるサービスを記述するために使用される XML ベースの言語です。
WSDL は、特定の Web サービスが提供するすべての操作を XML 形式で記述します。また、サービスを呼び出す方法、つまり、提供する必要がある入力値や、各種類のサービスに対して生成される応答の形式も定義します。
Web サービスをテストするにはどうすればよいですか?
Web サービスをテストするには、次のことができます。
- 手動でテストする
- 独自の自動化コードを作成する
- SoapUI などの既製の自動化ツールを使用します。
Webサービス自動化テストには次の手順が含まれます。
- WSDLファイルを理解する
- 特定のWebサービスが提供する操作を決定する
- 送信する必要がある XML リクエスト形式を決定する
- 応答の XML 形式を決定する
- ツールを使用するかコードを作成してリクエストを送信し、レスポンスを検証する
通貨変換機能を提供する Web サービスをテストしたいとします。 さまざまな国の通貨間の現在の換算レートになります。 このサービスは、ある通貨から別の通貨に値を変換するためにアプリケーションで使用できます。
上記の手順を見てみましょう
ステップ 1 ~ 4: WSDL を理解し、操作と XML 形式を決定する
通貨 Convertor WSDL ファイルが表示されます @ (http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
) 通貨に関する情報が得られます Convertor サポートする Web サービスのメソッド、渡す必要があるパラメータ、パラメータのタイプなど。
ステップ 5: ツールを使用するかコードを作成してリクエストを送信し、レスポンスを検証する
SOAP Web サービスをテストするために使用できる WebService テスト ツールが多数あります。 SoapUI は人気のあるものの XNUMX つです APIツール これは、SOAP Web サービスをテストするのに役立ちます。 実際、http 経由で Web サービス プロバイダー アプリケーションに XML リクエストを送信でき、期待される結果に対して応答 XML を解析して検証できる任意のプログラミング言語を使用できます。 この Web サービス テスト チュートリアルでは、WebService をテストします。
- 使い方 Java
- SoapUI の使用
パート 1) Apache Axis2 API を使用した Web サービスのテスト (Java).
通常、Web サービスはリクエストを受け取り、XML 形式でレスポンスを送信します。
Apache Axis2 API プロジェクトは、 Java 実装 API。サーバー側 (サービス プロバイダー) とクライアント側 (サービス コンシューマー) の両方の Web サービスを作成するために使用されます。
Axis2はSOAPメッセージを送信し、受信して処理することができます。 Java APIを使用してWebサービスを作成するプログラム。Axis2はWSDLを生成し、 Java ウェブサービスが提供するサービスを通信するために使用するプログラムです。同じAxis2を使用して、 Java WSDL ファイルからのクラス (スタブ)。これをクライアント プログラムとして使用して、Web サービス要求を生成し、要求をサービス エンドポイントに送信し、応答を処理します。
- 基本的にはシンプルな Java スタブクラスをインスタンス化するプログラム。
- スタブを使用して、必要な情報をすべて渡してリクエスト メソッドを呼び出します。
- スタブ プログラムはそのリクエストを XML リクエスト形式に変換し、サービス エンド ポイントに送信します。サービス エンド ポイントはリクエストを読み取って処理し、XML 形式で応答を送信します。
- XMLレスポンスは次のように変換されます。 Java スタブによってクラスが分割され、実際のプログラムに戻されます。
上記の手順を詳しく見てみましょう
ステップ a) axis2 API をダウンロードします @ https://axis.apache.org/axis2/Java/core/download.cgi 環境変数「AXIS2_HOME」を設定する(&)
ステップ b) 生成されたすべてのアーティファクトを保存するフォルダーを作成します。
例: C:\Axis\Projects\CurrencyConverter
ステップc) コマンドプロンプトを開き、成果物を生成するフォルダ構造に移動し、次のコマンドを実行してスタブを生成します。
%AXIS2_HOME%\bin\WSDL2Java -uri http://www.webservicex.net/CurrencyConvertor.asmx?wsdl -p org.apache.axis2.currencyconvertor -d adb –s
ステップ d) コマンドが正常に実行されると、必要なファイルが含まれるフォルダーが表示されます。
ステップe)このWebサービステストチュートリアルの次のステップでは、生成されたスタブを使用して実際のリクエストを送信するクライアントプログラムを作成する必要があります。Eclipseを開き、新しい Java プロジェクトを開き、上記で作成したフォルダーを選択します。
ステップ f) すべての axis2 関連の jar をプロジェクトのビルド パスに追加します。これは、axis2 ソフトウェア フォルダーの lib フォルダーにあります。
(例: C:\Axis\axis2-1.6.2\lib)
ステップg) 新規作成 Java クラス (例: Client)。Java) を呼び出してスタブ オブジェクトをインスタンス化します。スタブ オブジェクトを使用すると、特定の WebService のサポートされているすべてのメソッドを呼び出すことができます。
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(); } } }
パート 2) SoapUI Web サービスを使用してテストする方法
SoapUI 内
- [ファイル] > [新しい Soap プロジェクト] に移動します。
- プロジェクト名と WSDL URI の場所を入力します。
- [OK]をクリックします。
- 最初のリクエストを展開し、「Request1」をダブルクリックします。SOAP リクエストが XML 形式で表示されます。
- 開始通貨と終了通貨を入力します
- 送信ボタンをクリックします
- 応答 XML が右側のペインに表示されます。
結論として、SoapUI などの Web サービス テスト ツールを使用すると、Web サービス自動化テストの作業が迅速化されます。 したがって、後続のチュートリアルでは SoapUi が学習の焦点となります。
まとめ
- ソフトウェア アプリケーションは、WebService を使用して相互に通信し、データを交換します。
- SOAP と REST は、WebService を作成するための 2 つの一般的なプロトコルです
- SOAP は XML ベースのデータ交換をサポートします
- REST は、Web サービス API テスト用の XML、Json、または単純な URL でのデータ交換をサポートします。
- WSDL は、Web サービスによって提供されるサービスを記述するために使用される XML ベースの言語です。 SOAP は WSDL を使用して定義されます。
-
WebService をテストするには、次のことができます
- 独自のコードを作成します。たとえば、Axis2 APIを使用して Java
- SoapUI などの WebService テスト自動化ツールを使用する
- SoapUI などの自動化ツールは、Web サービス自動テストの取り組みを活性化し、Axis2 API を使用して独自のコードを作成する場合に比べてコーディングの手間が少なくなります。
よくある質問
詳細については、こちらから Web APIテスト
この Web サービス テスト チュートリアルは、Narender Reddy Nukala 氏の貢献によって可能になりました。