BigQueryインテグレーション

mablではテスト出力やアクティビティを確認するためのさまざまなアプリケーション内ダッシュボードを提供していますが、アプリケーションによってはそれぞれのビジネスに合わせて作成した専用のレポートが役立つ場合もあります。BigQuery用のmablインテグレーションを利用すると、BigQueryやLooker Studioなどのツールでこうしたレポートをリアルタイムで抽出、変換、表示することができます。

mabl BigQueryインテグレーションでは、リアルタイムのカスタムレポートを利用して、テストパターンの詳細な分析を行うことができます。この記事では、mabl BigQueryインテグレーションの設定手順とmabl BigQueryデータセットのテーブルの概要について説明します。

📘

BigQueryインテグレーションは、Enterpriseプランのユーザーが利用できます。

セットアップ

mabl BigQueryインテグレーションを使用するには、有料のGCP BigQueryアカウントが必要です。

無料のトライアル用Google Cloudアカウントで利用できるBigQueryサンドボックス機能は、mabl BigQueryのフィードエクスポートでは使用できません。これは、BigQueryサンドボックスでストリーミングインサートがサポートされていないためです。

mabl用のサービスアカウントの作成

配信先のGoogle Cloud Platformプロジェクトに、BigQuery Data Editorとして、サービスアカウント[email protected]を追加します。詳細はこちら。

📘

代替IAM権限のセットアップ

mablの[email protected]ユーザーをより厳しく制限する場合は、以下の権限を持つカスタム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_namelabelsなど、その他のフリーテキストフィールドは引き続き含まれます。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テーブルが作成されます。

  • :mabl_export.mabl_plan_run
  • :mabl_export.mabl_journey_run
  • :mabl_export.mabl_run_categorization
  • :mabl_export.mabl_performance_test_run
  • :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テーブルは、統合ワークスペースのすべてのプラン実行を含み、プラン実行の完了時に書き込まれます。

列名タイプ説明
idStringプラン実行ID
plan_idStringプランID
plan_nameStringプラン名
plan_urlStringプランUIのURL
statusStringプラン実行ステータス
successBooleanプラン実行全体の成功
start_timeTimestampプラン実行の開始時刻 (UTC)
stop_timeTimestampプラン実行の停止時刻 (UTC)
runtime_millisIntegerプラン実行の合計時間 (ミリ秒)
tagsString, Repeatedプランタグ
labelsString, Repeatedプランラベル
application_idStringテスト対象アプリケーションID
application_nameStringテスト対象アプリケーション名
application_urlStringテスト対象アプリケーションUIのURL
starting_urlStringテスト対象アプリケーションの開始URL
trigger_typeString実行のトリガータイプ: schedulemanualcustomer_event (API経由で実行)、insight (mablインサイトに反応して実行)
trigger_user_idString実行をトリガーするユーザー (manualトリガータイプを含むプランのみ)
trigger_user_emailString実行をトリガーするユーザーのメールアドレス (manualトリガータイプを含むプランのみ)
deployment_idString実行をトリガーするデプロイメントID (オプション)
workspace_idStringワークスペース名
workspace_nameStringワークスペース名

テスト実行テーブル

*_journey_runテーブルは、統合ワークスペースのすべてのテスト実行を含み、テスト実行の完了時に書き込まれます。テストがプラン実行の一部である場合、プラン実行が完了する前にテスト実行をテスト実行テーブルに書き込むことができます。

タイプ列名説明
idStringテスト実行ID
journey_idStringテストID
journey_nameStringテスト名
journey_urlStringテストUIのURL
view_output_urlStringテスト実行出力UIのURL
statusStringテスト実行ステータス
successBooleanテスト実行全体の成功
start_timeTimestampテスト実行の開始時刻 (UTC)
stop_timeTimestampテスト実行の停止時刻 (UTC)
runtime_millisIntegerテスト実行の合計時間 (ミリ秒)
tagsString, Repeatedテストタグ
labelsString, Repeatedテストラベル
mabl_branchStringmablブランチテストの実行対象
environment_idStringテスト実行環境
environment_nameStringテスト実行環境名
environment_urlStringテスト実行環境UIのURL
browser_typeStringテスト対象ブラウザーのタイプ
browser_versionStringテスト対象ブラウザーのバージョン
plan_idStringプランID
plan_nameStringプラン名
plan_urlStringプランUIのURL
plan_run_idStringプラン実行ID
workspace_idStringワークスペースID
workspace_nameStringワークスペース名

失敗の理由テーブル

*_run_categorizationテーブルは、統合ワークスペースのすべてのテスト実行の失敗の理由を含み、ユーザーが特定のテスト実行の出力に失敗の理由を設定したときに書き込まれます。

列名タイプ説明
idString一意のID
categoryString失敗の理由 (削除された場合はNULL)
journey_idStringテストID
journey_nameStringテスト名
journey_run_idStringテスト実行ID
created_timeTimestamp評価時刻 (UTC)
start_timeTimestampテスト実行の開始時刻 (UTC)
stop_timeTimestampテスト実行の停止時刻 (UTC)
grader_user_idString評価ユーザーID
grader_user_emailString評価ユーザーのメールアドレス (オプション)
workspace_idStringワークスペースID
workspace_nameStringワークスペース名
tombstoneBoolean失敗の理由がテスト実行から削除されたことを示すインジケーター。テスト実行から失敗の理由がなくなるとtrueになり、categoryはNULLになります

BigQueryのエクスポートは「データウェアハウス」方式で行われるため、テーブルが更新/削除されることはありません。追加のみが行われます。そのため、テスト実行の失敗の理由 (categoryディメンションに格納) が変更されるたびに、新しい行が書き込まれます。

journey_run_idでグループ化し、最新のcreate_timeの値を取得して、テスト実行に指定された最新のカテゴリを見つけます。ユーザーがテスト実行の失敗の理由をクリアした場合、categoryNULLになります。

最新の失敗の理由を特定するには、次のサンプルクエリを使用します。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で結合できます。

列名タイプ説明
idStringテスト実行ID
journey_idStringテストID
journey_nameStringテスト名
journey_urlStringテストUIのURL
journey_run_idStringテスト実行出力UIのURL
start_timeTimestampテスト実行の開始時刻 (UTC)
stop_timeTimestampテスト実行の停止時刻 (UTC)
api_virtual_user_hours_consumedFloatパフォーマンステスト実行で使用された仮想ユーザー時間
api_concurrent_user_countIntegerパフォーマンステスト実行の同時実行ユーザー数
api_average_response_timeIntegerパフォーマンステスト実行の平均応答時間 (ミリ秒)
api_requests_per_secondIntegerパフォーマンステスト実行の1秒あたりの平均リクエスト数
api_error_rate_percentFloatパフォーマンステスト実行の平均エラー率 ([0~100] のパーセント値)
workspace_idStringワークスペースID
workspace_nameStringワークスペース名

アクティビティフィードテーブル

*_activity_feedテーブルは、mabl UIのアクティビティフィードでサポートされるすべてのタイプのアクティビティデータなど、統合ワークスペースのすべてのアクティビティフィードエントリを含みます。

列名タイプ説明
idStringアクティビティフィードエントリのID
entity_idString変更されたエンティティのID
entity_nameString変更されたエンティティの名前
entity_typeString変更されたエンティティのタイプ
entity_canonical_idStringテスト実行出力UIのURL
entity_version_numberIntegerバージョン管理されたエンティティのバージョン番号
action_typeString実行されたアクションのタイプ
action_timestampTimestampアクションが実行された時刻
created_timeTimestampアクティビティフィードエントリの作成時刻
actor_idStringアクションを実行したユーザーまたはAPIキーのID
actor_emailStringアクターのメールアドレス (該当する場合)
entity_previous_idStringこのアクションの前のエンティティのID
entity_previous_nameStringこのアクションの前のエンティティの名前
entity_previous_version_numberIntegerこのアクションの前のエンティティのバージョン
workspace_idStringワークスペースID
workspace_nameStringワークスペース名

次のステップ

BigQueryインテグレーションの設定が済んだら、Looker StudioやGoogleスプレッドシートなどのツールを使って、データのクエリを実行したり、カスタムダッシュボードやチャートを作成したりすることができます。