understanding assertions soapui soapui tutorial 5
私たちはSoapUIの基本に取り組んできました プロジェクトの作成、WSDLの追加、リクエストの送信、レスポンスの受信 これまでのところ、テストアセットを生成して一緒に使用します。
この5番目のSoapUIチュートリアルでは、SoapUIのアサーションについてすべて学習します。することを強くお勧めします このページの完全なSoapUIトレーニングシリーズに従ってください これらすべてのコア機能を学ぶために。
学習内容:
アサーションの概要
他のテストと同様に、システムに実行させたいことと実際に実行していることを比較して、特定の検証またはアサーションに到達する必要があります。これは、Webサービスのコンテキストで呼ばれるものです。テスターとして、1000または100万のテストステップを実行したかどうかは関係ありませんが、私たちにとって、結果の比較がテストの結果を決定します。
したがって、Webサービスは手動でアサートできますが、この記事全体をSoapUIでどのように実行できるかを理解することに費やします。また、複数の応答と大きなデータを含む応答がある場合、手動アサーションには時間がかかります。 SoapUIアサーションは、これらの不足を克服するのに優れています。
SOAPUIアサーション 応答メッセージの一部/すべてを期待される結果と比較します。 SoapUIが提供するさまざまなアサーションを任意のテストステップに追加できます。各タイプのアサーションは、テキストの照合、XPATHの比較など、応答に対する特定の検証を対象としています。また、必要に応じてクエリを作成することもできます。
テストステップが実行されると、関連するアサーションがそれぞれのテストステップの応答を受け取ります。いずれかの応答が失敗した場合、それぞれのアサーションが処理され、対応するテストステップが失敗としてマークされます。この通知は、テストケースビューで表示できます。また、失敗したテストステップはテスト実行ログで見つけることができます。サンプルのテストステップアサーション画面は次のようになります。
上の画像では、一部のテスト手順が失敗し、一部が合格しています。その理由はアサーションです。
前に説明したように、アサート条件が期待される結果で満たされない場合、結果はFAILEDになります。
SoapUIでさまざまな種類のアサーションを操作する
次のようなさまざまなタイプのアサーションを操作する方法を見てみましょう。
- アサーションを含むものと含まないもの
- XPathの一致と
- XQuery一致アサーション。
まず、有効なWSDLスキーマの場所が必要です。
以下の手順に従ってください。
ステップ1。 新しいSOAPプロジェクトを作成する Ctrl + Nキーを押して、手順に従います。プロジェクトの作成後、SOAPUIはインターフェースと対応する要求のリストを生成します。
ステップ2。 このプロジェクトにテストスイートを追加するには、次の手順に従います。
- インターフェイス名を右クリックします MedicareSupplierSoap
- クリック テストスイートを生成する コンテキストメニューのオプション
- 表示される以下のウィンドウで(OK)をクリックします。
- 次のポップアップで、目的のテストスイート名を入力し、(OK)をクリックする必要があります
- SOAPUI PROは、ナビゲーターパネルの要求とともにテストスイートを生成します。
- テストスイートの下に、SOAPリクエストステップを含むいくつかのテストステップが表示されます。
ステップ3。 このテストスイートを実行するには、リクエストステップをダブルクリックして、それぞれの場所に入力値を指定します。たとえば、開く GetSupplierByCity リクエストして入力 ニューヨーク 都市タグの間。
- RUNアイコンをクリックしてこのリクエストを開始します–これは応答を受け取ります。
- それでは、アサーションを追加しましょう。そのためには、をクリックします アサーション ログタブの上部にあるタブ。
- 右クリックすると、ポップアップメニューが表示され、以下のような基本的なアサーション関連のオプションが表示されます。
#1)アサーションが含まれています
(アサーションの追加)オプションをクリックするか、ツールバーからクリックします– アサーションを追加 さまざまなタイプのアサーションとともにウィンドウが画面に表示されます。
1.をクリックします プロパティコンテンツ リストのカテゴリ–関連するアサーションタイプとその説明が表示されます
2.をクリックします 含まれています アサーションをクリックし、(追加)ボタンをクリックします
3.これはアサーション設定ウィンドウです。ここでは、応答に基づいて予想される条件を指定する必要があります。
たとえば です、入力させてください ニューヨーク このテキストフィールドのテキスト。 比較してケースを無視する 期待値が大文字でも小文字でも、チェックボックスは無視されます。
4.次に、テストスイートを実行し、結果を確認します。テストスイートウィンドウで見たように、緑は実行が成功したことを示し、赤は失敗を示します。
#2)アサーションが含まれていない
ネガティブなシナリオでリクエストを検証するために「notcontains」アサーションを使用できます。使用できます GetSupplierByZipCode それを学ぶように要求します。
リクエストタブをダブルクリックして開きます。入力リクエストで、次のような適切な場所に無効な郵便番号を入力します 10029 。このリクエストを今すぐ実行してください。指定された郵便番号のサプライヤーの詳細を含む応答データを確認してください–以下の画像をご覧ください。
(画像をクリックすると拡大表示されます)
「含まれていない」アサーション。正常に実行されると、緑色で強調表示されます。
構成ウィンドウで、以下のように正の期待値で構成しました。
期待される条件値が見つからない場合はtrueを返し、応答メッセージで期待される値が見つかった場合はfalseを返します。
同様に、条件を変更してリクエストをもう一度実行できます。それに応じて結果を生成します。
#3)XPath一致アサーション
XPath一致アサーションは、実際の応答データを使用して応答をアサートするという点で少し異なります。
例えば 、ユーザー資格情報を認証し、XML形式でTRUEまたはFALSEのブール型のデータを使用してクライアントに確認応答を送信するログイン認証Webサービスがある場合。
ご存知のように、XMLドキュメントはタグによって作成されます。したがって、構成で期待値を指定するときは、XMLの形式にする必要があります。
静的分析で見つけられないもの
それをやってみましょう:
のアサーションをもう1つ追加します GetSupplierByCity リクエスト。 (アサーションの追加)ウィンドウで、( プロパティコンテンツ カテゴリをクリックしてからクリックします XPath一致 アサーション。
以下のウィンドウが表示されます。
上のセクションは宣言部分であり、下のセクションは期待される結果部分です。
クリックすると 宣言する オプションでは、以下のような自動生成された宣言スクリプトを取得します。
名前空間を宣言するsoap = ’http://schemas.xmlsoap.org/soap/envelope/’;
名前空間ns1 = ’http://www.webservicex.net/’を宣言します。
上記のスクリプトの最初の行は、XMLデータと囲まれたSOAPタグである必要がある応答を示しています。次の行では、応答全体が割り当てられるか、にコピーされます ns1 実行中の名前空間変数。応答全体から特定のデータをフィルタリングする場合は、次のスクリプトを追加する必要があります。
// ns1:SupplierData (1)
ご存知のように、 GetSupplierByCity リクエストすると、に属するサプライヤーの個人データのリストを含む応答が生成されます ニューヨーク市 。
ここでは、 XPath一致 一括応答から特定のサプライヤの個人情報を抽出する式。その目的のために、私たちは ns1 変数。次に、をクリックします 現在から選択 ボタン。
次に、SOAPUIは次の結果を生成します。
0127051883 KMART CORP 250 W 34TH ST NEW YORK NY 10119 0002 (212)760-1242 04
このスクリーンショットを参照してください:
ここでの応答データには、1つのサプライヤーの個人データのみが表示されます。山かっこ内にある番号に基づいて、出力が生成されます。
これまでのところ、これは必要な応答の部分を選択することについてです。 XPath一致 アサーション?
それを手に入れましょう: 応答に問題がなければ、(保存)ボタンをクリックします。
最初に、変更なしでXPath一致アサーションを構成した後にこのサービスを実行した場合、結果は成功した応答になり、ステータスは緑色で強調表示されます。
ただし、入力リクエストの入力パラメータを無効な都市である「XYZまたはABC」に変更しましょう。リクエストを実行し、結果とアサーションステータスを確認します。アサーションの失敗応答と赤いステータス表示が表示されます。特定のサプライヤデータが期待される結果構成のサービス応答に存在する必要があることをすでに指定しており、都市名が無効な場合、そのサプライヤは明らかに存在しません。
これは、XPathMatch式アサーションを使用してXML応答をアサーションする方法です。これは最初は非常に簡単であることに同意しましたが、さまざまなサービス応答を試してみると、はるかに優れたアイデアが得られます。
XPath一致式で集計関数を使用することもできます。それらは、合計、最小、最大、カウント、および平均です。
例えば 、期待される結果に含まれるサプライヤの総数を知りたい場合は、次のスクリプトを記述します。
カウント(// ns1:SupplierData) そしてそれは戻ります 536 結果として。すべての集計関数は小文字である必要があることに注意してください。
#4)XQuery一致アサーション
これは、XPath一致アサーションに少し似ています。 XPath Matchアサーション構成で見たように、宣言と期待される結果の2つのセクションがあります。
- リクエストにXQuery一致アサーションを追加します
- 構成ウィンドウで、をクリックします 宣言する ボタンを押して、次のスクリプトを記述します
- 今クリック 現在から選択 ボタン
- SOAPUIは、スクリプトの応答を生成します
XQuery式はXPath一致式もサポートしますが、XPath一致アサーションでは使用できない独自のスクリプト構文があります。
例えば :
XQuery式を使用してすべてのサプライヤーデータ応答をフェッチする1つの例を示します。このサンプルスクリーンショットを見て、理解を深めてください。
実際のスクリプト:
declare namespace soap='http://schemas.xmlsoap.org/soap/envelope/'; declare namespace ns1='http://www.webservicex.net/'; { for $x in //ns1:SupplierData return $x }
XQuery式で使用できる組み込み関数は他にもあります。彼らです ここで、order by、for、return 等々。
結論
まあ、それらはあなたのために最も一般的に使用されるアサーションです。
ここで強調する点は次のとおりです。アサーションは、Webサービスの期待される結果を正確に予測するために最も重要です。それが鍵の1つである理由です SOAPUIPROの機能 。
次のチュートリアル :次のチュートリアルでは、スクリプトの基本などについて詳しく説明します。
接続を維持してください。いつものように、あなたのコメント、質問、提案は大歓迎です。
推奨読書
- SoapUI Proでデータ駆動型テストを実行する方法– SoapUIチュートリアル#14
- 15以上のSoapUIチュートリアル:最高のWebサービスAPIテストツール
- 初心者向けの詳細なEclipseチュートリアル
- SoapUI Groovyスクリプトでプロパティを使用する方法-SoapUIチュートリアル#7
- SoapUIおよびSoapUIProの7つの重要な機能-チュートリアル2
- SoapUIプロパティの操作-SoapUIチュートリアル#8
- プロオーディエンス向けのSoapUIProの4つの重要な機能– SoapUIチュートリアル#12
- ステップバイステップのSoapUIダウンロードおよびインストールプロセス– SoapUIチュートリアル#3