データベースクエリステップを使うと、mablテストの中でデータベースに対して呼び出しを行えます。データベースと直接やり取りすることで、アプリケーション内の特定の状態をシミュレーションするためのデータのセットアップや削除など、さまざまなシナリオで役立ちます。
この記事では、データベースクエリステップをブラウザまたはモバイルテストで使用する方法について、以下の内容を含めて説明します。
一般的なユースケース
テストでデータベースクエリステップを使う方法には、次のようなものがあります。
- テストデータの設定: クエリーを実行して新しいユーザーや顧客レコードをデータベースに挿入し、アプリケーションをテスト用の特定の状態にします
- データの変更を検証する: UIで操作を記録した後、クエリーを実行してこれらの変更がバックエンドに反映されていることを確認できます。また、その逆も可能です。
- テスト後のクリーンアップ:クエリーを使ってテスト中に作成されたデータを削除し、データベースが次回の実行に備えて準備できている状態にしましょう。
データベースクエリーステップを作成する
mablのテストからデータベースクエリーを送信する前に、mablでデータベース接続を設定する必要があります。
プライベートデータベース
すべてのデータベースクエリーは、mablクラウド上で実行されます。これは、mablトレーナー内やローカルまたはクラウド実行中のいずれの場合でも同様です。データベースが公開されていない場合は、プライベートデータベースアクセスの設定ができているかご確認ください。
mablトレーナーで、アプリケーションを正しい状態にしてからクエリーステップを追加します:+(ステップを追加)> データベースクエリー。ステップ編集者で、設定済みのデータベースを選択してください。
データベースステップ編集者
既存のクエリーを選択するか、+ 新しいクエリーをクリックして新しいクエリーを作成できます。クエリーを作成または更新すると、mablトレーナーがクエリー編集者を開きます。mablでのデータベースクエリーの作成方法について詳しくは、こちらのドキュメントをご覧ください。
クエリー編集者
実行ボタンをクリックしてクエリーをテストしてください。
mablでクエリーが実行されるときは、クエリー編集者、mablトレーナーでの再生、ローカル実行やクラウド実行のいずれの場合でも、接続されているデータベースにリアルタイムでアクセスします。データの作成、削除、更新を行う際はご注意ください。
クエリーを作成または選択した後、必要に応じてアサーションや変数を追加してから、保存をクリックしてください。
クエリー結果でアサーションを行う
mablトレーナーでデータベースクエリーステップを追加した後、アサーションを使ってクエリーが期待した結果を返したか確認できます。
結果テーブルで特定の値をアサーションするには、検証したいセルを選択し、+ アサーションを追加をクリックしてください。その後、必要に応じてアサーションを設定します。
結果に対するアサーション
行全体の値にアサーションを追加するには、+ アサーションを追加をクリックし、ターゲット欄に行番号を入力してください。ターゲット欄を空欄のままにすると、JSON結果全体にアサーションを追加できます。
行全体に対してアサーションを行う
列数、行数、影響を受けた行数、応答メッセージを含むクエリーのメタデータに対してアサーションを行うには、+ アサーションを追加をクリックし、ソースをメタデータに設定して、必要に応じてアサーションを構成します。詳しくは、クエリーのメタデータを理解するセクションを参照してください。
失敗時のオプション
データベースクエリーステップは、クエリーが失敗する場合や、ステップ内のアサーションが失敗する場合に失敗します。デフォルトでは、データベースクエリーステップは「即時失敗」に設定されており、ステップが失敗するとテストの実行が停止し、「失敗」としてマークされます。
ステップが失敗してもテストの実行を続ける場合は、クエリエディターの [オプション] タブで失敗時の挙動を次のように変更します。
- 「テスト終了時に失敗にする」- ステップが失敗してもテストは実行中のまま続行され、最後に「失敗」としてマークされます。
- 「失敗時も続行して警告を付与」- ステップが失敗しても、そのステップは成功として扱われ、警告が付与されます。
データベースクエリステップの失敗時のオプション
クエリー結果を変数に保存する
データベースクエリーステップを保存した後、結果を変数に保存し、mablトレーナー内の他の変数と同じように使うことができます。
結果テーブルの特定の値から変数を作成するには、セルを選択し、変数タブで+ 変数を追加をクリックし、変数に名前を付けてください。
結果を変数に保存する
行全体を変数として保存するには、+ 変数を追加をクリックし、ターゲット欄に行番号を入力してください。ターゲット欄を空欄のままにすると、クエリー結果全体を変数として保存できます。
レスポンス全体を変数に保存する
列数、行数、影響を受けた行数、レスポンスメッセージなどのレスポンスメタデータを変数に保存するには、+ 変数を追加 をクリックし、ソースを メタデータ に設定して、必要に応じて変数を設定します。クエリメタデータの理解については、次のセクション を参照してください。
メタデータを変数に保存する
クエリーのメタデータを理解する
クエリーステップでは、行数、列数、影響を受けた行数、応答メッセージなどのクエリーのメタデータに基づいて、アサーションや変数を作成できます。たとえば、UPDATE クエリーが成功したことを確認するには、rows_affected が 1 に等しいとアサートできます。
このメタデータの意味は、あなたがクエリーしているデータベースの種類によって異なります。
- リレーショナルデータベース - メタデータ属性は、データの厳密で表形式の構造に結び付いているため、リレーショナルなSQLデータベースではより分かりやすくなります。たとえば、列数はテーブル内の固定された列の数を指し、行数は結果セット内の行の数を指します。
-
NoSQLデータベース - NoSQLデータベースは、より構造化されていないスキーマレスなデータを扱えるため、メタデータの概念は異なる解釈になります。
- row count - NoSQLのクエリーでは、これはテーブルの行ではなく、返されるドキュメントの数を指します。
- rows affected - NoSQL の文脈では、クエリーによって影響を受けたドキュメントの数を指します。
- column count - ドキュメントは固定のフィールド数やあらかじめ定義された列構造を持たないため、NoSQL クエリーのメタデータにはこの属性が存在しません。