CTP のインターフェイスから直接 Diff ツールを作成し、SOAP Client および REST Client ツールにすばやく比較を追加できます。Diff ツールは、エディター内のデータと指定された回帰コントロールを比較し、差分が発見された場合に失敗をレポートします。Diff ツールは JSON、XML、テキスト、バイナリに対して使用できます。

CTP で追加した Diff ツールは、選択されたテストのレスポンス に連結されます。 

さらに、SOAtest デスクトップを使用してレスポンス トラフィックに追加された Diff ツールを 編集することもできます。SOAtest デスクトップを使用してリクエスト トラフィックに追加された Diff ツールは、CTP には表示されません。バイナリ Diff ツールは、CTP で編集できますが、追加はできません。

Diff ツールと Assertor ツール

メッセージの全体または大部分が回帰コントロールと一致しているかをチェックするには、Diff ツールを使用します。メッセージの特定の要素をチェックする場合―および/または一致以外の検証を行う場合は―Assertor を使用します。

Diff ツールの追加

新規 Diff ツールを追加するには、次の操作を行います。

  1. 左側のペインで、比較対象の REST Client または SOAP Client を選択します。
  2. ページレベル アクション メニューの適切な [Diff の追加] コマンドをクリックします。

    JSON Diff ツールは、REST Client では使用できますが、SOAP Client では使用できないことに注意してください。 
  3. (任意) 新しく作成されるツールの名前を変更します。 
  4. 下の説明に従ってツールを構成します。
  5. 新しいツール構成を保存します。

選択されたクライアント ツールのレスポンスの出力として、新しいツールが「連結」されます。Header Diff ツールは、レスポンス ヘッダーに連結されます。他のすべての Diff ツールは、レスポンス ボディ メッセージに連結されます。

Diff ツールの構成

Diff ツールを構成するには、次の操作を行います。

  1. 回帰コントロール エリアで「コントロール」値 (今後のすべての値と比較する対象の値) を指定します。選択された Diff の種類に応じて、リテラル テキスト エディター、JSON エディター、XML エディターを使用できます (詳細およびヒントについては「JSON メッセージの編集」および「XML メッセージの編集」を参照)。



    最近のトラフィックを元に回帰コントロールを更新

    CTP が現在の回帰コントロールと異なる最新のトラフィックにアクセスできる場合、[回帰コントロールの更新] ボタンをクリックすると、新しいトラフィックを回帰コントロールにコピーできます。

  2. (XML Diff または Text/Header Diff のみ) 必要に応じてオプション エリアで追加の構成を行います。詳細については「XML Diff オプション」および「Text Diff / Header Diff オプション」を参照してください。 
  3. (任意) [無視される差異] に許容する差異 (エラーとしてレポートしない差異) を指定します。Diff の種類に応じて、XPath ビルダー (「XPath の指定」で説明されています) および/またはテーブルで無視する差異を指定できます。テーブルの操作
    • 変更 指定されたプロパティの値の違いを許容します。
    • 挿入 新規/追加されたプロパティ (テーブルに追加する必要があります) を許容します。
    • 削除 指定されたプロパティの不足を許容します。 
    • テーブル行をクリックすると、[許可] と [禁止] が切り替えられます。

       


XML Diff オプション

オプション説明
Diff エンジン使用する diff エンジンを指定します。XML Unit がデフォルト値です。このエンジンは、大きなメッセージや、結果として多数の差異が生成される比較、要素の順序の違いを無視する機能をサポートしています。古いバージョンの SOAtest で作成された Diff ツールは、VMtools または ExamXML MDCXML を使用するよう設定されている場合があります。
要素の順序を無視処理対象のドキュメントのすべてのエリアで、要素の順序を無視します。ドキュメントの特定の部分でだけ順序を無視する場合は、Diff ツールにドキュメントを渡す前に、SOAtest の XML Sort ツールを使用してその部分をソートします。 
SOAP モードこのオプションがオンの場合、以下の処理を実行できます。 
  • SOAP のマルチ参照は比較の前に解決され、エラーとしてレポートされません。たとえば、SOAP のマルチ参照を使用する際、予測できない方法で XML レスポンスを再編成するサービスがあるとします (参照に異なる ID 番号を付与するなど)。このようなレスポンスをテキスト モードで比較すると、SOAP メッセージが論理的に等価でも、参照が異なるために差異が検出されます。
  • 名前空間接頭辞の type および arrayType 属性の違いが無視されます。WSDL からコントロールが自動生成された場合、事前に接頭辞がわからないため、この処理が必要です。 
  • 数値は数として比較されます。たとえば、1 と 1.0 の違いはエラーとしてレポートされません。


 

Text Diff / Header Diff オプション



正規表現

期待値を正規表現として解釈するかどうかを指定します。このチェック ボックスがオフの場合、コントロール値は正規表現として解釈されません。このチェック ボックスがオンの場合、コントロール値は正規表現として解釈されます。

たとえば、次のように正規表現を入力したとします。

Java[a-zA-Z ]+\Q(\E[4-9]+th Edition\Q)\E

次のような文字列が実際に抽出されたとします。Java How to Program (4th Edition)

正規表現は、上記の文字列を解釈し、"Java" が最初のサブ文字列であり、a-z と A-Z の範囲にある文字、および空白が 1 つ以上あるかどうかをチェックします。( と ) の前後に \Q と \E を付けてエスケープしていることに注意してください。これは、開き括弧および閉じ括弧は正規表現の一部として使用される場合もあるため、サブ文字列を表す場合はエスケープする必要があるからです。最初の開き括弧の後には、[4-9]+ で表される数値があります。これは、4 から 9 の数字が少なくとも 1 つ出現し、その後ろに "th Edition" が続くことを意味します。最後に、\Q\E でエスケープした閉じ括弧があります。

空白を無視

入力行および diff コントロール内にある空の行、および行頭と行末の空白を無視するかどうかを指定します。このチェック ボックスがオフの場合、空の行および行頭/行末の空白の違いは、回帰テストが失敗する原因になります。このチェック ボックスがオンの場合、空の行および行頭/行末の空白は無視されます。

空白とは次のいずれかを意味します: 水平タブ、改行、書式送り、復帰、スペース空の行は、1 つ以上の空白だけを含む行です。

  • No labels