データベースクエリステップでは、mablテストのコンテキスト内でデータベースへの呼び出しを行うことができます。データベースの直接的な操作は、次のような、さまざまなシナリオで役立ちます。
- UIの変更がデータベースに適切に反映されていることを検証する
- データベースの変更がUIに適切に反映されていることを検証する
- データベースからのデータをmabl変数として保存することで、mablテストデータを入力する
- アプリケーションの特定の状態をシミュレートするためにデータを設定し(データのシード処理とも呼ばれる)、テストが完了したらそれを破棄する
データベースクエリを作成する際には、前もってチーム内でクエリを行うデータベースのスキーマについて理解を深め、間違いのない形でクエリを作成できるようにしておく必要があります。データを作成、削除、更新する場合には注意が必要です。
この記事では、テストにデータベースクエリステップを追加する方法について説明します。内容は次のとおりです。
データベースクエリの作成
データベースクエリを作成する前に、mablアプリケーションの [テスト環境設定] セクションでデータベースへの接続を設定しておく必要があります ([テスト環境設定] > [データベース接続])。
すべてのデータベースクエリのステップは、Trainerか、ローカルまたはクラウド実行中に発生したかにかかわらず、 mablクラウドで実行されます。パブリックネットワークからアクセスできない内部データベースへの呼び出しを行うテストのトレーニングを行う場合は、データベースにアクセスできるLink Agentが動作している環境を使用するようにトレーニングセッションを構成する必要があります。
mabl Trainerでデータベースクエリステップを作成するには、次の手順を実行します。
- プラス記号 (+) をクリックして、新しいステップを追加します。
- データベースクエリステップを選択します。
- クエリエディターで、設定したデータベースを選択します。
- 新しいクエリボタンをクリックします
- クエリを書きます。
- 動的に生成される値を含める場合は、パラメータを追加します。
- クエリを書くのが初めての場合や、より複雑なクエリを書くのにお手伝いが必要な場合は、AIクエリジェネレーターでクエリを記述してみてください。
- [クエリを実行] ボタンをクリックします。
- クエリが期待される結果を返すというアサーションを追加します。
- 結果のデータを後続のテストステップで使用する場合は、1つ以上の変数を作成します。
- 保存オプションを選択します。
- Save as one-time query: ワンタイムクエリはテストで1回だけ使用され、他のテストで再利用することはできません。
- Reusable query: 再利用可能なクエリはテストで複数回使用でき、他のテストで再利用できます。
クエリエディター
また、アプリケーションのクエリページで再利用可能なデータベースクエリを作成することもできます ([テスト] > [クエリ])。
クエリパラメータ
パラメータを使うことで、クエリの再利用性を高めることができます。テストから既存の変数をパラメータ値として追加するには、mabl変数シンタックスを使用します。例えば、test_var
という名前の変数は、クエリエディターのパラメータセクションで{{@test_var}}
となります。
クエリ自体では、ほとんどのデータベースタイプは:paramName
という形式でパラメータを参照します。開発者が慣れ親しんでいる特定の形式を持つデータベースタイプについては、クエリエディターはその特定のドライバの形式に対応します。Microsoft SQL Serverはパラメータに@paramName
形式を使用します。
AIクエリジェネレーター
自分でクエリを書くだけでなく、生成AIを使ってクエリを作成することもできます。AIプロンプトの入力で、自然言語を使用してクエリの目的を記述し、生成をクリックします。
AIクエリジェネレーターを使用する場合は、以下の点に注意してください:
- 生成AIの能力と同様に、結果は完全に予測できるものではなく、エラーが発生する可能性もあります。テストに組み込む前に、必ず結果を確認してください。
- データベース接続のセットアップに使用するクレデンシャルに、メタデータテーブルへのアクセス権限が含まれていることを確認してください。
mablの生成AIについて詳しくは、こちらをご覧ください。
アサーション
クエリが期待どおりの結果を返していることを確認するアサーションを追加します。
結果に対するアサーション
結果のテーブル内の値に対してアサートするには、セルを選択し、[アサーション] タブを開いて [+ アサーションを追加] をクリックします。必要に応じてアサーションの詳細を設定します。
結果のメタデータに対するアサーション
結果のメタデータに対してアサートするには、次の手順を実行します。
- [アサーション] タブで、[+ アサーションを追加] をクリックします。
- [ソース] を "Metadata" に更新します。
- [対象] を選択します ("行数"、"カラム数"、"影響を受ける行"、または "メッセージ")。
- 必要に応じてアサーションタイプと値を構成します。
失敗時のオプション
クエリが失敗するか、ステップ内のアサーションが失敗した場合、データベースクエリステップは失敗します。デフォルトでは、データベースクエリステップは「すぐに失敗にする」とマークされます。これは、ステップが失敗した場合に、テストの実行が停止され、「失敗」とマークされることを意味します。
ステップが失敗してもテストの実行を続ける場合は、クエリエディターの [オプション] タブで失敗時の挙動を次のように変更します。
- テスト終了時に失敗にする - ステップが失敗した場合も、テストの実行を続行し、終了時に「失敗」とマークされます。
- 失敗時も続行し、警告を表示する - ステップが失敗した場合でも、ステップは成功し、警告がマークされます。
データベースクエリステップの失敗時のオプション
変数
データベースクエリステップの結果から変数を作成します。データベースクエリステップを保存すると、mabl Trainerの他の変数と同じように、新しい変数を使用できます。
結果からの変数の作成
結果のテーブル内の値から変数を作成するには、セルを選択し、[変数] タブを開いて [+ 変数を追加] をクリックします。変数に名前を付けます。
結果のメタデータからの変数の作成
結果のメタデータから変数を作成するには、次の手順を実行します。
- [変数] タブで、[+ 変数を追加] をクリックします。
- 変数に名前を付けます。
- [ソース] を "Metadata" に更新します。
- [対象] を選択します ("行数"、"カラム数"、"影響を受ける行"、または "メッセージ")。
結果の値の変数への保存
既存のデータベースクエリの使用
テスト内で既存のデータベースクエリを使用するには、次の手順を実行します。
- プラス記号 (+) をクリックして、新しいステップを追加します。
- データベースクエリステップを選択します。
- クエリエディターで、設定したデータベースを選択します。
- クエリを選択します。
- [Save] をクリックして、データベースクエリステップをテストに追加します。
データベースクエリの更新
mabl Trainerでデータベースクエリを更新するには、次の手順を実行します。
- データベースクエリステップにマウスカーソルを合わせ、編集用の鉛筆アイコンをクリックします。
- [クエリを編集] ボタンをクリックします。
- 必要に応じてデータベースクエリを更新します。
- 次のいずれかの保存オプションを選択します。
- Save
- Save as new reusable query
- Save as one-time query
1つのテストで再利用可能なクエリの更新を保存すると、それを使用するすべてのテストのクエリが更新されます。
また、次のように、mablアプリケーションで再利用可能なクエリを更新することもできます。
- クエリページに移動します ([テスト] > [クエリ])。
- 更新するクエリをクリックします。
- 必要に応じてクエリを更新します。
- クエリを保存します。
クエリを記述する際は、次の制限事項に留意してください。
- クエリの結果が1MBを超えることはできません。
- クエリ結果は100行を超えることはできません。
- 複数のテーブルから結果を返すクエリはサポートされていません (例:
SELECT * FROM TABLE1; SELECT * FROM TABLE2;
)。該当する場合は、代わりにJOIN
またはUNION
を使用してクエリを記述します。 - データベースのほとんどの列タイプはサポートされますが、JSONタイプやバッファータイプなど、一部の特殊な列タイプはサポートされません。
サイズ制限を超えるクエリを返さないようにするには、より的確なクエリを記述して必要な行と列のみを取得するようにします。すべての情報が必要な場合は、複数のデータベースステップを作成します。
それぞれのユースケースでこれらの制限事項への対処が必要な場合は、mabl Product Portalからフィードバックを提供してください。