mablではテスト出力やアクティビティを確認するためのさまざまなアプリケーション内ダッシュボードを提供していますが、アプリケーションによってはそれぞれのビジネスに合わせて作成した専用のレポートが役立つ場合もあります。BigQuery用のmablインテグレーションを利用すると、BigQueryやLooker Studioなどのツールでこうしたレポートをリアルタイムで抽出、変換、表示することができます。
mabl BigQueryインテグレーションでは、リアルタイムのカスタムレポートを利用して、テストパターンの詳細な分析を行うことができます。この記事では、mabl BigQueryインテグレーションの設定手順とmabl BigQueryデータセットのテーブルの概要について説明します。
セットアップ
mabl BigQueryインテグレーションを使用するには、有料のGCP BigQueryアカウントが必要です。
無料のトライアル用Google Cloudアカウントで利用できるBigQueryサンドボックス機能は、mabl BigQueryのフィードエクスポートでは使用できません。これは、BigQueryサンドボックスでストリーミングインサートがサポートされていないためです。
mabl用のサービスアカウントの作成
配信先のGoogle Cloud Platformプロジェクトに、BigQuery Data Editor
として、サービスアカウントmabl-feeds@mabl-prod.iam.gserviceaccount.comを追加します。詳細はこちら。
代替IAM権限のセットアップ
mablのmabl-feeds@mabl-prod.iam.gserviceaccount.comユーザーをより厳しく制限する場合は、以下の権限を持つカスタムIAMロールを作成します。
bigquery.datasets.create
bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.update
bigquery.tables.updateData
このカスタムIAMロールをターゲットGCPプロジェクトのmablサービスアカウントに割り当てます。
BigQueryインテグレーションの設定
mablアプリケーションで [Settings] [Integration]
に移動し、BigQueryインテグレーションの [+ Setup] ボタンをクリックします。
BigQueryインテグレーションページで、エクスポート先のプロジェクトID、データセット名、エクスポートテーブルのプレフィックスを追加します。オプションで、[Redact personal information fields] をオンにすることもできます。[Save] をクリックして変更内容を保存します。
個人情報フィールドを編集
[Redact personal information fields] をオンにすると、以下のフィールドがBigQuery Exportフィードから除外されます。
trigger_user_email
actor_email
エクスポート時にこれらのフィールドのエントリがPII_REDACTED
という値に置き換えられます。plan_name
やlabels
など、その他のフリーテキストフィールドは引き続き含まれます。mablは、これらのフィールドの内容を検査しません。
BigQueryテーブルのレイアウト
BigQueryインテグレーションでは、mablデータのストリーミングエクスポートが利用できます。BigQuery Exportフィードを使用して最初のmablテストを実行すると、mabl_export
データセットと以下のテーブルが作成されます。
- プラン実行:
<table_prefix>_plan_run
- テスト実行:
<table_prefix>_journey_run
- 失敗の理由:
<table_prefix>_run_categorization
- パフォーマンステストの実行:
<table_prefix>_performance_test_run
- アクティビティフィード:
<table_prefix>_activity_feed
mabl BigQuery Exportフィードでは、テストは "journey" と呼ばれます。
たとえば、mablでBigQueryインテグレーションを設定する際にデフォルト名を使用した場合は、次のBigQueryテーブルが作成されます。
<your-project>:mabl_export.mabl_plan_run
<your-project>:mabl_export.mabl_journey_run
<your-project>:mabl_export.mabl_run_categorization
<your-project>:mabl_export.mabl_performance_test_run
<your-project>:mabl_export.mabl_activity_feed
パーティション
これらのテーブルは、列に基づいて日ごとにパーティション分割されます。
<table_prefix>_plan_run (start_time列)
<table_prefix>_journey_run (start_time列)
<table_prefix>_run_categorization (created_time列)
<table_prefix>_performance-test_run (start_time列)
<table_prefix>_activity_feed (created_time列)
一定期間の経過後にテストデータを破棄する場合は、BigQueryデータウェアハウスでパーティションの有効期限を設定します。
テーブルスキーマ
プラン実行テーブル
*_plan_run
テーブルは、統合ワークスペースのすべてのプラン実行を含み、プラン実行の完了時に書き込まれます。
列名 | タイプ | 説明 |
---|---|---|
id | String | プラン実行ID |
plan_id | String | プランID |
plan_name | String | プラン名 |
plan_url | String | プランUIのURL |
status | String | プラン実行ステータス |
success | Boolean | プラン実行全体の成功 |
start_time | Timestamp | プラン実行の開始時刻 (UTC) |
stop_time | Timestamp | プラン実行の停止時刻 (UTC) |
runtime_millis | Integer | プラン実行の合計時間 (ミリ秒) |
tags | String, Repeated | プランタグ |
labels | String, Repeated | プランラベル |
application_id | String | テスト対象アプリケーションID |
application_name | String | テスト対象アプリケーション名 |
application_url | String | テスト対象アプリケーションUIのURL |
starting_url | String | テスト対象アプリケーションの開始URL |
trigger_type | String | 実行のトリガータイプ: schedule 、manual 、customer_event (API経由で実行)、insight (mablインサイトに反応して実行) |
trigger_user_id | String | 実行をトリガーするユーザー (manual トリガータイプを含むプランのみ) |
trigger_user_email | String | 実行をトリガーするユーザーのメールアドレス (manual トリガータイプを含むプランのみ) |
deployment_id | String | 実行をトリガーするデプロイメントID (オプション) |
workspace_id | String | ワークスペース名 |
workspace_name | String | ワークスペース名 |
テスト実行テーブル
*_journey_run
テーブルは、統合ワークスペースのすべてのテスト実行を含み、テスト実行の完了時に書き込まれます。テストがプラン実行の一部である場合、プラン実行が完了する前にテスト実行をテスト実行テーブルに書き込むことができます。
列名 | タイプ | 説明 |
---|---|---|
id | String | テスト実行ID |
journey_id | String | テストID |
journey_name | String | テスト名 |
journey_url | String | テストUIのURL |
view_output_url | String | テスト実行出力UIのURL |
status | String | テスト実行ステータス |
success | Boolean | テスト実行全体の成功 |
start_time | Timestamp | テスト実行の開始時刻 (UTC) |
stop_time | Timestamp | テスト実行の停止時刻 (UTC) |
runtime_millis | Integer | テスト実行の合計時間 (ミリ秒) |
tags | String, Repeated | テストタグ |
labels | String, Repeated | テストラベル |
mabl_branch | String | mablブランチテストの実行対象 |
environment_id | String | テスト実行環境 |
environment_name | String | テスト実行環境名 |
environment_url | String | テスト実行環境UIのURL |
browser_type | String | テスト対象ブラウザーのタイプ |
browser_version | String | テスト対象ブラウザーのバージョン |
plan_id | String | プランID |
plan_name | String | プラン名 |
plan_url | String | プランUIのURL |
plan_run_id | String | プラン実行ID |
scenario_id | String | データテーブルのシナリオID |
scenario_name | String | データテーブルのシナリオ名 |
workspace_id | String | ワークスペースID |
workspace_name | String | ワークスペース名 |
失敗の理由テーブル
*_run_categorization
テーブルは、統合ワークスペースのすべてのテスト実行の失敗の理由を含み、ユーザーが特定のテスト実行の出力に失敗の理由を設定したときに書き込まれます。
列名 | タイプ | 説明 |
---|---|---|
id | String | 一意のID |
category | String | 失敗の理由 (削除された場合はNULL) |
journey_id | String | テストID |
journey_name | String | テスト名 |
journey_run_id | String | テスト実行ID |
created_time | Timestamp | 評価時刻 (UTC) |
start_time | Timestamp | テスト実行の開始時刻 (UTC) |
stop_time | Timestamp | テスト実行の停止時刻 (UTC) |
grader_user_id | String | 評価ユーザーID |
grader_user_email | String | 評価ユーザーのメールアドレス (オプション) |
workspace_id | String | ワークスペースID |
workspace_name | String | ワークスペース名 |
tombstone | Boolean | 失敗の理由がテスト実行から削除されたことを示すインジケーター。テスト実行から失敗の理由がなくなるとtrueになり、categoryはNULLになります |
BigQueryのエクスポートは「データウェアハウス」方式で行われるため、テーブルが更新/削除されることはありません。追加のみが行われます。そのため、テスト実行の失敗の理由 (category
ディメンションに格納) が変更されるたびに、新しい行が書き込まれます。
journey_run_id
でグループ化し、最新のcreate_time
の値を取得して、テスト実行に指定された最新のカテゴリを見つけます。ユーザーがテスト実行の失敗の理由をクリアした場合、category
はNULL
になります。
最新の失敗の理由を特定するには、次のサンプルクエリを使用します。my-project.mabl_export.mabl_run_categorization
を、BigQueryシステムのテーブル名に置き換えます。
SELECT failure_reason.* FROM ( -- Get latest update time SELECT journey_run_id, MAX(created_time) AS last_updated_time FROM `my-project.mabl_export.mabl_run_categorization` GROUP BY journey_run_id ) AS latest_categories JOIN `my-project.mabl_export.mabl_run_categorization` AS failure_reason ON failure_reason.created_time = latest_categories.last_updated_time -- Ignore removed failure reasons WHERE failure_reason.category IS NOT NULL
パフォーマンステスト実行テーブル
*_performance_test_run
テーブルは、統合ワークスペースのすべてのパフォーマンステスト実行のメトリックを含み、テストの完了時に書き込まれます。パフォーマンステストがプラン実行の一部である場合、プラン実行が完了する前にパフォーマンステスト実行をパフォーマンステスト実行テーブルに書き込むことができます。
*_performance_test_run
テーブルと*_journey_run
テーブルはidで結合できます。
列名 | タイプ | 説明 |
---|---|---|
id | String | テスト実行ID |
journey_id | String | テストID |
journey_name | String | テスト名 |
journey_url | String | テストUIのURL |
journey_run_id | String | テスト実行出力UIのURL |
start_time | Timestamp | テスト実行の開始時刻 (UTC) |
stop_time | Timestamp | テスト実行の停止時刻 (UTC) |
api_virtual_user_hours_consumed | Float | パフォーマンステスト実行で使用された仮想ユーザー時間 |
api_concurrent_user_count | Integer | パフォーマンステスト実行の同時実行ユーザー数 |
api_average_response_time | Integer | パフォーマンステスト実行の平均応答時間 (ミリ秒) |
api_requests_per_second | Integer | パフォーマンステスト実行の1秒あたりの平均リクエスト数 |
api_error_rate_percent | Float | パフォーマンステスト実行の平均エラー率 ([0~100] のパーセント値) |
workspace_id | String | ワークスペースID |
workspace_name | String | ワークスペース名 |
アクティビティフィードテーブル
*_activity_feed
テーブルは、mabl UIのアクティビティフィードでサポートされるすべてのタイプのアクティビティデータなど、統合ワークスペースのすべてのアクティビティフィードエントリを含みます。
列名 | タイプ | 説明 |
---|---|---|
id | String | アクティビティフィードエントリのID |
entity_id | String | 変更されたエンティティのID |
entity_name | String | 変更されたエンティティの名前 |
entity_type | String | 変更されたエンティティのタイプ |
entity_canonical_id | String | テスト実行出力UIのURL |
entity_version_number | Integer | バージョン管理されたエンティティのバージョン番号 |
action_type | String | 実行されたアクションのタイプ |
action_timestamp | Timestamp | アクションが実行された時刻 |
created_time | Timestamp | アクティビティフィードエントリの作成時刻 |
actor_id | String | アクションを実行したユーザーまたはAPIキーのID |
actor_email | String | アクターのメールアドレス (該当する場合) |
entity_previous_id | String | このアクションの前のエンティティのID |
entity_previous_name | String | このアクションの前のエンティティの名前 |
entity_previous_version_number | Integer | このアクションの前のエンティティのバージョン |
workspace_id | String | ワークスペースID |
workspace_name | String | ワークスペース名 |
次のステップ
BigQueryインテグレーションの設定が済んだら、Looker StudioやGoogleスプレッドシートなどのツールを使って、データのクエリを実行したり、カスタムダッシュボードやチャートを作成したりすることができます。