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 ツールを追加するには、次の操作を行います。
- メッセージの特定の要素をチェックする場合―および/または一致以外の検証を行う場合は―Assertor を使用します。
- ページレベル アクション メニューの適切な [Diff の追加] コマンドをクリックします。
JSON Diff ツールは、REST Client では使用できますが、SOAP Client では使用できないことに注意してください。 - (任意) 新しく作成されるツールの名前を変更します。
- 下の説明に従ってツールを設定します。
- 新しいツール構成を保存します。
選択されたクライアント ツールのレスポンスの出力として、新しいツールが「連結」されます。Header Diff ツールは、レスポンス ヘッダーに連結されます。他のすべての Diff ツールは、レスポンス ボディ メッセージに連結されます。
Diff ツールの構成
Diff ツールを構成するには、次の操作を行います。
回帰コントロール エリアで「コントロール」値 (今後のすべての値と比較する対象の値) を指定します。選択された Diff の種類に応じて、リテラル テキスト エディター、JSON エディター、XML エディターを使用できます (詳細およびヒントについては「JSON メッセージの編集」および「XML メッセージの編集」を参照)。
最近のトラフィックを元に回帰コントロールを更新
CTP が現在の回帰コントロールと異なる最新のトラフィックにアクセスできる場合、[回帰コントロールの更新] ボタンをクリックすると、新しいトラフィックを回帰コントロールにコピーできます。
- (XML Diff または Text/Header Diff のみ) 必要に応じてオプション エリアで追加の構成を行います。詳細については「XML Diff オプション」および「Text Diff / Header Diff オプション」を参照してください。
- (任意) [無視される差異] に許容する差異 (エラーとしてレポートしない差異) を指定します。Diff の種類に応じて、XPath ビルダー (「XPath の指定」で説明されています) および/またはテーブルで無視する差異を指定できます。テーブルの操作:
- 変更 指定されたプロパティの値の違いを許容します。
- 挿入 新規/追加されたプロパティ (テーブルに追加する必要があります) を許容します。
- 削除 指定されたプロパティの不足を許容します。
- テーブル行をクリックすると、[許可] と [禁止] が切り替えられます。
XML Diff オプション
オプション | 説明 |
---|---|
Diff エンジン | 使用する diff エンジンを指定します。XML Unit がデフォルト値です。このエンジンは、大きなメッセージや、結果として多数の差異が生成される比較、要素の順序の違いを無視する機能をサポートしています。古いバージョンの SOAtest で作成された Diff ツールは、VMtools を使用するよう設定されている場合があります。 |
要素の順序を無視 | 処理対象のドキュメント全体をとおして、要素の順序を無視するよう指定します。ドキュメントの特定の部分でだけ順序を無視する場合は、Diff ツールにドキュメントを渡す前に、SOAtest の XML Sort ツールを使用してその部分をソートします。 |
SOAP モード | このオプションがオンの場合、以下の処理を実行できます。
|
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 つ以上の空白だけを含む行です。 |