アサーション演算子 - Cloud

Talend Cloud API Testerユーザーガイド

Version
Cloud
Language
日本語 (日本)
Product
Talend Cloud
Module
Talend API Tester
Content
ジョブデザインと開発 > Testing APIs
Talend Cloud API Testerのアサーション演算子を使用します。

アサーションは演算子に依存します。Talend Cloud API Testerには、使用できる演算子のセットが用意されています。

注: レスポンスボディをJSONとして解釈されるようにする場合は、アサーションでJSONボディエレメントを使用する必要があります。[Body content] (ボディコンテンツ)エレメントを使用すると、ボディは文字列として解釈されます。

等式

演算子[Equals] (等しい)[Does not equal] (等しくない)は、すべての中で最も単純なもので、等式チェックだけを行います。JSONは通用するものの、JSON配列で使用される場合は、予期される配列と実際の配列のフォーマットが異なっていても、リクエストが無効になることはありません。

演算子が[Does not equal] (等しくない)[Equals] (等しい)の正反対です。

比較

比較演算子は以下のとおりです。

  • [Greater than] (次の値より大きい)
  • [Greater than or equal] (次の値以上)
  • [Less than] (次の値より小さい)
  • [Less than or equal] (次の値以下)

比較は次のように行われます。

  • 数字であれば、数字の比較を行います。
  • 文字列であれば、文字列の長さを比較します。
  • ブール値、JSON配列、JSONオブジェクトであれば、それらを文字列として比較します。
  • Nullであれば、エラーが表示されます。

比較するオブジェクトは同じ形式であることが必要です。形式に関連する問題を回避するには、最初にアサーション(正規表現など)を使い、比較するオブジェクトの形式を検証します。

日付を比較:
  • タイムスタンプ形式の日付は整数として、ISO形式の日付は文字列としてそれぞれ処理されます。
  • ISO形式の日付は辞書的に比較されます。この比較が正確に行われるのは、同じ形式とタイムゾーンを使用している場合のみです。Talend Cloud API Testerは、UTCタイムゾーンを使い、ISO形式で日付を生成します。
  • 日付の形式が異なっていたり、日付を別の形式の値と比較している場合は、誤検知の結果となってしまうことがあります。たとえばある日付が別の日付よりも小さいかどうかチェックしているとすると、実際はより大きい場合であっても、形式が異なる日付のほうが辞書式に小さくなることがあります。このような理由から、日付を比較する前にアサーションを使って日付の形式と値をチェックしておくことをお勧めします。

存在

演算子[Exists] (存在する)は、エレメントがレスポンスに存在することを確認します。

演算子[Does not exist] (存在しない)[Exists] (存在する)の正反対です。

長さ

長さ演算子は次のとおりです。

  • [Equals] (等しい)
  • [Greater than or equal] (次の値以上)
  • [Less than or equal] (次の値以下)

長さは次のように計算されます:

  • 文字列であれば、文字列にある文字数が返されます。
  • JSON配列やXML配列であれば、配列にあるエレメントの数を返します。
  • JSONオブジェクトであれば、オブジェクトにあるキーの数を返します。
  • Null、数字、ブール値であれば 、該当なし - エラーが表示されます。
  • 複数値ヘッダーであれば、ヘッダーの値の数が返されます。
注: ヘッダーが複数回存在する場合や、コンマで区切られた値のリストが含まれる場合は、複数の値を持たせることができます。

コンテンツ

コンテンツ演算子は以下のとおりです。

  • [Contains] (次を含む)
  • [Does not contain] (次を含まない)

次のように動作します:

  • 文字列であれば、特定の部分文字列がエレメントに含まれているかどうかチェックします。

    [Darth Vader] (ダースベイダー)には[arth] (アース)が含まれます

  • JSON配列であれば、特定の値がエレメントにすべて含まれているかとうかチェックします。想定される値は、JSON配列またはコンマ区切りの値のいずれかになります。

    [ "Darth Vader", "Luke Skywalker", "Leia Skywalker" ]には"Darth Vader", "Luke Skywalker"が含まれます

    [ "Darth Vader", "Luke Skywalker", "Leia Skywalker" ]には[ "Darth Vader" ]が含まれます

  • JSONオブジェクトであれば、特定のキーがエレメントに含まれているかどうかチェックします。

    { "age": 41, "lightSaberColor": "red", "forcePower": "3000" }には"age","lightSaberColor"が含まれます

    { "age": 41, "lightSaberColor": "red", "forcePower": "3000" }には"age","lightSaberColor"が含まれます

  • XMLノードの配列であれば、ノードの配列としてリスト化されている指定のノードがエレメントにすべて含まれているかどうかチェックします。

    [<title lang="en">Harry Potter</title>, <title lang="en">XQuery Kick Start</title>, <title lang="en">Learning XML</title>]には[<title lang="en">Harry Potter</title>, <title lang="en">Learning XML</title>]が含まれます

  • Null、数値、ブール値の場合: 該当なし - エラーが表示されます

正規表現マッチング

演算子[Matches] (一致する)を使用すると、エレメントが特定の正規表現に一致するかどうか確認できます。

演算子により、有効なJavaScript正規表現に対してエレメントがマッチングされます。以下の2つの形式があります:

  • フラグがない場合: ^DarthDarth Vaderと一致します。
  • フラグがある場合: /^darth/iDarth Vaderと一致します。

より完全なドキュメンテーションはMDNでご覧いただけます。

正規表現を作成し、実際の例に照らしてテストを行う方法を学習する場合は[Regex101 Website] (Regex101 Webサイト)をお勧めします。正規表現の左側のメニューでJavaScriptのフレーバーを選択していることを確認します。