Data Repository CRUD Tool を使用すると、テスト アクティビティ中に、接続されたデータ リポジトリのデータセット レコードを更新できます。
ネイティブの CRUD ツールと CRUD Tool Extension
Data Repository CRUD Tool Extension でもデータリポジトリ内のデータを操作できますが、このツールでは必要のない、追加設定が必要です。
このセクションの内容:
はじめに
Data Repository CRUD Tool は、銀行アプリケーションで口座残高の値を変更するなど、リポジトリ内のデータ変更を必要とするアクションを自動化することを目的としています。データ リポジトリのレコードに対して以下の操作を行うことができます。
- 新しいデータセット レコードを作成する
- 既存のデータセット レコードを読み取る
- 既存のデータセット レコードを更新する
- データセット レコードを削除する
主な使用例としては、メッセージ レスポンダーの出力としてこのツールを追加し、仮想アセットにメッセージが送信されたときにデータに対して実行する操作を設定します。データ リポジトリを更新する前に、ツールの操作設定を手動で設定したり、レコードの値をスクリプトで変更することができます。
全般設定
レスポンダーを右クリックし、[出力の追加] をクリックします。
- ウィザードで受信リクエストの種類を選択し、Data Repository CRUD Tool を選択します。
- [終了] をクリックして、ツールの名前を指定します (オプション)。
- [構成] タブで [追加] をクリックし、操作の名前を指定します (オプション)。
- [作成]、[読み取り]、[更新]、または [削除] オプションを有効にします。
- 操作を実行するデータリポジトリのデータソースを [データソース] ドロップダウン メニューから選択します。
[応答条件] セクションで [追加] をクリックし、応答条件の列および操作するデータセット レコードの値を指定します。 データソースの応答条件を設定する方法の詳細については、[データソース応答条件] タブ を参照してください。
- 作成、読み取り、更新、削除 の各操作に関する設定を行い、変更内容を保存します。
- 設定を追加することで、同じ実行で複数のフィールドに対して複数の操作を実行することができます。
- レスポンダーをデプロイし、クライアントを実行して、接続されたリポジトリで設定した操作を実行します。
作成の設定
[作成] セクションで、新しいレコードを作成する方法を指定します。
複合型値
[複合] オプションを使用すると、新しい構造と値を手動で入力できます。
- [JSON の編集] をクリックすると、レコードを指定するためのエディターが開きます。デフォルトでは、レコード構造の JSON テンプレートがあらかじめ入力されています
- [入力モード] ドロップダウンから [フォーム JSON] ビュー または [リテラル] ビュー を選択します。デフォルトでは、フォーム JSON が選択されています。
- 値を指定して [OK] をクリックします。[テンプレートのリセット] をクリックして、既存の JSON 構造に基づいてフォームをリセットすることもできます。
Form JSON ビューは、右クリック メニューからの切り取り、コピー、削除、および挿入アクションもサポートしています。
- [OK] をクリックします。[値] フィールドには、JSON のプレビューが表示されます。
スクリプト値
スクリプトを選択し、スクリプトを使用して JSON ペイロードを作成することもできます
詳細については「スクリプトを使用した拡張機能の基礎」を参照してください。
パラメータライズされた値
ツールが Data Bank ツールに接続されている場合は、[パラメータライズ] を選択し、ドロップダウン メニューから抽出された値を選択できます (次も参照: 別のツールから抽出した値でツールをパラメータライズ) 。
操作設定
一致する応答条件が見つかった場合に既存のレコードを更新するには、[既存の応答条件一致を置換] オプションを有効にします。
読み取り設定
リクエストまたはレスポンスのデータをコピーまたは抽出して他のアクションに渡すために、読み取りアクションを設定できます。これにより、テストシナリオに基づいてデータ リポジトリ内のレコードを変更できます。
- [読み取り] セクションで [追加] をクリックし、要素セレクタのタイプを選択します。
- [レコード] を選択して、読み取りたいレコード値の XPath を指定します。
- [キー] を選択して、読み取りたいキー値を含むキー列を指定します。次の例では、リポジトリに catsKeyCol というキー列が含まれています。
リポジトリには、選択可能なレコードが 2 行含まれています。
この例では、データソース応答条件のセクションにワイルドカードが設定されており、これは CRUD ツールがすべてのレコードから読み取ることを表します。実行時には、CRUD ツールは値1
と2
を返す必要があります。
- [レコード] を選択して、読み取りたいレコード値の XPath を指定します。
- 値を格納するカスタム列名を指定します。
- このツールを SOAtest クライアントで使用している場合は、書き込み可能なデータソース列から列を選択することもできます。
- スイートに変数が含まれている場合は、変数の値に一致する列名を指定できます。
- [OK] をクリックして、さらに適用したい操作設定を有効にします。
- エラーが報告された場合にツールがリポジトリを読み取らないようにするには、[応答条件と一致しない場合に失敗する] オプションを有効にします。このオプションはデフォルトでオンです。
- 最初の一致の後に読み取りを停止するには、[最初の条件マッチだけを返す] オプションを有効にします。このオプションはデフォルトでオンです。
- 要素が空の場合に、使用する値またはパラメータライズされた値を指定するには、[空要素の抽出方法:] オプションを有効にします
- 要素が欠落している場合に、使用する値またはパラメータライズされた値を指定するには、[不足要素の抽出方法:] オプションを有効にします。
更新設定
データ リポジトリのレコードにアクセスするための XPath のようなセレクタを使用して、更新するレコードの場所を指定します。
- [追加] をクリックして、更新モードを指定します。以下のモードを指定できます。
- 要素の置換: 文字列などの個々のプリミティブ レコードの値を更新します。
- リストの置換: 配列などの非プリミティブ値を更新します。
- リストの末尾に追加: 配列の最後に値を追加します。
- リストの先頭に追加: 配列の先頭に値を追加します。
- リストから削除: 配列から値を削除します。
- 更新する要素の場所を [場所] フィールドに指定します。
- [値] フィールドで、次のいずれかのオプションを使用して新しい値を指定します。
- [単純] を選択して固定値を入力します。ドロップダウンメニューから特別な値 [exclude] または [null] を選択することもできます。
- [スクリプト] を選択して [スクリプトの編集] をクリックし、既存のレコードに基づいて新しい値をプログラムで指定します。
- [パラメータライズ] を選択し、抽出された値をドロップダウン メニューから選択します。
- [複合] を選択して [JSON の編集] をクリックし、レコードの構造と値の更新を手動で指定します。フォーム JSON ビュー (デフォルト) または リテラル ビュー を使用して JSON を変更できます。[テンプレートのリセット] をクリックして変更を元に戻します。Form JSON ビューは、右クリック メニューからの切り取り、コピー、削除、および挿入アクションもサポートしています。
- [OK] をクリックします。
- [操作設定] セクションで追加の設定を有効にします。
- 既存のレコードが見つからない場合に新しいレコードを作成するには、[更新できない場合に作成する] オプションを有効にします。
- エラーが報告された場合にツールがリポジトリを更新しないようにするには、[応答条件および更新のエラー発生時に失敗する] オプションを有効にします。このオプションはデフォルトでオンです。
削除の設定
削除操作が有効になっている場合、応答条件の構成設定 ( General Configuration を参照) に一致するすべてのレコードが削除されます。
[応答条件と一致しない場合に失敗する] オプションを有効または無効にすることができます。
CRUD のワークフロー例
この例では、CRUD ツール をJSON メッセージ レスポンダーにアタッチし、接続されたデータ リポジトリを操作します。この例では、サンプルの応答に基づいて新しいリポジトリを作成するため、次の手順を実行する場合は、機能するAPIエンドポイントにアクセスする必要があります。
プロジェクトのセットアップ
このフェーズでは、プロジェクトを設定し、レスポンダーを追加し、データ リポジトリを関連付けます。既存のレスポンダーまたは SOAtest クライアントがデータ リポジトリに接続されている場合は、この手順をスキップできます。
- プロジェクト フォルダーを右クリックして、新しい .pva ファイルを追加します。
- 名前を指定し、[次へ] をクリックします。
- この例では、空のプロジェクトを作成します。[空] を選択し、 [終了] をクリックします。
- 空のレスポンダー スイート ノードを右クリックし、[新規追加] > [レスポンダー] をクリックします。
- この例をプロジェクトに適合させる場合は、JSON メッセージ レスポンダー または別のレスポンダー タイプを選択し、[終了] をクリックします。
- このチュートリアルでは、レスポンダー トラフィックの例から新しいリポジトリを作成します。[レスポンス] タブをクリックし、フォーム入力モードを リテラル に切り替えます。
- サンプルのレスポンスをフィールドに貼り付け、入力モードをトラフィックに適したフォーム入力モードに切り替えます。この例では、フォーム JSON モードに切り替えます。
- データ ツリーのルート ノードを右クリックし、[データ リポジトリ データソースの生成] を選択して、リポジトリの作成を開始します。
- データ リポジトリの接続設定を行い、[OK] をクリックしてリポジトリを作成します。
- この例の新しいリポジトリには、レコードを識別するために必要なキー列がありません。データ リポジトリ ビューで新しいデータセットをクリックします。ビューを開くか更新する必要がある場合があります ( SOAtest/Virtualize の UI を参照)。
- データ リポジトリ エディター内を右クリックし、[キー列の追加] を選択します。
- 名前を指定して [OK] をクリックし、すべての変更を保存します。
少なくとも 1 つのキー列を持つ新しいリポジトリにレスポンダーを接続する必要があります。
CRUD ツールの追加と設定
このステップでは、いくつかの操作を実行するために、CRUD ツールを追加して設定します。
- レスポンダーを右クリックし、[出力の追加] をクリックします。
- この例では、リクエストがレスポンダーに送信されたとき CRUD ツールを実行する必要があります。[受信リクエスト] メニューから [ペイロード] を選択します。
- Data Repository CRUD Tool を選択し、[終了] をクリックします。
- CRUD ツールのインターフェイスで、[追加] をクリックし、操作名を "read" に変更します。
- 読み取り 操作を選択し、作成したデータソースが選択されていることを確認します。
- 応答条件テーブルで [追加] をクリックし、キー列の名前を指定します。
- この例のリポジトリには 1 つの行しかありませんが、ワイルドカードを使ってすべての行を相関させます。
- [OK] をクリックし、[読み取り] テーブルで [追加] をクリックします。
- この例では、XPath を指定して、準備するレコードを選択します。[選択された要素] メニューから [レコード] を選択し、XPath をクリックします。
- 選択を求められたら、読み取る要素を選択します。この例では、レコード全体を読み取るためにルート要素を選択します。
- [OK] をクリックして XPath セレクタを閉じ、[OK] をクリックして要素選択の追加設定を終了します。
- その他の読み取りオプションはデフォルト設定のままとし、ツール構成セクションで [追加] をクリックして、別の操作を追加します。
- この操作の名前を "create" に変更し、[作成] オプションを選択します。
- [応答条件] テーブルで [追加] をクリックしてキー列を指定し、値として
2
を入力して別の行を作成します。 - [OK] をクリックし、[作成] セクションの [値] フィールドから パラメータライズ を選択して、ルート要素を指定します。ドロップダウン メニューからルート要素を選択できない場合は、変更内容を保存して CRUD ツールのエディターを閉じ、再度開く必要があることがあります。
- これで CRUD ツールは、キー列に相関するすべての保存されたレコードを読み取り、ルート要素の下にすべての値を含む別のレコード (行 2) を作成するように構成されました。変更を保存し、エンドポイントを呼び出して .pva を実行します。
レコードのコピーがリポジトリに作成されます。
リポジトリの拡張
CRUD ツールに操作を追加して、既存のレコードを変更または削除できます。
- CRUD ツールを開き、[追加] をクリックして別の操作を作成します。
- この操作の名前を "update" に変更し、[更新] オプションを選択します。
- [応答条件] テーブルで [追加] をクリックし、[キー] 列フィールドに
catsKeyCol
と入力します。 - 固定値として
2
を指定し、[OK] をクリックします。これにより、前の手順で作成したレコードに対して実行される操作が指示されます。 - [更新] テーブルで [追加] をクリックし、要素の置換 モードを選択します。
- [場所] をクリックして、値を更新する要素を選択します。
- [値] メニューから [単純] を選択し、フィールドに新しい値を指定します。この例では、ルートの下にある最初のアイテム要素が更新されます。同じレベルのすべてのアイテムを更新するには、パスの
1
をワイルドカードの*
に置き換えることができます。 - [OK] をクリックして変更を保存します。
- .pva を呼び出すと、リポジトリ内のレコードが更新されます。