BigQueryインテグレーション

BigQueryインテグレーションを使えば、プランやテストが完了するとすぐに、結果、期間、ブラウザの種類などの実行の詳細が、設定された BigQuery データセットのテーブルに書き込めます。詳細については、エクスポート スキーマを参照してください。

BigQueryインテグレーション(統合)を使えば、プランやテストが完了するとすぐに、結果、期間、ブラウザの種類などの実行の詳細が、設定された BigQuery データセットのテーブルに書き込めます。詳細については、エクスポート スキーマを参照してください。

📘

Enterpriseプランから利用可能

この機能はトライアル時とEnterpriseプランで利用可能です。

はじめに

🚧

BigQueryの統合には有料のGoogle Cloudアカウントが必要です

未払いのトライアル用Google Cloudアカウントで利用できるBigQuery Sandbox機能は、mablのBigQueryフィードエクスポートでは使用できません。これは、Streaming Inserts が BigQuery Sandbox でサポートされていないためです。

mabl BigQuery Export を使用するには、有料の GCP BigQuery アカウントにアップグレードしてください。

🚧

サービスアカウントの追加

mablがデータを配信するためには、配信先のGCPプロジェクトにサービスアカウントを追加する必要があります。

📘

Google Cloud Projectのエイリアス

GCPでは、プロジェクトのエイリアス(プロジェクトIDと名前が異なる)を使用することがあります。
この場合は、アカウント名ではなくアカウントIDを使用してください。

gcloud project list を実行すると、すべてのプロジェクトの詳細(Id、Name、Number)が表示されます。

  1. 配信先のGoogle Cloud Platformプロジェクトに BigQuery Data Editor としてServiceAccount に [email protected] を追加します(詳細)。

  2. mablのウェブUIで、Setting > Integrations と進み、BigQuery Export をクリックします。

  3. エクスポート先のプロジェクト ID、データセット名、およびエクスポートテーブルのプレフィックスを追加します。

  4. 個人を特定できるデータの再編集を設定します。

可読性を高めるために、エクスポートでは、不透明な一意の識別子と、顧客が提供する name プロパティの両方を使用してエンティティを参照します。

user エンティティの場合、この名前はユーザーの電子メールです。ただし、顧客によってはこの情報を BigQuery で使用したくない場合もあります。Redact Personal Information Fields を有効にすると、以降のすべての書き込みにおいて、これらのエントリが PII_REDACTED という値に置き換えられます。

1200

個人を特定できるフィールドを再編集する。

🚧

フィールドリダクションにフリーテキストは含まれないでください

PIIリダクションでは、以下のフィールドのみが除外されます。

  • trigger_user_email
    テスト名のようなその他のフリーテキストフィールドは含まれます。
  1. 「保存」をクリックします。
447

BigQueryの「+ SETUP」ボタンをクリックしてスタートします。

BigQuery のテーブルレイアウトとパーティション

最初のテストをBigQueryエクスポートフィードで実行すると、指定されたデータセットと以下のテーブルが作成されます。

  • <table_prefix>_plan_run
  • <table_prefix>_journey_run
  • <table_prefix>_run_categorization

例えば、デフォルト値を使用した場合、以下のようなBigQueryテーブルが作成されます。

  • <your-project>:mabl_export.mabl_plan_run
  • <your-project>:mabl_export.mabl_journey_run
  • <your-project>:mabl_export.mabl_run_categorization

これらのテーブルは、列に基づいて、日ごとに分割されます

  • <table_prefix>_plan_run on column start_time
  • <table_prefix>_journey_run on column start_time
  • <table_prefix>_run_categorization on column created_time

テストデータを一定期間後に破棄したい場合は、BigQueryデータウェアハウスでパーティションの有効期限を設定することができます。

個人を特定できるデータの再編集

可読性を高めるために、エクスポートでは、不透明な一意の識別子と、顧客が提供する name プロパティの両方を使用してエンティティを参照します。

user エンティティの場合、この名前はユーザーの電子メールです。ただし、顧客によってはこの情報を BigQuery で使用したくない場合もあります。Redact Personal Information Fields を有効にすると、以降のすべての書き込みにおいて、これらのエントリが PII_REDACTED という値に置き換えられます。

テーブルスキーマの変更

テーブルスキーマの変更は稀で、発生しても追加的にしか行われません。

  • 新規カラムのみ
  • Friends of mablのSlackとメールリストでの告知
  • アクティブな統合ユーザーの管理者に通知されます

テーブルスキーマ

# Table *_plan_run

統合ワークスペースで実行されたすべてのプランを含み、プラン実行の完了時に書き込まれます。

Column NameTypeDescription
idStringplan run id
plan_idStringplan id
plan_nameStringplan name
plan_urlStringplan UI URL
statusStringplan run status
successBooleanoverall plan run success
start_timeTimestampplan run start time UTC
stop_timeTimestampplan run stop time UTC
runtime_millisIntegertotal plan run time milliseconds
tagsString, Repeatedplan tags
labelsString, Repeatedplan labels
application_idStringapplication under test id
application_nameStringapplication under test name
application_urlStringapplication under test UI URL
starting_urlStringapplication under test starting url
trigger_typeStringexecution trigger type
trigger_user_idStringexecution triggering user (optional)
trigger_user_emailStringexecution triggering user email (optional)
deployment_idStringexecution trigger deployment id (optional)
workspace_idStringworkspace name
workspace_nameStringworkspace name

トリガータイプに関する注意事項

trigger_type ディメンションには、以下のいずれかの値を指定します。

Trigger Type ValueDescriptionUser Id/Email populated
SCHEDULEExecuted by timer/schedule triggerNo
MANUALExecuted manually from mabl web app or CLI
(non-Deployment event)
Yes
CUSTOMER_EVENTExecuted for Deployment API triggerNo
INSIGHTExecuted in reaction to a mabl InsightNo

Table *_journey_run

統合されたワークスペースで行われたすべてのテスト実行が含まれており、テスト実行の完了時に書き込まれます(親がまだ完了していないため、親のプラン実行の前に書き込まれることもあります)。

Column NameTypeDescription
idStringtest run id
journey_idStringtest id
journey_nameStringtest name
journey_urlStringtest UI URL
view_output_urlStringtest run output UI URL
statusStringtest run status
successBooleanoverall test run success
start_timeTimestamptest run start time UTC
stop_timeTimestamptest run stop time UTC
runtime_millisIntegertotal test run time milliseconds
tagsString, Repeatedtest tags
labelsString, Repeatedtest labels
mabl_branchStringmabl branch test ran against
environment_idStringtest run environment
environment_nameStringtest run environment name
environment_urlStringtest run environment UI URL
browser_typeStringbrowser under test type
browser_versionStringbrowser under test version
plan_idStringplan id
plan_nameStringplan name
plan_urlStringplan UI URL
plan_run_idStringplan run id
workspace_idStringworkspace id
workspace_nameStringworkspace name

Table *_run_categorization

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

📘

アップデート時のテストランごとの繰り返しのエントリー

テストランの失敗理由(categoryディメンションに格納されている)が変更されるたびに、新しい行が書き込まれます。journey_run_id でグループ化し、最新のcreate_time 値を取って、テストランに与えられた最新のカテゴリーを見つけます。

失敗理由が 削除された場合categoryNULL になります。
これは、ユーザーがテストランの失敗理由を削除したことを示します。

Column nameTypeDescription
idStringunique id
categoryStringfailure reason (NULL on removed)
journey_idStringtest id
journey_nameStringtest name
journey_run_idStringtest run id
created_timeTimestampgrading time UTC
start_timeTimestamptest run start time UTC
stop_timeTimestamptest run stop time UTC
grader_user_idStringgrading user id
grader_user_emailStringgrading user email (optional)
workspace_idStringworkspace id
workspace_nameStringworkspace name
tombstoneBooleanIndicator that failure reason has been removed from test run. Will be true if test run no longer has a failure reason and category will be NULL.

問い合わせの失敗理由

BigQuery のエクスポートはデータウェアハウス形式で行われるため、テーブルは更新/削除されず、追加されるだけです。

このため、障害理由のような変更可能な値は、変更されると複数の行が書き込まれることになります。したがって、最新の障害理由を判断するには、(1) 最後の更新を見つけ、(2) 一致する行を選択する必要があります。次のクエリでこれを行います。

使用するには、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