Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SOAVIRT_9.10.8_CTP_3.1.4

SOAtestは、Parasoft Recorder SOAtest Smart API Test Generator でキャプチャした API トラフィックから Web アプリケーションの API テストを自動的に作成できます。Parasoft Recorder SOAtest Smart API Test Generator でキャプチャした API トラフィックを処理するとき 、SOAtest は AI を使用して Smart API テストを作成します。すぐに使用可能な実装は、API テストをすぐに開始できるように設計されていますが、Smart API テストの生成方法を SOAtest に「トレーニングする」こともできます。このセクションの内容:

Table of Contents
maxLevel1

概要

Smart Test Template (.stt) ファイルを作成し、テスト生成動作のルールを定義します。Smart Test Template ファイルは、1 つ以上の Resource Suite で構成されます。Resource Suite を使用すると、ルールを適用するパスを指定できます。Resource Suite には 1 つ以上の Resource Template が含まれます。Resource Template にツールを連結し、特定のテスト生成動作を定義するよう設定できます。Resource Template を利用すると、連結されたルールを適用する範囲を指定することもできます。 

...

SOAtest は、新しい Smart API テストを作成するとき、.stt ファイルで指定されたルールを読み取り、適用します。 

手動でのテスト テンプレートの作成および設定

Smart Test Templates ビュー を使用して .stt ファイルの作成と管理を行うことができます。また、複数の .stt ファイルを追加し、フォルダーを使用して整理することもできます。

  1. [Parasoft] > [ビューの表示] > [Smart Test Templates] をクリックして Smart Test Templates ビューを開きます (ビューがまだ開かれていない場合)。
  2. [Add Template] ボタンをクリックし、.stt ファイルの名前と場所を指定します。
  3. (オプション) ネストされたフォルダーを作成し、.stt ファイルを整理することもできます。
  4. [次へ] をクリックします。
  5. 作成する Resource Suite のタイプを選択します。空のスイートを作成することも、サービス定義に基づいてスイートを作成することもできます。

    定義ファイルを使用する場合の詳細については、以下のセクションを参照してください。

    Creating Tests from a Swagger Definition

    Creating Tests From a RAML Definition

    Creating Tests From a WADL

  6. サービス定義に基づいてスイートを作成する場合、[ 次へ] をクリックして、定義ファイルの場所を指定します。空のスイートを作成する場合は、このステップを省略します。
     
  7. [終了] をクリックします。
  8. .stt ファイルを展開して Resource Suite ノードをダブルクリックします。 
  9. (オプション) [デフォルト名の使用] オプションを無効化してファイルの名前を指定できます。
  10. このスイートのルールを適用するエンドポイントを識別するパターンを [一致] フィールドに指定します (「Defining Smart API テスト生成の設定Test Generation Scope」を参照)。[解決済み] フィールドにパターンのプレビューが表示されます。ネストされた Resource Suiteは親 Resource Suite から [一致] の設定を継承します。テンプレート ファイルの構築方法および一致するパターンを設定する方法を定義できます。よくあるユースケースについては「Example Smart API テスト生成の設定Test Template」を参照してください。  
  11. Resource Suite を右クリックし、[新規追加] > [Resource Template] をクリックします。
  12. (任意) [デフォルト名の使用] オプションをオフにし、[名前] フィールドに Resource Template の名前を指定します。
  13. [メソッド] ドロップダウン メニューからメソッドを選択し、テンプレートのルールを適用するエンドポイントを識別するパターンを [一致] フィールドに指定します (「Defining Smart API テスト生成の設定Test Generation Scope」を参照)。[解決済み] フィールドにパターンのプレビューが表示されます。Resource Template は親 Resource Suite から [一致] の設定を継承します。[完全一致] オプションをオフにすると、 SOAtest は [一致] フィールドで指定されたすべてのサブパスに対してテストを生成します。[完全一致] オプションは、デフォルトでオフです。

    Resource Template の設定に一致する場合、すべての連結されたツールの設定が適用されます。テンプレート ファイルの構築方法および一致するパターンを設定する方法を定義できます。よくあるユースケースについては「Example Smart API テスト生成の設定Test Template」を参照してください。

    Info
    titleJSON Assertor の連結

    JSON Assertor Resource Template に連結されたツールは、トラフィックからの値がある場合、それを使用するよう設定できます。詳細については「Smart API テスト生成の設定Adding JSON Assertions」を参照してください。 

  14. Resource Template を右クリックし、[出力の追加...] をクリックします。
  15. 生成されるテストに含めるツールを選択し、設定を指定します。たとえば、HTTP Authentication ツールを連結して設定し、テンプレートを使用して生成されるすべてのテスト スイートが自動的にテスト対象アプリケーションの認証を行うようにできます (詳細については「Smart API テスト生成の設定Enabling Authentication」を参照)。
  16. 必要に応じて他の Resource Suite および Resource Template を追加します。.stt ファイルは最初から最後の順で処理されます。各 Resource Suite がその階層に従って処理されてから、次のスイートの処理に移ります。任意の数のスイートおよびテンプレートを追加し、必要なだけツールを連結して SOAtest をトレーニングできます。 
  17. 変更を保存します。

既存のトラフィックファイルからテストを生成するか、Parasoft Recorder SOAtest Smart API Test Generator ブラウザー拡張機能を使用して新規テストを作成すると、.stt ファイルに定義された設定が適用されます。 

SOAtest Smart API Test Generator のスコープ定義

Resource Suite および Resource Template で定義されたパターンは、次のルールに従って比較されます。

  • 波括弧 {} はワイルドカードを表し、任意のテキストを含めることができます。たとえば、プロトコル、ホスト、ポートに変換されるパターンを指定できます。

    {scheme}://{host}:{port}
     
  • アスタリスク (*) もワイルドカードを表します。単一のアスタリスクと波括弧 {} は、同じように使用できます。

    {scheme}://{host}:*/parabank/*/accounts/{id}

  • 2 つのアスタリスクは、複数のディレクトリに一致します。

    {scheme}://{host}:*/parabank/**/{id}

  • プロトコル、ホスト、ポートを省略すると、すべてのプロトコル、ホスト、ポートに一致します。たとえば、次のパターンは任意のホスト、ポート、メソッドの特定のパスに一致します。

    /parabank/services_proxy/bank/accounts/{id}
     
  • ポートに負数または 65535 より大きい値を指定すると、ポートはワイルドカードとして扱われます。
  • Resource Template およびネストされた Resource Suite は親 Resource Suite から [一致] の設定を継承します。 
  • [完全一致] オプションをオフにすると、 SOAtest は [一致] フィールドで指定されたすべてのサブパスに対してテストを生成します。Resource Template では、[完全一致] オプションは、デフォルトでオンです。 

デフォルトスコープ

デフォルトでは、SOAtest はシナリオ内で呼び出されているすべてのリソースに対してテストを作成し、Resource Template ツールで識別されたリソースにだけトレーニング ツールを適用します。しかし、tst_configuration.properties ファイルの includeURLPatterns および excludeURLPatterns に Ant 形式のパターンを指定することで、指定された URL をテスト生成に含める、または生成から除外するよう SOAtest を設定できます。詳細については「テスト作成プロパティ」を参照してください。 

認証の有効化

SOAtest は HTTP Authentication ツールを使用してテストのための認証情報を設定します。HTTP Authentication ツールは、.stt ファイルでだけ利用できる特別なツールです。SOAtest が Resource Template ツールの設定と一致すると、生成されたテストに HTTP Authentication ツールで設定された認証情報が適用されます。 

...

Virtualize

ヘッダーの追加

SOAtest は HTTP Header ツールを使用してテストのためのヘッダー フィールドを設定します。HTTP Header ツールは、.stt ファイルでだけ利用できる特別なツールです。SOAtest が Resource Template ツールの設定と一致すると、生成されたテストに HTTP Header ツールで設定された任意のヘッダーが適用されます。このツールを使用すると、テスト作成時にキャプチャされたヘッダーの値を上書きすることもできます。 

  1. Resource Template ツールを右クリックし、[出力の追加...] をクリックします。
  2. リクエスト メニューを展開し、[トランスポート ヘッダー] を選択します。
  3. ツール パネルから [HTTP ヘッダー] を選択し、[終了] をクリックします。 
  4. ツール設定セクションで [追加] をクリックして値を定義します。
  5. 変更を保存します。

JSON Assertion の追加

Resource Template ツールに JSON Assertion を連結して設定すると、トラフィックの値を使用できます。== または equals を演算子として使用し、[Smart - From Traffic] 値フィールドを設定します。

タイプごとの JSON Assertor の動作

テストで利用可能なアサーションにはいくつかのタイプがあります (詳細については「JSON Assertor」を参照)。次のセクションは、SOAtest が各タイプのアサーションに対してどのように設定を適用するかを説明しています。

値アサーション

  • 値アサーションの [期待値] フィールドは、[Smart - From Traffic] が指定されている場合、記録されたトラフィックから設定されます。
  • 値オカレンス アサーション、数値アサーション、文字列比較アサーションの要素値フィールドおよび期待値フィールドは、[Smart - From Traffic] が指定され、演算子が == または equal である場合、記録されたトラフィックに基づいて設定されます。
  • 値オカレンス アサーションの [期待値] フィールドは、[Smart - From Traffic] が指定され、演算子が == である場合、1 または 0 が設定されます。
  • 正規表現アサーション、式アサーション、カスタム アサーションのフィールドは、トラフィックからは設定されません。

構造アサーション

  • オカレンス アサーションの [期待値] フィールドは、[Smart - From Traffic] が指定され、演算子が == である場合、1 または 0 が設定されます。
  • Has Contents アサーション、Has Children アサーション、Type アサーションのフィールドは、トラフィックからは設定されません。

差分アサーション

  • ベース値フィールドは、[Smart - From Traffic] が指定され、トラフィック値が正常に検証された場合、記録されたトラフィックに基づいて設定されます。
  • 数値アサーションの [差分値] フィールドは、[Smart - From Traffic] が指定されている場合、0 が設定されます。
  • 日付差分アサーションおよび DateTime 差分アサーションの差分設定フィールドは、トラフィックからは設定されません。

範囲アサーション

  • 下限値および上限値フィールドは、[Smart - From Traffic] が指定され、値が正常に検証された場合、記録されたトラフィックに基づいて設定されます。この場合、同じトラフィック値がアサーションのすべてのフィールドに適用されます。

その他の JSON Assertor の動作

デフォルトでは、SOAtest はタイムスタンプを無視しますが、ニーズに合わせて他のパラメーターも無視するよう設定できます。詳細については「テスト作成プロパティ」を参照してください。  

.tst ファイルのアサーションに基づくテンプレートのトレーニング

既存の .tst ファイルからアサーション ロジックを適用して Smart API Test Generator をトレーニングすることができます。「Smart API テスト生成の設定Training Based on .tst Files」を参照してください。

テスト スイート参照の追加

.stt ファイルで他のテスト スイートを参照できます。すると、適切にテストを実行するために必要になる可能性がある追加のセットアップ ステップを含めることができます。1 つの Resource Template ツールに 1 つの参照テスト スイートを追加できます。参照によってインクルードされたテストは生成されたスイートの最初のテストとして追加されます。 参照の詳細については「Reusing and Modularizing Test Suites for End-to-end Testing」を参照してください。

  1. Resource Template ツールを右クリックし、[出力の追加...] をクリックします。
  2. Suite カテゴリを展開して [開始] を選択します。
  3. Smart カテゴリで [テスト スイートの参照] を選択し、[終了] をクリックします。   
  4. テスト スイートの参照エディターで参照するテスト スイートの場所を指定します。

    [ファイル システム] または [ワークスペース] をクリックして、参照する .tst ファイルの場所を選択できます。 
  5. 変更を保存します。 

.tst ファイルに基づくトレーニング

既存の REST Client からの認証設定とJSONアサーション ロジックを含むテストを生成するように SOAtest をトレーニングできます。SOAtest は、REST Client で指定されたパスに最も近いリソース テンプレートの下に HTTP Authentication または JSON Assertor を作成します。一致がなかった場合、各 REST Client URL のリソース テンプレートを含む新しい .stt ファイルが作成されます。これらの .stt ファイルには、Resource Suite および Resource Template が含まれ、[一致] 設定は REST Client のエンドポイントに一致するよう設定されています。 

...

  1. テスト エクスプローラーで .tst ファイル、テスト スイート、REST Client ノードを右クリックし、[スマート テスト テンプレートのトレーニング] をクリックします。

  2. 確認を求められたら、サマリーを確認します。SOAtest は、既存の .stt ファイルのリソースを比較し、新しいルールを追加しようとします。一致する .stt が見つからない場合、新しいファイルが作成されます。   

    Info
    titleJSON Assertor を使用した Smart API Test Generator のトレーニング

    トラフィックに基づいて固定値を使用する等価性アサーション (== または equals 演算子を使用するアサーション) が作成されます。値が非等価性アサーションを使用してパラメータライズされる場合、リソースに連結されたアサータ―は [Smart - User Input] に設定された固定値に変換されます。  パラメータライズされた等価性アサーションの場合、値は [Smart - From Traffic] になります。

    .stt ファイルの既存のアサーションに新しいアサーションが追加されます。

  3. [OK] をクリックして更新するか、新しい .stt を REST Client の設定を含む Smart Test Template ビューに追加します。新しい .stt ファイルが作成される場合、ファイル名は元のクライアントの URL に従って付けられます。テンプレート リソースは、ベース パス セグメントごとにグループ化されます。Smart Test Template ビューでファイルを右クリックし、名前を変更できます。 
  4. Resource Suite および Resource Template をダブルクリックし、[一致] 設定でテスト生成スコープを定義します。「Defining Smart API テスト生成の設定Test Generation Scope」を参照してください。 
  5. その他のリソースを手動で追加して .stt ファイルの設定を終了できます。「Smart API テスト生成の設定Manually Creating and Configuring Test Templates」を参照してください。

既存の .tst ファイルへの Smart Test テンプレートの適用

.stt ファイルで定義されたルールを使用するように既存のテストを更新できます。既に REST Client があり、テンプレートからアサーション、認証設定、ヘッダーの標準セットをすばやく適用したい場合、通常この機能を使用します。 

  1. ルールを適用する .tst ファイルを右クリックして [Apply Smart Test Template] を選択します。
     
  2. SOAtest は、リソース パスを REST クライアント URL と照合し、.stt で定義されたルールを、一致する URL を持つクライアントに適用します (一致条件の詳細については Defining Smart API テスト生成の設定Test Generation Scope を参照してください)。更新を確認し、[OK] をクリックします。   
     

Smart Test Template のサンプル

テンプレートの構造は、希望するアプリケーション テスト方法によって異なります。次の例の .stt は、テスト対象アプリケーション (CTP) の 1 つの方法を表しています。 

...

各 Resource Template は emdemo の下の特定のパスを指します。各 Resource Template で指定されたパスに対して生成されるテストには、連結されたツールの設定が含まれます。たとえば、"Resource 3" は "/em/virtualassets/manage" パスと一致するよう設定されています。結果として、このパスを含むテストには、レスポンスで返されるアセット設定を検証する JSON Assertor が含まれることになります。 

Salesforce 用の Smart API テスト生成の構成 

Salesforce アプリケーション アーキテクチャでは、特定の構成を実装してテストを適切に生成するために、Smart API テスト生成が必要です。

...

tst_configuration.properties ファイルの他のプロパティは、デフォルト設定または設定したカスタム値を使用するように構成できます。 

テスト作成プロパティ

tst_creation.properties 構成ファイルで追加のテスト作成プロパティを定義できます。tst_creation.properties ファイルは、SOAtest ワークスペースの TestAssets フォルダーの下にあります。デフォルトでは、SOAtest サーバーに接続するすべての Web Proxy が、このファイルの設定を使用します。 

...

includeContentTypesトラフィック処理対象に含めるコンテント タイプのカンマ区切りリストを指定します。デフォルトは application/json,application/x-www-form-urlencoded です。
excludeContentTypesトラフィック処理時に除外するコンテント タイプのカンマ区切りリストを指定します。デフォルトは空です。
disableDiffCreation

diff の作成を有効化/無効化します。詳細については「Diff」を参照してください。デフォルトは false です。

disableDiffParameterizationdiff のパラメータライズを有効化/無効化します。パラメータライズを使用すると、diff でデータ バンクに格納された値を使用できます。diff のパラメータライズが無効な場合 (このプロパティに true が指定されている場合)、静的な値だけを利用できます。デフォルトは false です。
disableEnvironmentCreation環境および環境変数の作成を有効化/無効化します。デフォルトは false です。
disableDataBankCreation

データ バンクの作成を有効化/無効化します。詳細については「Data Exchange ツールTools」を参照してください。デフォルトは false です。

disableAssertorCreationJSON Assertor ツールの作成を有効化/無効化します。デフォルトは false です。詳細については「JSON Assertor」を参照してください。
customHandlerClass.<number>
diffToolIgnoreNames.<number>

diff 作成時に無視する要素名に一致する正規表現を指定します。デフォルトは (?i)^(time|date|url|href).* です。

プロパティを追加し、.<number> を付けることで、その他の名前のパターンを指定できます。

例:

diffToolIgnoreNames.1=<name_pattern_1>

diffToolIgnoreNames.2=<name_pattern_3>

diffToolIgnoreNames.3=<name_pattern_3>

diffToolIgnoreValues.<number>

diff 作成時に無視する値に一致する正規表現を指定します。デフォルトでは、タイムスタンプを無視します。

[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,3})?(([+-][0-9]{2}:[0-9]{2})|Z)?

プロパティを追加し、.<number> を付けることで、その他の値のパターンを指定できます。

例:

diffToolIgnoreValues.1=<value_pattern_1>

diffToolIgnoreValues.2=<value_pattern_3>

diffToolIgnoreValues.3=<value_pattern_3>

assertorToolIgnoreQueryParameterNames.<number>

JSON Assertor ツール作成時に無視するクエリー パラメーター名に一致する正規表現を指定します。

デフォルトでは、"maxResultsSize" で始まるクエリー名を無視します。

(?i)^(maxResultSize).*

プロパティは大文字と小文字を区別しません。

プロパティを追加し、.<number> を付けることで、その他のパターンを指定できます。

assertorToolIgnoreQueryParameterValues.<number>

JSON Assertor ツール作成時に無視するクエリー パラメーター値に一致する正規表現を指定します。

パラメーター値のパターンに基づいてアサーションを作成する場合、クエリー パラメーターを無視します。

デフォルトでは、タイムスタンプを無視します。

[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,3})?(([+-][0-9]{2}:[0-9]{2})|Z)?

プロパティを追加し、.<number> を付けることで、その他のパターンを指定できます。

assertorToolIgnoreFieldNames.<number>

JSON Assertor ツール作成時に無視するレスポンス ペイロード値に一致する正規表現を指定します。デフォルトでは、time、date、url、href、SessionId または transactionId で始まるレスポンス ペイロードの値を無視します。

デフォルトでは、タイムスタンプを無視します。

(?i)^(time|date|url|href|SessionId|transactionId).*

プロパティは大文字と小文字を区別しません。

プロパティを追加し、.<number> を付けることで、その他のパターンを指定できます。

assertorToolIgnoreFieldValues.<number>

JSON Assertor ツール作成時に無視する値に一致する正規表現を指定します。デフォルトでは、タイムスタンプを無視します。

[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,3})?(([+-][0-9]{2}:[0-9]{2})|Z)?

プロパティを追加し、.<number> を付けることで、その他の値のパターンを指定できます。

例:

assertorToolIgnoreFieldValues.1=<value_pattern_1>

assertorToolIgnoreFieldValues.2=<value_pattern_3>

assertorToolIgnoreFieldValues.3=<value_pattern_3>

includeURLPatterns

テスト生成対象に含める URL パターンのカンマ区切りリストを指定します。Ant 形式の構文を使用して、大文字/小文字を区別したパターンを指定できます。デフォルトでは、すべての URL が対象になります。

次の例では、parasoft.com ドメインのすべての URL が対象になります。

includeURLPatterns=*.parasoft.com

excludeURLPatterns

テスト生成時に除外する URL パターンのカンマ区切りリストを指定します。Ant 形式の構文を使用して、大文字/小文字を区別したパターンを指定できます。デフォルトでは、すべての URL が対象になります。

次の例では、parasoft.com ドメインのポート 8443 のすべての URL が除外されます。

excludeURLPatterns=*.parasoft.com:8443

requestPayloadParameterizationExcludeNames.<number>

パラメータライズから除外する必要があるリクエスト ペイロードのフィールド名に一致する正規表現を定義します。

次の例は、パラメータライズから日付と時刻のフィールド名を除外します。

requestPayloadParameterizationExcludeNames.1=(?i)^(time|date).*

requestQueryStringParameterizationExcludeNames.<number>

パラメータライズから除外する必要があるリクエスト クエリーのフィールド名に一致する正規表現を定義します。

次の例は、パラメータライズから日付と時刻のフィールド名を除外します。

requestPayloadParameterizationExcludeNames.1=(?i)^(time|date).*

useServerSettings

Anchor
useServerSettings
useServerSettings

ローカルの tst_creation.properties 設定ファイルの代わりに SOAtest サーバーの tst_creation.properties ファイルの設定を使用するかどうかを指定します。デフォルト値は true です。

...