グラフィカル XML 比較アサーションでは、テストから受信したテスト XML 値を XML 制御値と比較できます。 応答が同じでも異なっていても、アサーションは ture を返すことができます。 このアサーションにより、ビジネス プロセスのさまざまなステップで、期待される基準に一致するかどうかを確認するために XML ドキュメントを柔軟に比較することが可能になります。 この方法は「排他的」テストとも言い、変化が予期される一部の値を除いて応答全体を比較します。
アサーション エディタは、XML の左側と右側を互いに比較することにより動作します。 左側は、制御コンテンツと呼ばれます。 右側は、テスト コンテンツと呼ばれます。 たとえば、制御コンテンツは、テスト中のアプリケーションの Web サービスから返される予期された XML です。テスト コンテンツは、実際のコンテンツです。 デフォルトでは、テスト コンテンツは、空のプロパティ キーで示され、アサーションと関連付けられたテスト ステップの最終応答からロードされます。 そうでない場合は、任意の有効なプロパティ キーが使用でき、テスト コンテンツはそれからロードされます。
また、テスト ケース オーサリング モードで以下のいずれかのアクションを実行することにより、グラフィカル比較を迅速に実行できます。
比較を実行するには、緑の矢印
をクリックします。
![diff を実行する前の[グラフィカル XML 比較]アサーション ウィンドウ](o2145917.png)
比較の実行後、アサーション エディタの[差分ビューア]タブのビジュアライザに結果が表示されます。
![diff を実行した後の[グラフィカル XML 比較]アサーション ウィンドウ](o2145918.png)
実行中の出力
アサーションが実行されると、DevTest は、差分結果をテスト イベントとしてログに記録します。
XML 差分結果が含まれる情報メッセージのイベント ID は、常にログに記録されます。
アサーションが起動されると、XML 差分結果が含まれるアサーションの起動イベント ID がログに記録されます。
差分結果は、オリジナルの UNIX diff ユーティリティと似た形式でレポートされます。 以下に、テキスト差分レポートの例を示します。
Assert [Assert1] fired false of type Graphical XML Diff Assertion XML is [Different] ===== 1,2[ELEMENT_NAME_CHANGED]1,2 <! <test2> <! </test2> --- >! <test> >! </test>
各差分は、以下の形式の見出し付きで表示されます。
<First Start Line>, <First End Line>'['<Diff Type>']'<Second Start Line>,<Second End Line>
最初のコンテンツの差分の末尾には区切り文字「---」が表示され、その後に 2 番目のコンテンツの差分が表示されます。
+ 文字は追加を示し、- 文字は削除を示し、! 文字は 変更を示します。 これらの文字が存在する場合、コンテンツの行に(コンテキスト行の代わりに)実際の変更が発生したことを示します。
XML 比較オプション
以下の比較オプションを差分エンジンで使用できます。
比較時に、大文字と小文字を区別するかどうか(デフォルトでは有効)。
比較時に、エレメント テキストおよび属性値からすべての先頭および末尾の空白が削除されます(デフォルトでは有効)。
空白の削除に加えて、テキスト内部の 1 つ以上の連続した空白文字が単一の空白文字に変換されます。
1 つ以上の連続した空白文字が単一の空白文字に変換されます。
すべての空白が比較時に無視されます。
エレメントまたは属性のネームスペース値が無視されます。
エレメントまたは属性のネームスペース プレフィックスが無視されます(デフォルトでは有効)。
XML ドキュメント内の子エレメントの順序を無視します。
XML ドキュメント内の属性の順序を無視します(デフォルトでは有効)。
エレメント テキストをすべて無視します。
属性名を比較しますが、属性値を無視します。
属性の名前と値を無視します。
無視されたノードは、左側および右側のドキュメントに対して実行される XPath のリストから作成されます。 ノード セットを返す評価された XPath が集約されます。 差分が発生すると、集約セット内に見つかるノードは無視されます。
無視されたノードの XPath は、ノード セットを返す任意のクエリである場合があります。 たとえば、XPath //* は、XML ドキュメント内のすべてのノードを除外します。 /example/text() は、XML ドキュメント内の example エレメントの子の最初のテキスト ノードを除外します。 /example/@myattr は、XML ドキュメント内の example エレメントに属する、属性テキスト値を含む myattr 属性を無視する XPath です。
![[グラフィカル XML 比較]アサーション ウィンドウの[除外ノード]タブ](o2145920.png)
右クリック メニュー項目でも、XML ドキュメントの内部で直接ノードを選択でき、その XPath は[除外ノード]リストに追加されます。
![[グラフィカル XML 比較]アサーション ウィンドウの[除外ノード]タブ、右クリックメニュー](o2145921.png)
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|