このセクションでは、トラフィック ログにキャプチャされたトラフィックからパラメータライズされたテスト クライアント (SOAP Client、REST Client、EDI Client など) を作成する方法の概要を説明します。このセクションの内容:
要件
- チームのデータ リポジトリ サーバーがインストールされ実行されている必要があります。詳細については次を参照してください: リモート Data Repository サーバーのインストール
- メッセージの内容は整形式でなければなりません。SOAP メッセージには、最上位の XML 要素が 1 つだけ存在しなければなりません。
- Data Repository は混合型の JSON 配列のパラメータライズをサポートしていません。JSON 配列に混合型が含まれていない場合、SOAtest は配列のすべての要素が最初の要素と同じ型であるとみなします。
コンソール ビューのモニタリング
トラフィックからテストを作成する際、コンソール ビューを開いておくと役立ちます。コンソール ビューには、トラフィック ファイルの処理中に生成される警告、エラー、および通知メッセージが表示されます。
ウィザードの使用
利用できる作成ウィザードで [トラフィック] > [パラメータライズされたメッセージを生成] を選択します。詳細については「既存のプロジェクトへの新規 .tst ファイルの追加」および「新規テスト スイートの追加」を参照してください。
- トラフィック ウィザードで次の情報を指定し、[次へ] をクリックします。
- トラフィック ファイルの場所を指定します。これは、サービス定義ファイルを使用する場合はオプションです。
- 必要に応じて文字エンコーディングを変更します。
- (オプション) サービス定義ファイルを指定します。サービス定義を提供することで、SOAtest はより良いメッセージ グループを作成できます。
以前にテンプレートに保存した設定グループをウィザードに入力したい場合、テンプレートの場所を入力します。SOAtest のテンプレートの作成と使用の詳細については「構成テンプレートを使用したウィザード設定の再利用と共有」を参照してください。
[Parasoft Data Repository Settings] ページで、 テスト クライアントまたはメッセージ レスポンダーのパラメータライズに使用されるデータを格納するデータ リポジトリを指定し、[次へ] をクリックします。
[サーバー] フィールドで、接続するサーバーを指定します (組込みサーバーまたはリモート サーバー)。リモート サーバーを選択した場合、[ポート]、[ユーザー]、[パスワード] フィールドは自動的に設定されます。この設定は必要に応じて変更できます。組込みサーバーを選択した場合、[ポート]、[ユーザー]、[パスワード] フィールドはグレー表示になります。
- [リポジトリ名] フィールドで、使用するリポジトリ名を選択または入力します。新しいリポジトリ名を入力すると、その名前でリポジトリが作成されます。
リポジトリ接続を定義したら、 [検証] をクリックして接続をチェックできます。
ウィザードが終了するまでのリポジトリのロック
リモートの (たとえば組込みではない) Data Repository サーバーで作業している場合、ここで指定するリポジトリはウィザードが終了するまでロックされます。「tmp によってロックされています」ではなく「your_username によってロックされています」と表示させたい場合、[ロックのために認証を設定] チェックボックスをオンにし、使用する CTP サーバーの URL を指定します。そして CTP サーバー用のユーザー名とパスワードを指定します。ロックの詳細については「リポジトリのロックおよびロック解除」を参照してください。
[次へ] をクリックし、メッセージ フォーマットおよびグループ化ストラテジの設定を行います。
[リクエスト メッセージ形式] に正しいフォーマットが設定されていることを確認します。フォーマットが正しくない場合、適切なフォーマットを選択します。SOAtest は、トラフィックファイルの最初のメッセージに基づいて、リクエストおよびレスポンスのメッセージ フォーマットの識別を試みます。1 つのトラフィック ファイルでは、すべてのリクエストが同じフォーマットであり、またすべてのレスポンスも同じフォーマットであることが期待されます。リクエスト フォーマットとレスポンス フォーマットは異なっていてもかまいません。メッセージ フォーマットを検出できなかった場合、プレーン テキストが選択されます。変換オプションは、EDI やカスタム形式などの一部の形式で使用できます。[変換オプション] ボタンをクリックして、必要な変更を加えます。
以下のいずれかのメッセージ グループ化オプションを選択します:
操作/タイプに基づく: 操作またはメッセージ タイプに基づいてメッセージをグループ化します。このオプションが有用なのは、操作によって、あるいはメッセージ タイプ (つまり、SOAP ボディの要素名、プレーン XML メッセージのルート要素、または指定されたメッセージ形式のメッセージ タイプ) によって、明確に特定できるメッセージを持つサービス トラフィックの場合です。トラフィック ファイル中で発見された操作/タイプごとに 1 つのレスポンダーが生成されます。
- 類似リクエストに基づく: リクエスト メッセージの構造に基づいてメッセージをグループ化します。構造が類似したリクエストに関連するレスポンスを個々のレスポンダーが持つよう、Virtualize はリクエスト メッセージの構造を解析し、リクエスト/レスポンスをグループ化してレスポンダーにします。メッセージは、たとえ値が異なっていても、同一の DOM ツリー モデルを持つ場合に " 類似" と見なされます。このオプションは、各メッセージ レスポンダー内でレスポンスにリクエストを関連付けるための規則を最適化し簡潔にするために使用されます。
類似レスポンスに基づく: レスポンス メッセージの構造に基づいてメッセージをグループ化します。このオプションを選択すると、Virtualize は、レスポンス メッセージの構造を解析し、リクエスト/レスポンスのペアをグループ化してレスポンダーにすることで、個々のレスポンダーが、構造が類似したレスポンスを持つようにします。メッセージは、たとえ値が異なっていても、同一の DOM ツリー モデルを持つ場合に " 類似" と見なされます。
なし: グループ化しない。トラフィック ファイル中のレスポンス メッセージごとにレスポンダーが生成されます。リクエスト/レスポンスのペアごとに個別のメッセージ レスポンダーを用意したい場合、このオプションを使用します。
- サービス定義ファイルまたはテンプレート ファイルを指定した場合は、[メッセージ グループ作成オプション] セクションで [制約] オプションを有効にできます。このオプションを有効にすると、テンプレート ファイルとサービス定義ファイルのいずれかで定義されたメッセージ グループだけがグループ化されます。他のすべてのメッセージは無視されます。このオプションを無効にすると、SOAtest はトラフィック ファイルに表示されるすべてのメッセージをグループ化します。サービス定義ファイルとテンプレート ファイルが提供されていて、このオプションが有効になっている場合、グループ化は、サービス定義によって制約される前に、テンプレート ファイルに従って制約されます。その結果、メッセージがサービス定義ファイルで定義されていても、テンプレート ファイルで定義されていない場合、メッセージは無視されます。[制約] オプションは、デフォルトで有効化されています。
- サービス定義ファイルまたはテンプレート ファイルを指定した場合は、[メッセージ グループ作成オプション] セクションで [空のグループ] オプションを有効にできます。このオプションを有効にすると、トラフィック ファイルにグループ基準に一致するメッセージが含まれていない場合でも、サービス定義ファイルまたはテンプレート ファイルに基づいてグループが作成されます。このオプションを無効にすると、メッセージのないグループは作成されません。トラフィック ファイルがサービス定義またはトラフィックテンプレートと一緒に指定されている場合、[空のグループ] オプションはデフォルトで false に設定されます。トラフィック ファイルが指定されていない場合、[空のグループ] オプションはデフォルトで true に設定されます。
- [次へ] をクリックし、[メッセージ グループ化の確認] 画面で操作やメッセージの情報を確認します。
- 含まれている列は、適用されているグループ化方法に基づきます。
- テーブルの各行は、グループを定義する条件に対応します。テーブルの各行に 1 つのグループが生成されます。各グループに 1 つのレスポンダーが生成されます。
応答条件基準は、表に表示されている順番に (上から下に) 処理されます。URL パスおよびパラメーターは、レコード タイプのフィールドに対応してパラメータライズされます。フィールド名は自動生成され、[データの再利用] ページ (ウィザードの後のページで表示されます) に表示されます。
利用できるコントロールを使って、グループ化条件を追加、変更、並べ替え、および削除することができます。SOAtest でのグループ化条件の詳細については「グループ化条件のカスタマイズ」を参照してください。条件を変更したら、次のページに進む前に必ず [再グループ化] をクリックしてください。
WSDL/スキーマを指定する場合は、[構成] 列のオプションを有効にし、[次へ] をクリックして適切な値を指定します。
トラフィックの種類に基づいて、サービス定義オプションが表示されます。たとえば、トラフィックが JSON の場合、OpenAPI/Swagger、RAML、または WADL ファイルを指定するオプションがあります。XML トラフィックの場合、WSDL またはスキーマを指定できます。WSDL またはスキーマを指定するべき場合
WSDL またはスキーマを指定することには次のメリットがあります。
生成されたフォーム入力モデルは指定した WSDL/ スキーマに基づくので、フォーム入力を編集したり保守したりするときに豊富なタイプを利用できます。
サービスの進化や環境条件の変化とユーザーのアセットとを同期しておくために、変更アドバイザーを利用できます (変更アドバイザーについては「変更管理」で説明) 。
生成されたフォーム入力とそのデータ パラメータライズが元のメッセージに一致しない場合、これは「元のメッセージが WSDL/スキーマに完全に一致していないこと」、あるいは「元のメッセージとのマッピングに失敗したこと」を表します。フォーム入力モデルが必ずトラフィック メッセージに完全に一致するよう、WSDL/スキーマを省略してください。
- [終了] をクリックしてウィザードを完了するか、[次へ] をクリックしてインポートされたトラフィックのデータ再利用設定を構成します。
- 定義されたレコード ID は、どのデータが新規で、どの新規データが既存のレコードに一致するかを判断するために使用されます。このデータセットがまだ指定されていない場合、このページのデータ ツリーで ID を追加/変更できます。
- ツリーは、ID フィールドを緑色の矢印のアイコンで示します。既存のデータ セットには注釈が表示されます。
トラフィックファイルの新規データを使って、既存のリポジトリデータセットをどのように拡張あるいは更新するかを指定できます。
置換: 既存データを削除し、新規データを追加します。
追加: 既存のデータを消去せずに新規データを追加します。
一致するデータ (ID によって既存のレコード タイプに一致するデータ) がある場合、既存のレコード タイプを再利用するか、それとも既存レコードを更新するかを指定できます。再利用: 一致する既存のレコードを再利用/共有します。更新: 既存のレコードの対応するフィールドをトラフィックのデータで更新し、新規レコード タイプに対応する新規レコードを追加します。SOAtest での ID の指定とデータの再利用/更新オプションの選択の詳細については「データの再利用および更新の構成」を参照してください。 Virtualize については「データの再利用と更新の設定」を参照してください。
- [次へ] をクリックし、[最終オプション] 画面で追加の構成を指定します。
- フォーム モードまたはリテラル モードでメッセージを作成するようにウィザードを構成できます。これらのモードは、フォーム入力ビュー( フォーム入力 )またはリテラル ビュー( リテラル )を表示します。
[再利用可能なテンプレートに構成データをエクスポート] オプションを有効にして、ファイル名と場所を指定して、このウィザードで使用した設定をテンプレートとして保存することができます。(MQ および JMS のみ) 次の SOAtest ウィザード ページで接続設定を指定します。設定は、このトラフィックから作成されるツールに適用されます。詳細については「MQ オプションの設定」および「JMS オプションの構成」を参照してください。テンプレートの作成と使用の詳細については「SOAtest での構成テンプレートによるウィザード設定の再利用と共有」を参照してください。
- [終了] をクリックします。
次のアイテムが作成および構成されます。
値がパラメータライズされた 1 つまたはそれ以上のテスト クライアント。メッセージのフォーマットに応じて SOAP Client、REST Client、EDI Client または Messaging Client が作成されます。メッセージが XML または JSON ではなく、パフォーマンスへの影響が予想されるほどメッセージのサイズが大きくない限り、[フォーム入力]/[フォーム JSON] ビューがデフォルトで使用されます。そうでない場合、[リテラル] ビューが使用されます。
新規データ リポジトリの場合、適用可能なデータ セットおよびレコード タイプが追加されたリポジトリが追加されます。トラフィックの解析によって識別されたメッセージのグループごとに 1 つのデータ セットが追加されます。既存のデータ リポジトリの場合、新規データ セットおよびレコード タイプが既存のリポジトリに追加されます。
- 追加されたデータ セットごとにリポジトリ データ ソースが追加され、テスト クライアントまたはメッセージ レスポンダーは関連するデータ ソースを使用するよう構成されます。
次の図は、リポジトリの値でパラメータライズされた REST Client の例です。
次の図は、対応するリポジトリの一部分です。
このパラメータライズされたデータ駆動型 REST Client は、ツール自体を変更する必要もなく、そのままで幅広くさまざまなテスト値を使用して実行できます。ツールを編集するのではなく、関連するデータ リポジトリの値を変更または拡張します。
データ リポジトリに格納されたデータの編集および格納については、「リポジトリ構成とコンテンツの参照/修正」を参照してください。
なお、トラフィック ファイル中に存在する、カスタム トランスポート ヘッダーおよび SOAP ヘッダー (たとえば WS-Security ヘッダー) は、生成されるアセットあるいはデータリポジトリ データ セットに自動的に設定されません。
SOAtest ウィザードの入力: 詳細
以下のセクションでは、ウィザードの入力時に役立つ詳細な情報を説明します。