Soapui-quick-guide

提供:Dev Guides
移動先:案内検索

SOAP-はじめに

SOAPは、Simple Object Access Protocolの頭字語です。 https://www.w3.org/TR/2000/NOTE-SOAPのWorld Wide Web Consortium(W3C)によって定義されています-20000508次のように-

SOAPは、分散型の分散環境で情報を交換するための軽量プロトコルです。 これは、3つの部分で構成されるXMLベースのプロトコルです。メッセージの内容とその処理方法を記述するフレームワークを定義するエンベロープ。アプリケーション定義のデータ型のインスタンスを表現するためのエンコーディングルールのセット。リモートプロシージャコールと応答を表すための規則。

SOAP-重要な機能

以下は、SOAPのいくつかの重要な機能です。

  • これは、インターネット経由で通信するように設計された通信プロトコルです。
  • XMLメッセージング用にHTTPを拡張できます。
  • Webサービスのデータ転送を提供します。
  • 完全なドキュメントを交換するか、リモートプロシージャを呼び出すことができます。
  • メッセージのブロードキャストに使用できます。
  • プラットフォームにも言語にも依存しません。
  • これは、送信される情報と方法を定義するXMLの方法です。
  • これにより、クライアントアプリケーションはリモートサービスに簡単に接続し、リモートメソッドを呼び出すことができます。

SOAPはさまざまなメッセージングシステムで使用でき、さまざまな転送プロトコルを介して配信できますが、SOAPの最初の焦点はHTTPを介して転送されるリモートプロシージャコールです。 CORBA、DCOM、Java RMIなどの他のフレームワークは、SOAPと同様の機能を提供しますが、SOAPメッセージは完全にXMLで記述されているため、プラットフォームおよび言語に依存しません。

SOAP-メッセージ

SOAPメッセージは、次の要素を含む通常のXML文書です-

  • エンベロープ-メッセージの開始と終了を定義します。 これは必須要素です。
  • ヘッダー-中間点または最終エンドポイントで、メッセージの処理に使用されるメッセージのオプション属性が含まれます。 これはオプションの要素です。
  • Body -送信されるメッセージを構成するXMLデータが含まれます。 これは必須要素です。
  • Fault -メッセージの処理中に発生したエラーに関する情報を提供するオプションのFault要素。

これらすべての要素は、SOAPエンベロープのデフォルト名前空間で宣言されています-

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

SOAPエンコーディングとデータ型のデフォルトの名前空間は-

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

-これらの仕様はすべて変更される可能性があります。 したがって、W3 Webサイトで入手可能な最新の仕様で更新してください。

SOAP-メッセージ構造

次のブロックは、SOAPメッセージの一般的な構造を示しています-

<?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>

SOAP-RESTとは何ですか?

RESTは、Representational State Transferの頭字語です。 ソフトウェアを設計するアーキテクチャスタイルとして定義できます。 RESTは仕様でもW3C標準でもありません。 したがって、RESTfulサービスを使用する方が簡単です。 ミドルウェア仕様フレームワークは必要ありません。

REST-重要な機能

以下は、RESTの重要な機能です。

  • これは、ステートレスなクライアント/サーバー、キャッシュ可能な通信プロトコルに依存しています。事実上すべての場合、HTTPが使用されます。
  • SOAP-WSDLのようなWebServiceおよびRPC(リモートプロシージャコール)の軽量の代替です。
  • 一意のIDまたはURIですべてを表します。
  • GET、POST、PUT、DELETEなどの標準HTTPメソッドを使用します。
  • ソースをリンクします。
  • RESTリソースには複数の表現を含めることができます。
  • 名前付き情報はすべてリソースと見なされます。 例:画像、人物、文書などはすべてリソースの例と見なされ、一意のIDまたはURIとして表されます。
  • HTTPに基づくWorld Wide Web自体は、RESTベースのアーキテクチャと見なすことができます。

RESTサービスはプラットフォームと言語に依存しません。 HTTP標準に基づいているため、ファイアウォールの存在下でも簡単に機能します。 WebServicesと同様に、RESTは組み込みのセキュリティ、セッション管理、QoS保証を提供しませんが、HTTPの上に構築することでこれらを追加できます。 暗号化には、RESTをHTTPSの上で使用できます。

SoapUI-はじめに

SoapUIは、機能テストと非機能テストの両方に使用できるツールです。 Webサービスのテストで使用される事実上のツールですが、Webサービスに限定されません。

SoapUI-重要な機能

以下は、SoapUIの重要な機能です。

  • クライアントとサービスの両方の役割を実行できます。
  • ユーザーは、単一の環境を使用して、機能テストと非機能テストを迅速かつ効率的に作成できます。
  • GNU Leaser General Public License(LGPL)の条件の下でライセンスされています。
  • JAVAプラットフォームを使用して純粋に実装されます。
  • Windows、Mac、複数のLinux方言をサポートしています。
  • テスターは、自動化された機能、リグレッション、コンプライアンス、および負荷テストを異なるWeb APIで実行できます。
  • すべての種類のAPIをテストするために、すべての標準プロトコルとテクノロジーをサポートしています。

SoapUIを使用して、完全なRESTful APIおよびSOAP Webサービスのテストをテストできます。 機能テスト、パフォーマンステスト、相互運用性テスト、回帰テスト、負荷テストなどをサポートしています。

ユーザーフレンドリーであり、機能テストを負荷、ストレステストなどの非機能テストに簡単に変換できます。

SoapUI-機能

SoapUIは、次の5つの側面が豊富です-

  • 機能テスト
  • セキュリティテスト
  • 負荷テスト
  • プロトコルとテクノロジー
  • 他のツールとの統合

これらの各機能について詳しく見ていきましょう。

機能テスト

  • SoapUIを使用すると、テスターはSoapUIで機能的なAPIテストを作成できます。
  • SoapUIは、スクリプトの開発を加速するドラッグアンドドロップ機能をサポートしています。
  • SoapUIはテストのデバッグをサポートし、テスターがデータ駆動テストを開発できるようにします。
  • SoapUIは複数の環境をサポートしているため、QA、Dev、およびProd環境を簡単に切り替えることができます。
  • SoapUIでは、高度なスクリプトを作成できます(テスターはシナリオに応じてカスタムコードを開発できます)。

セキュリティテスト

  • SoapUIは、脆弱性スキャンの完全なセットを実行します。
  • SoapUIは、データベースを保護するためのSQLインジェクションを防ぎます。
  • SoapUIは、サイズの大きなドキュメントによって引き起こされるスタックオーバーフローをスキャンします。
  • SoapUIは、クロスサイトスクリプティングをスキャンします。これは、サービスパラメーターがメッセージで公開されるときに発生します。
  • SoapUIは、ファジングスキャンとバウンダリスキャンを実行して、サービスの不安定な動作を回避します。

負荷テスト

  • SoapUIは、n個のLoadUIエージェントに負荷テストを分散します。
  • SoapUIは、大量の実世界の負荷テストを簡単にシミュレートします。
  • SoapUIを使用すると、高度なカスタムレポートでパフォーマンスパラメータを取得できます。
  • SoapUIを使用すると、エンドツーエンドのシステムパフォーマンスを監視できます。

プロトコルとテクノロジー

SoapUIは幅広いプロトコルをサポートしています-

  • SOAP –シンプルオブジェクトアクセスプロトコル
  • WSDL – Webサービス定義言語
  • REST –代表的な状態の転送
  • HTTP –ハイパーテキスト送信プロトコル
  • HTTPS –ハイパーテキスト送信プロトコルのセキュリティ保護
  • AMF –アクションメッセージの形式
  • JDBC – Javaデータベース接続
  • JMS – Java Messaging Service

他のツールとの統合

  • Apache Mavenプロジェクト
  • ハドソン
  • JUnit
  • Apache – Antなど…。

SoapUI-NG Pro

SoapUIは、テストの基本機能を備えたオープンソースの無料バージョンツールです。SoapUING Proは、レポート、データ駆動型機能などの高度な機能を備えた商用ツールです。

比較

次の表は、SoapUIとSoapUI NG Proのさまざまな機能を比較対照しています。

特徴

SoapUI

SoapUI NG Pro

サポートされるテクノロジー

SOAP

Yes

Yes

WSDL/WADL

Yes

Yes

REST

Yes

Yes

JMS

Yes

Yes

AMF

Yes

Yes

JDBC

Yes

Yes

HTTP

Yes

Yes

一般的な機能

スタンドアロンアプリケーション

Yes

Yes

マルチ環境サポート

No

Yes

フローティングライセンス

No

Yes

WSDLカバレッジ

No

Yes

リクエスト/レスポンスの範囲

No

Yes

メッセージアサーション

Yes

Yes

リファクタリングのテスト

No

Yes

複数のテストを実行する

Yes

Yes

データソース駆動テスト

No

Yes

スクリプトライブラリ

No

Yes

ユニットレポート

No

Yes

手動テスト手順

Yes

Yes

報告

Junitレポート

No

Yes

レポートデータのエクスポート

No

Yes

WSDL HTMLレポート

Yes

Yes

テストスイートのカバレッジ

No

Yes

テストケースカバレッジ

No

Yes

アサーションカバレッジ

No

Yes

メッセージ録音範囲

No

Yes

SoapUI-インストールと構成

SoapUIはクロスプラットフォームツールです。 Windows、Linux、およびMacオペレーティングシステムをサポートしています。

前提条件

  • プロセッサ-1GHz以上の32ビットまたは64ビットプロセッサ。
  • RAM -512MBのRAM。
  • ハードディスク容量-インストール用の最小200MBのハードディスク容量。
  • オペレーティングシステムのバージョン-Windows XP以降、MAC OS 10.4以降。
  • JAVA -JAVA 6以降。

ダウンロードプロセス

  • ステップ1 *-https://www.soapui.org/[www.soapui.org]に移動し、[SoapUIのダウンロード]をクリックします。

ダウンロード

  • ステップ2 *-[Get It]をクリックして、SoapUI Open Sourceをダウンロードします。 システムに112MBの.exeファイルのダウンロードが開始されます。 ダウンロードプロセスが完了するまで待ちます。

ダウンロードのテスト

インストールプロセス

  • ステップ1 *-ダウンロード後、.exeファイルを「管理者として実行」として実行します。

Exe File

次のスクリーンショットに示すように、Windowsはセットアッププロセスを開始します。

インストールウィザード

  • ステップ2 *-設定が完了すると、プロセスウィンドウに次の画面が表示され、[次へ]をクリックします。

プロセスウィンドウ

  • ステップ3 *-ライセンス契約に同意して、[次へ]をクリックします。

ライセンス契約

  • ステップ4 *-インストールディレクトリを選択するか、システムが選択したデフォルトパスのままにします。 Nextをクリックしてください。

インストールディレクトリ

  • ステップ5 *-インストールするコンポーネントを選択します。 Nextをクリックしてください。

コンポーネント

  • ステップ6 *-HermesJMSのライセンス契約に同意し、[次へ]をクリックします。

エルメスのライセンス

  • ステップ7 *-チュートリアルを保存するターゲットディレクトリを選択し、[次へ]をクリックします。

ターゲットディレクトリ

  • ステップ8 *-スタートメニューフォルダーの場所を選択するか、デフォルトの場所をそのままにして[次へ]をクリックします。

デフォルトの場所

  • ステップ9 *-「デスクトップアイコンの作成」チェックボックスを有効にして、「次へ」をクリックします。

デスクトップアイコン

これで、インストールが開始されます。 完了するまでに数分かかります。

インストール開始

  • ステップ10 *-インストールの完了後、次のウィザードで[完了]をクリックします。

インストーラー

[完了]をクリックすると、SoapUIが起動します。

  • メニューバー
  • ツールバー
  • プロジェクトナビゲーションバー
  • ワークスペースのプロパティ
  • ログパネル

はじめに

設定プロセス

最初のステップは、複数のプロジェクトを含むことができるワークスペースを作成することです。

  • ステップ1 *-[ファイル]→[新しいワークスペース]に移動します。

ワークスペース

  • ステップ2 *-ワークスペースの名前を追加し、[OK]をクリックします。

サンプルワークスペース

  • ステップ3 *-次に、ワークスペースxmlが保存されるパスを選択します。
  • ステップ4 *-パスを選択し、[保存]をクリックします。

新しいワークスペース

次のスクリーンショットに示すように、ワークスペースが作成されます。 ワークスペースのプロパティも表示されます。

プロパティ

SoapUI-WSDL

WSDLは、Webサービス記述言語の略です。 Webサービスを記述するための標準形式です。 WSDLは、MicrosoftとIBMが共同で開発しました。 WSDLは「wiz-dull」と発音され、「W-S-D-L」と綴られます。

WSDL─簡単な歴史

2001年3月に、XMLプロトコルに関するW3C XMLアクティビティのサービスを説明するために、WSDL 1.1がAriba、IBM、MicrosoftからW3C Noteとして提出されました。

WSDL 1.1はWorld Wide Web Consortium(W3C)によって承認されていませんが、勧告(公式標準)となるバージョン2.0のドラフトをリリースしたばかりであり、W3Cによって承認されています。

WSDL─注意点

WSDLは、分散および分散環境での情報交換のためのXMLベースのプロトコルです。 WSDLの他の機能のいくつかは次のとおりです-

  • WSDL定義は、Webサービスにアクセスする方法と、Webサービスが実行する操作を記述します。
  • これは、XMLベースのサービスとのインターフェイス方法を記述するための言語です。
  • これは、XMLベースの世界規模のビジネスレジストリであるUniversal Description、Discovery、and Integration(UDDI)の不可欠な部分です。
  • WSDLは、UDDIが使用する言語です。

WSDLの使用

WSDLは、インターネット経由でWebサービスを提供するために、SOAPおよびXMLスキーマと組み合わせて使用​​されることがよくあります。 Webサービスに接続するクライアントプログラムは、WSDLを読み取って、サーバーで使用可能な機能を判断できます。 使用される特別なデータ型は、XMLスキーマの形式でWSDLファイルに埋め込まれます。 その後、クライアントはSOAPを使用して、WSDLにリストされている関数の1つを実際に呼び出すことができます。

WSDLを理解する

WSDLは、Webサービスを3つの特定の識別可能な要素に分割し、定義すると結合または再利用できます。

個別に定義できるWSDLの3つの主要な要素は-

  • タイプ
  • オペレーション
  • 製本

WSDLドキュメントにはさまざまな要素がありますが、これらの3つの主要な要素に含まれており、個別のドキュメントとして開発し、それらを結合または再利用して完全なWSDLファイルを形成できます。

このチュートリアルでは、CurrencyConverter WSDLを使用しています:http://www.webservicex.net

フォーマットと要素

CurrencyConverter WSDLは次のようになります-

通貨コンバーター

レスポンス

バインディング要素

WSDL─ポートタイプ

<portType>要素は、複数のメッセージ要素を組み合わせて、完全な一方向または往復操作を形成します。 たとえば、<portType>は、1つの要求と1つの応答メッセージを1つの要求/応答操作に結合できます。 これは、SOAPサービスで最も一般的に使用されています。 portTypeは複数の操作を定義できます。

ポートタイプ

  • portType要素は、ConversionRateと呼ばれる単一の操作を定義します。
  • 操作は、単一の入力メッセージConversionRateHttpPostInで構成されます。 *出力メッセージの操作はConversionRateHttpPostOutです。

動作パターン

WSDLは、操作の4つの基本パターンをサポートしています-

一方通行

サービスはメッセージを受信します。 したがって、操作には単一の入力要素があります。 一方向操作の文法は-

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

リクエスト─レスポンス

サービスはメッセージを受信し、応答を送信します。 したがって、操作には1つの入力要素があり、その後に1つの出力要素があります。 エラーをカプセル化するために、オプションのfault要素も指定できます。 要求/応答操作の文法は次のとおりです-

<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>

要請─応答

サービスはメッセージを送信し、応答を受信します。 したがって、操作には1つの出力要素があり、その後に1つの入力要素が続きます。 エラーをカプセル化するために、オプションのfault要素も指定できます。 要請応答操作の文法は-

<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>

通知

サービスはメッセージを送信します。 したがって、操作には単一の出力要素があります。 以下は、通知操作の文法です-

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

WSDL─バインディングとサービス

*<binding>* 要素は、_portType_操作が実際にワイヤ経由で送信される方法に関する特定の詳細を提供します。
  • バインディングは、HTTP GET、HTTP POST、またはSOAPを含む複数のトランスポートを介して利用可能にできます。
  • バインディングは、portType操作の転送に使用されているプロトコルに関する具体的な情報を提供します。
  • バインディングは、サービスが配置されている場所の情報を提供します。
  • SOAPプロトコルの場合、バインディングは<soap:binding>であり、トランスポートはHTTPプロトコルの上にあるSOAPメッセージです。
  • 1つのportTypeに複数のバインディングを指定できます。

バインディングサービス

サービス

*<service>* 要素は、Webサービスでサポートされるポートを定義します。 サポートされているプロトコルごとに、1つのポート要素があります。 サービス要素はポートのコレクションです。

Webサービスクライアントは、サービス要素から以下を学ぶことができます-

  • サービスにアクセスする場所、
  • どのポートを介してWebサービスにアクセスするか、および
  • 通信メッセージの定義方法。

サービス要素には、人間が読めるドキュメントを提供するドキュメント要素が含まれています。

<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-プロジェクト

SoapUIプロジェクトは、すべてのSoapUIテストの中心点です。 プロジェクトが作成されると、ユーザーは機能テスト、負荷テスト、模擬サービスの作成などを作成して実行できます。

この章では、次の2つのことについて説明します。

  • SOAPプロジェクトを作成する
  • WSDLを追加する

SOAPプロジェクトを作成する

  • ステップ1 *-画面左側のナビゲーターで、[プロジェクト]を右クリックし、[新しいSOAPプロジェクト]を選択します。

SOAPプロジェクト

または、「ファイル」に移動して、「新規石鹸プロジェクト」を選択します。

ファイルの選択

選択すると、新しいポップアップウィンドウ-New Soap Projectが開きます。

ステップ2 *-*プロジェクト名:プロジェクト名を入力します-これはユーザー入力フィールドです。 *初期WSDL *:必須ではありません。 ユーザーによって異なります。 ユーザーは、WSDLを提供するか、プロジェクトの作成後に追加できます。

この場合、プロジェクトを作成し、WSDLを後で追加します。

プロジェクトの作成

  • ステップ3 *-[OK]をクリックします。 新しいプロジェクトが作成され、左側のナビゲーションパネルに表示されます。

ナビゲーションパネル

WSDLを追加する

SOAPプロジェクトはWSDLに基づいています。 WSDLをインポートすることから始める必要はありませんが、WSDLにはリクエストとレスポンスに関する情報、それらに含まれるものなど、Webサービスのテストに必要なすべての情報が含まれているため、テストが簡単になり、SoapUIテストが簡素化されます。

  • ステップ1 *-WSDLを追加するには、プロジェクト名(SOAP –例)を右クリックし、[WSDLの追加]を選択します。

WSDLの追加

選択すると、WSDLウィザードが表示されます。

ステップ2 *- WSDLの場所*:WSDLをhttp://www.webservicex.comとして入力するか、コンピューターから参照します。

  • ステップ3 *-WSDLが入力されるとすぐに、3つのチェックボックス-要求の作成、TestSuiteの作成、MockServiceの作成が有効になります。 要件に基づいて、ユーザーは1つまたは複数のチェックボックスをチェックできます。

デフォルトでは、リクエストの作成のチェックボックスがチェックされています。

リクエスト作成

  • ステップ4 *-[OK]をクリックします。 WSDLがプロジェクトに正常に追加されました。 左側のナビゲーションパネルを確認することで確認できます。 プロジェクト内には複数の操作があり、WSDLに従って要求が追加されます。

複数操作

詳細ビュー

プロジェクトの詳細を取得するには、プロジェクト名をダブルクリックすると、さまざまな詳細を含む新しいウィンドウが開きます。

概要タブでは、次のようなさまざまな情報が提供されます-

  • ファイルパス-保存されたプロジェクトxmlの場所を表示します。
  • インターフェースの概要-インターフェース名とそれに関連付けられたWSDL。
  • テストの概要-プロジェクトに追加されたテストスイート、テストケース、テストステップ、アサーションを表示します。

詳細ビュー

ユーザーは、インターフェース名をダブルクリックして、インターフェースの詳細を取得できます。 新しいウィンドウが開き、WSDL関連の情報が表示されます。 これらは、WSDLの参照と検査に非常に役立ちます。

[概要]タブには、WSDL定義、定義パーツ、および操作の詳細が一覧表示されます。

定義部

同様に、サービスエンドポイントにはエンドポイントの詳細が一覧表示されます。

エンドポイント

[WSDLコンテンツ]タブでは、次のスクリーンショットに示すように、XML/スキーマ形式のWSDLのすべての詳細が提供されます。

コンテンツタブ

SoapUI-TestSuite

*TestSuite* は、機能テストを論理ユニットにグループ化するために使用できるテストケースのコレクションです。 SoapUIプロジェクト内に任意の数のTestSuitesを作成して、大規模なテストシナリオをサポートできます。

TestSuiteの作成

  • ステップ1 *-プロジェクト内で、インターフェイス(プロジェクト名の横)を右クリックし、[TestSuiteの生成]をクリックします。

ここで、SOAP – Exampleはプロジェクト名ですが、CurrencyConvertorSoapとCurrencyConvertorSoap12はインターフェイスです。

テストスイートの生成

  • ステップ2 *-新しいウィザードが開きます。 要件に基づいて選択肢を選択します。
  • ステップ3 *-選択が完了したら、[OK]をクリックします。

テストスイートの作成

  • ステップ4 *-LoadTestの生成のチェックボックスをオンにします。 これにより、このTestSuiteで作成されたTestCaseごとにLoadTestが生成されます。
  • ステップ5 *-新しいウィザードでTestSuite名を入力し、[OK]をクリックします。

テストスイート名

次のスクリーンショットに示すように、作成されたTestSuiteがナビゲーションパネルに表示されます。

ナビゲーションの表示

  • ステップ6 *-TestSuite名をダブルクリックすると、右側のパネルにTestSuiteウィンドウが開きます。 TestCasesが追加されていないため、空白です。

右パネル

TestSuiteプロパティは、ナビゲーションパネルの下部に表示されます。 TestSuiteレベルで新しいカスタムプロパティを追加できます。

カスタムプロパティ

SoapUI-テストケース

TestCaseは、Webサービスの特定の側面をテストするために組み立てられたTestStepのコレクションです。 ユーザーはn個のTestCasesをTestSuiteに追加でき、それらをモジュール化して、複雑なテストシナリオのために相互に呼び出すことができます。

TestCaseの作成

  • ステップ1 *-TestSuite内で、ユーザーは複数のテストケースを追加できます。 テストスイートを右クリックし、[新しいテストケース]を選択します。

新しいテストケース

  • ステップ2 *-TestCaseの名前を入力し、[OK]をクリックします。

テストケース名

作成されたTestCaseのテストステップは現在のところゼロです。 TestCaseは、利用可能なすべての種類のテストに対して、TestStepsなしで追加されます。 TestStepsが追加されると、括弧内の数字は自動的に変更されます。 機能的なTestStepは「テストステップ」に入り、パフォーマンスTestStepは「ロードテスト」に入り、セキュリティTestStepは「セキュリティテスト」に入ります。

機能テスト

  • ステップ3 *-TestCase名をダブルクリックすると、右側のパネルにTestCaseウィンドウが開きます。 TestStepsが追加されていないため、次のスクリーンショットに示すように空白です。

テストケースウィンドウ

SoapUI-TestStep

TestStepsは、SoapUIの機能テストの「ビルディングブロック」です。 これらはTestCaseに追加され、実行のフローを制御し、テストするWebサービスの機能を検証するために使用されます。

TestStepの挿入

  • ステップ1 *-TestStepsを右クリックします。 ステップを追加し、リストから適切なTestStepを選択します。 たとえば、ユーザーがREST WebServiceをテストする必要がある場合、ユーザーはRESTテスト要求を選択します。

ステップの追加

  • ステップ2 *-TestSteps→Add Step→SOAP Requestを選択して、TestStepを追加し、インポートされたSOAP要求を検証します。
  • ステップ3 *-TestStepの名前を入力し、ウィザードで[OK]をクリックします。

名前を指定

「OK」をクリックすると、ダイアログボックスがポップアップして、呼び出す操作を選択します。 すべての操作がリストされ、ユーザーは呼び出したい操作を選択できます。

リストされる操作は2つあります。 使用されるSOAPバージョンを除き、両方の操作は同じです。 CurrencyConvertorSoap はSOAPバージョン1.1を使用しますが、 CurrencyConvertorSoap12 はSOAPバージョン1.2を使用します。

  • ステップ4 *-最初の1つ– CurrencyConvertorSoapを選択し、[OK]をクリックします。

テストリクエスト

TestCaseの追加中に、さまざまな標準アサーションを追加できます。 アサーションは、SOAP要求/応答のチェックポイント/検証ポイントとも呼ばれます。

  • ステップ5 *-次の検証ポイントなしでTestStepを作成することを意味するデフォルトオプションでTestCaseを作成しましょう-
  • テストの実行時に、応答メッセージがSOAPかどうかを検証します。
  • 応答スキーマが有効かどうかを検証します。
  • SOAP応答にFAULTが含まれているかどうかを確認します。

ケースにリクエストを追加

  • ステップ6 *-[OK]をクリックすると、次のリクエストXMLスクリーンショットがポップアップ表示されます。

リクエストXML

テストステップカウントは、機能的なTestStepが追加されると1になります。 同様に、負荷およびセキュリティTestStepsを追加すると、追加されたステップの数に基づいて、対応する数が自動的に増加します。

Incremented

SoapUI-リクエストとレスポンス

リクエストのセットアップ

ここでは、通貨をINRからUSDに変換します。

  • FromCurrency – INR
  • ToCurrency – USD

次に、要求XMLとして送信される疑問符の場所にこれらの入力を入力します。 これらの値を対応するXMLタグに配置した後、「要求を送信」ボタンをクリックして応答を確認します。

リクエストの送信

応答

要求を送信すると、Webサービス要求はWebサーバーによって処理され、次のスクリーンショットに示すように応答を送り返します。

応答を読むことにより、1単位のINR = 0.0147単位のUSDと結論付けることができます。

Webサーバー応答

HTTPリクエスト

SOAPメッセージはHTTPプロトコルによって転送されます。 HTTPリクエストを表示するには、SoapUIリクエストウィンドウ(左側)でRAWをクリックします。

HTTPリクエスト

リクエストはウェブサーバーに投稿されます。 したがって、HttpのPOSTメソッドが使用されます。

SOAPリクエストは、httpメッセージの本文で転送されます。これは次のように表示されます。

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応答

SOAP-UI応答ウィンドウの「RAW」タブをクリックして、HTTPを介した応答の送信方法を理解します。

要求の処理後、http応答コード(200)が表示されます。これは、成功したことを意味します。 Webサーバーはそれを正常に処理しました。

SOAP応答は、HTTPメッセージの本文の一部としてクライアントに送り返されます。

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

Http Response

次のHTTPコードは、Webサーバーによる応答の送信に使用され、デバッグに非常に役立ちます。

HTTP Code Description
1xx: Informational − This means a request was received and there is a continuing process.
2xx: Success − The action was successfully received, understood, and accepted.
3xx: Redirection − This means further action must be taken in order to complete the request.
4xx: Client Error − This means the request contains a bad syntax or cannot be fulfilled.
5xx: Server Error − The server failed to fulfil an apparently valid request.

SoapUI-プロパティ

プロパティは、SoapUIを使用したより高度なテストの中心的な側面です。 機能テストのプロパティは、テストの実行と機能をパラメーター化するために使用されます。

  • プロパティを使用してサービスのエンドポイントを保持し、テスト実行中に使用される実際のエンドポイントを簡単に変更できます。
  • プロパティを使用して認証資格情報を保持し、これらを中央の場所または外部ファイルで簡単に管理できます。
  • プロパティを使用して、テストの実行中にセッションIDを転送および共有できるため、複数のテストステップまたはテストケースで同じセッションを共有できます。

プロパティの定義

プロパティはプロジェクトの多くのレベルで定義できます。

  • プロジェクトレベルで共通のプロパティは、プロジェクトレベルで定義できます。
  • 同様に、TestSuiteおよびTestCase固有のプロパティは、それぞれのレベルで定義できます。
  • プロジェクト固有のプロパティは、[カスタムプロパティ]タブで定義されます。

プロパティの定義

たとえば、「ToCurrency」プロパティは、「+」記号をクリックしてプロパティ名と値を入力することにより、プロジェクトレベルで定義できます。

ToCurrency

プロパティへのアクセス

プロパティは、プロパティ展開を使用してプロジェクト内のどこからでもアクセスできます。

構造は次のようになります-

  • $ \ {#Project#PropertyName} –プロジェクトレベル用
  • $ \ {#TestSuite#PropertyName} –テストスイートレベル用
  • $ \ {#TestCase#PropertyName} –テストケースレベル用
  • $ \ {TestStepName#PropertyName} –テストステップレベル用
  • $ \ {#MockService#PropertyName} – MockServiceプロパティの場合
  • $ \ {#Global#PropertyName} –グローバルプロパティの場合、[ファイル]→[設定]→[グローバルプロパティ]タブにあります。 このプロパティはすべてのプロジェクトで使用できます
  • $ \ {#System#PropertyName} –システムプロパティの場合、ヘルプ→システムプロパティにあります
  • $ \ {#Env#PropertyName} –環境変数用

同じ構造をリクエストXMLに配置して、実行時に特定の属性の値を取得できます。

同じ構造

プロパティは、コンピュータープログラムの変数と見なすこともできます。 ユーザーが他の場所でも使用できるものを定義したい場合、プロパティは非常に便利です。 プロパティは動的に定義することもできますが、Groovyスクリプトに依存しています。

SoapUI-プロパティの転送

応答メッセージから値を抽出し、それを後続の要求に含める必要がある場合があります。 そのような場合、指定された値を取得してプロジェクトの他の要素に転送するメカニズムが必要です。 SoapUIは、プロパティ転送TestStepを通じてこのような機能をサポートします。

プロパティ転送の追加

  • ステップ1 *-TestCaseまたはTestStepを選択し、右クリック→ステップの追加→プロパティの転送を選択します。

プロパティの追加

  • ステップ2 *-TestStep名を入力し、[OK]をクリックします。

レート転送

  • ステップ3 *-RateTransferステップが追加され、新しいウィザードが開きます。

新しいウィザード

  • ステップ4 *-プロパティ転送ウィンドウの左上隅にある[新しいプロパティ転送を追加]アイコン+をクリックします。 転送の名前を入力するよう求められます。 レートを入力し、[OK]をクリックします。

レート

プロパティの譲渡

転送が作成されると、*ソース*および*ターゲットペイン*は、プロパティ値を抽出および置換するために関連するXPath式を指定する必要があります。 [ソース]の横のドロップダウンボックスに、プロパティ転送のソースとして使用できるSoapUIプロジェクトのさまざまなレベルが一覧表示されます。 デフォルトでは、最も近いTestStepが表示されます。

この場合、 Request – INR to USD TestStepです。 [プロパティ]の横のドロップダウンリストには、転送で使用されるソースプロパティが表示されます。これは、要求、応答、またはサービスエンドポイントのいずれかです。

転送プロパティ

  • ステップ1 *-応答を選択し、パス言語に移動します。 ユーザーは、XPath、Xquery、またはJasonを選択してプロパティを定義できます。 この場合、XPathを選択します。

パス言語

  • ステップ2 *-ソースxmlの宣言を取得するには、nsをクリックしてXPathを指定します。
  • ステップ3 *-上記のXPath式から抽出した値を転送するターゲットを指定します。 ターゲットペインは、そのためのプロパティ転送ウィンドウの下部で使用されます。
  • ステップ4 *-RequestINRtoUSDステップの応答からConversionRateResultの抽出値を転送します。

ターゲット-プロパティ

プロパティ-ConversionRate(新しいプロパティが追加され、初期値はありません)。

ターゲットプロパティ

  • ステップ5 *-テストケースが正常に実行されると、応答に基づいてプロパティ「ConversionRate」が更新されます。

以下は最初のスクリーンショットです。

コンバージョン率

以下は、正常に実行された後のスクリーンショットです。

成功した実行

同様に、ターゲットは次のリクエストXMLである場合があります。 TargetがSOAPリクエストの場合、XPathを提供してターゲット属性を識別する必要があります。

SoapUI-ログペイン

ログペインには、クライアントとサーバー間のトランザクションに関する完全な情報が保存されます。 ユーザーはログペインのさまざまなタブを見ることができます。 この章では、SoapUIを使用しながら、最も一般的に使用されるログペインについて説明します。

トランザクションプロパティ

SoapUIログ

SoapUIログには、Webサーバーからの応答情報が表示されます。 同じ情報が、 'bin’ディレクトリの下のSOAP-UIインストールフォルダのsoapui.logファイルに保存されます。

UIログ

HTTPログ

HTTPログには、すべてのHTTPパケット転送が表示されます。 「RAW」のすべての情報はHTTPログに表示されます。

Httpパケット転送

エラーログ

エラーログには、プロジェクトセッション全体で発生したすべてのエラーが表示されます。 同じ情報は、SoapUIのインストール場所の「bin」ディレクトリにある「soapui-errors.log」で入手できます。

メモリログ

このタブはメモリ消費を監視し、次のスクリーンショットに示すようにグラフの形式で表示します。 メモリを大量に消費する操作を実行する場合に非常に役立ちます。

メモリログ

SoapUI-アサーション

アサーションは、チェックポイントまたは検証ポイントとして解釈できます。 要求がWebサーバーに送信されると、応答が受信されます。 データが期待どおりかどうかを含む応答を検証する必要があります。 応答を検証するために、SoapUIにはアサーション機能があります。

注意点

  • アサーションは、実行中にTestStepが受信したメッセージを検証するために使用されます。
  • メッセージの一部またはメッセージ全体を何らかの期待値と比較します。
  • 任意の数のアサーションをTestStepに追加でき、それぞれが応答メッセージのいくつかの異なる側面と内容を検証します。
  • TestStepの実行後、そのすべてのアサーションが受信した応答に適用され、それらのいずれかが失敗した場合、TestCaseビューでTestStepは失敗としてマークされます。
  • 失敗したエントリは、テスト実行ログに表示されます。

実行ログ

アサーションのタイプ

SoapUIは、応答として広範なアサーションをサポートします。

以下は、SoapUIでサポートされているアサーションのリストです。

アサーション

説明

プロパティコンテンツ

リンク:/soapui/soapui_assertion_contains [含む]

指定された文字列の存在を確認します。 また、正規表現もサポートしています。

リンク:/soapui/soapui_assertion_not_contains [含まない]

指定された文字列が存在しないことを確認します。 また、正規表現もサポートしています。

リンク:/soapui/soapui_assertion_xpath_match [XPath Match]

XPath式を使用して、ターゲットノードとその値を選択します。 XPath式の結果を期待値と比較します。

リンク:/soapui/soapui_assertion_xquery_match [XQuery Match]

Xquery式を使用して、ターゲットプロパティからコンテンツを選択します。 XQuery式の結果を期待値と比較します。

コンプライアンス、ステータス、標準

HTTP DOwnload Allリソース

HTMLドキュメントと呼ばれるすべてのリソース(画像、スクリプトなど)をダウンロードし、それらがすべて使用可能であることを検証します。 HTMLを含むすべてのプロパティに適用可能。

無効なHTTPステータスコード

ターゲットTestStepが、定義されたコードのリストにないステータスコードのHTTP結果を受信したことを確認します。 HTTPメッセージを受信するTestStepに適用されます。

SOAPエラーではない

最後に受信したメッセージがSOAPエラーではないことを検証します。 SOAP TestStepsに適用されます。

スキーマコンプライアンス

最後に受信したメッセージが関連するWSDLまたはWADLスキーマ定義に準拠していることを検証します。 SOAPおよびRESTテストステップに適用可能。 スキーマ定義URLは、プロパティの展開をサポートしています(例: $ \ {#System#my.wsdl.endpoint}/services/PortType? wsdl)

SOAPエラー

最後に受信したメッセージがSOAP障害であることを検証します。 SOAP TestSteps SOAPリクエストに適用-最後に受信したリクエストが有効なSOAPリクエストであることを検証します。 MockResponseテストステップにのみ適用されます。

SOAPレスポンス

最後に受信した応答が有効なSOAP応答であることを検証します。 SOAP TestRequestステップのみに適用されます。

有効なHTTPステータスコード

ターゲットTestStepが、定義されたコードのリストにステータスコードを含むHTTP結果を受信したことを確認します。 HTTPメッセージを受信するTestStepに適用されます。

WS-Addressingリクエスト

最後に受信したリクエストに有効なWS-Addressingヘッダーが含まれていることを検証します。 MockResponse TestStepsのみに適用されます。

WS-Addressingレスポンス

最後に受信した応答に有効なWS-Addressingヘッダーが含まれていることを検証します。 SOAP TestRequestステップのみに適用されます。

WS-Securityステータス

最後に受信したメッセージに有効なWS-Securityヘッダーが含まれていることを検証します。 SOAPテストステップに適用可能。

スクリプト

リンク:/soapui/soapui_assertion_script [スクリプトアサーション]

ユーザーがカスタムスクリプトを実行して、ユーザー定義の検証を実行できるようにします。 TestStepsにのみ適用可能(つまり、 プロパティではありません)

*SLA*

応答SLA

最後に受信した応答の応答時間が定義された制限内であったかどうかを検証します。 リクエストを送信し、レスポンスを受信するスクリプトTestStepsおよびTestStepsに適用可能。

*JMS*

JMSステータス

ターゲットTestStepのJMS要求が正常に実行されたことを検証します。 JMSエンドポイントを使用したリクエストTestStepsに適用可能。

JMSタイムアウト

ターゲットTestStepのJMSステートメントが指定された期間より長くかかっていないことを検証します。 JMSエンドポイントを使用したリクエストTestStepsに適用可能。

セキュリティ

機密情報の露出

応答メッセージがターゲットシステムに関する機密情報を公開していないかどうかを確認します。 このアサーションは、REST、SOAP、およびHTTP TestStepsに使用できます。

*JDBC*

JDBCステータス

ターゲットTestStepのJDBC要求が正常に実行されたことを検証します。 JDBC TestStepsにのみ適用可能。

JDBCタイムアウト

ターゲットTestStepのJDBCステートメントが指定された期間より長くかかっていないことを検証します。 JDBC TestStepsにのみ適用可能。

SoapUI-トラブルシューティング

SoapUIでは、ユーザーは多くの一般的な一般的な問題に直面します。 これらの最も一般的な問題のいくつかは次のとおりです-

問題-名前空間が誤って定義されています。 正しい名前空間を使用してください。 名前空間は、Webサービスが配置されているURLである必要があります。

解決策-スクリプトアサーションの開発中にエラーがスローされた場合は、 'log.info’を使用して変数の内容を出力します。

問題-フォールトコードが応答XMLとして受信された場合、無効な入力が原因である可能性があります。

ソリューション-リクエストXMLの入力を確認します。

-通貨コンバーターでは、「FromCurrency」の入力が「123」であり、これが存在しない場合、出力は「SOAP-Client」として障害コードをスローします。クライアント側から渡されます。

要求

パラメータ

応答

障害コード

問題-XPathまたはXQueryを使用する場合、現在の応答に一致しません。

ソリューション-

  • XPathまたはXQueryを定義するときに正しい構文を使用します。
  • 名前空間を宣言する際に、ドットではなくコロンが使用されていることを確認してください。
  • XPathとXQueryが正しいことを確認してください。

応答に一致しない

SoapUI-パフォーマンステスト

パフォーマンステストは、Webサービステストで最も一般的な重要なチェックポイントの1つです。 パフォーマンステストとは、負荷を人為的に作成またはシミュレートし、環境が負荷を処理する方法を測定することです。

これは、システムが高負荷下でどのように機能する必要はないことを意味します。また、基本負荷または予想される負荷下でどのように機能するかもしれません SoapUIなどのTestWareで構造化、自動化、作成する必要さえありません。単純に何度も何度もWebブラウザを更新することも負荷テストです。

性能試験の種類

パフォーマンステストの種類は次のとおりです-

  • ベースラインテスト-予想される負荷または通常の負荷でシステムがどのように動作するかを調べ、他のタイプのテストと比較できるベースラインを作成します。
  • 負荷テスト-負荷の増加と、高負荷下でのシステムの動作を確認します。 負荷テスト中、ユーザーは応答時間、スループット、サーバーの状態などを監視できます。 負荷テストの目的は、ターゲット環境を壊さないことです。
  • 浸漬テスト-テストの目的は、長期間にわたって不要な動作が発生しないことを確認することです。
  • スケーラビリティテスト-スケーラビリティテストは負荷テストに非常に似ていますが、リクエストの数を増やす代わりに、送信されるリクエストのサイズまたは複雑さを増やします。 たとえば、大きなリクエスト、大きな添付ファイル、または深くネストされたリクエストを送信します。

Webサービスの主要な側面

Webサービスのパフォーマンスの固有の特性には、2つの側面が際立っています。

最初の側面

サーバー側では、XML/JSON解析と_serialization_の両方のXML/JSON処理が行われています。 最初に失敗することが多いのは、ペイロードの処理です。 失敗の理由はさまざまです。プラットフォーム、アプリケーションサーバーの弱点、または不必要に複雑なWSDLの形での実装の問題である可能性があります。 また、コードが、応答が遅いデータベースにリクエストを送信していることも意味します。

テストの側面-XML/JSONペイロードの解析の複雑さは、スケーラビリティテストにさらに重点を置く必要があることを意味します。 また、WSDLを綿密に調べる必要があることも意味します。 要求と応答が複雑または大きい場合、または大きな添付ファイルが含まれている場合は、複雑さを強調し、負荷がかかったときの動作を確認することに焦点を当てる必要があります。

セカンドアスペクト

頻繁に遭遇する別の要因はセキュリティです。 HTTPSの背後にある安全なサイトのパフォーマンスはかなり低く、Webサービスのテストでは、HTTPセキュリティのレイヤーにWSSecurityのレイヤーを追加して、パフォーマンスをさらに低下させることができます。

テストの側面-セキュリティの問題は、安全なリクエストのテストの実行に集中する必要があることを意味します。 Webサービス全体が安全である場合、特にWS-Securityとトークン処理が使用されている場合、負荷テストがより重要であることを意味します。

SoapUI-負荷テスト

  • 負荷テスト*は、特定の負荷の下でシステムの動作を評価するために実施されるパフォーマンステストの特定の形式です。 SoapUIでは、通常、すべてのタイプの非機能テストに「負荷テスト」という用語を使用しますが、SoapUIは、負荷、ストレス、耐久性などのWebサービスのすべてのタイプのパフォーマンス評価をサポートします。

注意点

  • 負荷テストはSoapUIで非常にユニークです。パフォーマンステストをすばやく作成および変更できる機能テストケース。
  • 主な違いは、SoapUIのパフォーマンステストは通常​​、既存の機能テストから作成されることです。 これにより、高度なパフォーマンステストをすばやく作成できます。
  • Webサービスのパフォーマンスは、さまざまな負荷シナリオで検証できます。 機能検証を維持して、負荷がかかっても破損しないことを確認し、複数の負荷テストを同時に実行して、相互の影響を確認します。

負荷テストの作成

  • ステップ1 *-Functional Test Caseを右クリックして、New Load Testを選択します。

新しい負荷テスト

  • ステップ2 *-ロードテストの名前を入力し、ダイアログウィザードで[OK]をクリックします。

ダイアログウィザード

ロードテストが開き、次のスクリーンショットに示すようにロードテストが作成されます。

負荷テストを開く

負荷テストの実行

新しい負荷テストが作成されると、単純な負荷戦略を使用して5つのスレッドで60秒間(右上)実行するように事前構成されています。

要件および実行に従ってこれらの値を変更します。 -ユーザーは、負荷テストの構成と概念に注意する必要があります。

設定の読み込み

ユーザーは、データの収集から始まり、60秒後にLoadTestが終了するはずの統計表を中央に表示します。

統計テーブル

アサーションの追加

  • ステップ1 *-LoadTestエディターで、エディターの下部にあるLoadTestアサーションタブを選択します。

ロードテストアサーション

  • ステップ2 *-LoadTestアサーションメニューバーの[アサーションの追加]ボタンをクリックして、アサーションを追加します。

アサーションボタン

  • ステップ3 *-[アサーションの追加]ダイアログが開きます。 [最大ステップ]を選択します。 [最大]を選択すると、応答に許容される最大時間をミリ秒単位で設定します。時間が設定した値を超えると、テストは失敗します。 OKをクリックしてください。

最大エラー

  • ステップ4 *-TestStep Maxアサーションウィンドウが開きます。 次のスクリーンショットに見られるように、最大​​応答は1秒、1000ミリ秒です。 何も変更しません。 Okをクリックしてください。

Step Maximum

これで、Step Maximumアサーションが正常に追加されます。

最大値を追加

  • ステップ5 *-テストを再度実行します。 応答に時間がかかりすぎる場合は、err列の数値がすぐに加算されるのを確認できます。

エラー列

SoapUI-RESTful Webサービス

Webサービスは、アプリケーション間またはシステム間でデータを交換するために使用されるオープンプロトコルおよび標準の集まりです。 さまざまなプログラミング言語で記述され、さまざまなプラットフォームで実行されるソフトウェアアプリケーションは、Webサービスを使用して、単一のコンピューターでのプロセス間通信と同様の方法で、インターネットなどのコンピューターネットワークでデータを交換できます。 この相互運用性(たとえば、JavaとPython、またはWindowsとLinuxアプリケーションの間)は、オープンスタンダードの使用によるものです。

RESTアーキテクチャに基づくWebサービスは、RESTful Webサービスと呼ばれます。 これらのWebサービスは、HTTPメソッドを使用してRESTアーキテクチャの概念を実装します。 RESTful Webサービスは通常、URI(Uniform Resource Identifier)を定義します。これは、JSONやHTTPメソッドのセットなどのリソース表現を提供するサービスです。

SoapUIのすべてのRESTテスト機能は、RESTサービスと呼ばれる論理表現に基づいています。 これは、サービスの実装ではなく、呼び出されるRESTfulサービスのマッピングであるため、ここでは「サービス」という用語と混同しないでください。 SoapUIプロジェクトにできるだけ多くのRESTサービスを追加できます。 それぞれが特定のRESTfulサービスを表します。 彼らは次のとおりです-

  • リンク:/soapui/soapui_restful_project_setup [REST-Project Setup]
  • リンク:/soapui/soapui_restful_wadl [REST-WADL]
  • リンク:/soapui/soapui_restful_request [REST-リクエスト]
  • リンク:/soapui/soapui_restful_response [REST-Response]
  • リンク:/soapui/soapui_restful_http_methods [REST-HTTPメソッド]

SoapUI-JDBC接続

SoapUIでは、JDBC要求と呼ばれるTestStepを使用してデータベース操作を管理できます。

  • ステップ1 *-TestStepを右クリックして、[ステップの追加]→[JDBC要求]を選択します。

JDBCリクエスト

  • ステップ2 *-ステップ名を入力し、[OK]をクリックします。

新しいステップ

JDBCステップが追加されます。 ステップをダブルクリックすると、JDBCウィザードが開きます。

JDBCウィザード

JDBC接続を作成するには、ユーザーは有効なドライバーと接続文字列を提供する必要があります。 これらのパラメーターは、データベースのタイプを識別し、データベースを使用するための接続を作成するために使用されます。

MySQLの場合、データベースドライバーは com.mysql.jdbc.Driver になります。 同様に、他のデータベースには、データベースのドキュメントセクションで見つけることができる定義済みのドライバーがあります。

  • ステップ3 *-接続文字列は次の形式である必要があります-
Jdbc:mysql://[host]:[port]/[database]?[property][=value]

ここで、propertyは、データベースとの接続に必要な他のパラメーターとともにユーザー名とパスワードです。

例えば、

jdbc:mysql://localhost:8089/xxx_DB?user=root&password=root
  • ステップ4 *-[接続のテスト]をクリックします。 接続に成功すると、SUCCESSが表示されます。それ以外の場合は、失敗の詳細が提供されます。

テスト接続

SoapUI-JDBCプロパティ

JDBCには、SQLクエリで変数として使用できる独自の追加プロパティセクションがあります。

それがどのように動作するか見てみましょう-

JDBCステップで実行する必要があるSQLクエリが、CurrencyCode = ‘xxx’の通貨からSelect *であるとします。

このシナリオでは、リクエスト入力に基づいてCurrencyCodeを変更できます。 ユーザーがハードコードされた値を提供すると、リクエストで指定された通貨に対してJDBCステップは実行されません。

このようなシナリオを克服するために、JDBCはaddプロパティをサポートしています。addプロパティでは、プロパティコードを定義でき、プロパティ転送ステップを使用して変更を続けます。

SQLクエリはプロパティコードの現在の値に基づいて実行され、SQLクエリはCurrencyCode =:Codeをパラメーター化します。

[プロパティ+を追加]と名前を[コード]としてクリックし、値を指定するか、空白のままにして[プロパティ転送]ステップを使用して提供します。

プロパティの追加

SoapUI-JDBCアサーション

JDBCリクエストは、SOAPリクエストTestStepsでアサーションのほとんどを利用することもできます。 SoapUIでは、これらのアサーションのほとんどはTestStepsから独立しています。 したがって、ContainsやXPath Matchなどのアサーションは、JDBC Request TestStepで使用できます。

JDBC Request TestStepのトップメニューにある[アサーションの追加]アイコンをクリックすると、TestStepでサポートされているアサーションを確認できます。

一般的なアサーションに加えて、2つのJDBCリクエストTestStep固有のアサーションがあります-

  • JDBCタイムアウト*-このアサーションを使用して、指定したクエリタイムアウトプロパティ値内で現在のSQLクエリが実行されているかどうかを確認できます。
  • JDBCステータス*-SQLステートメントが正常に実行されたかどうかを確認するために、JDBCステータスアサーションを使用できます。

JDBCステータス

クエリタイムアウトを設定するには、画面の左側でプロパティクエリタイムアウトのそれぞれの値を指定します。 ミリ秒(ms)単位で値を受け入れることに注意してください。

プロパティクエリ