Autify API
Autify APIはテストプラン実行結果一覧を出力するAPIを提供しています。
このAPIを使用して、Googleスプレッドシートにテストプラン実行結果一覧を出力して、ダッシュボードを作る方法については、すでに素晴らしい記事があります。
今回はこの記事内で紹介されているGASを自分なりに拡張して、シナリオ毎のテスト結果を出力する方法について紹介したいと思います。
シナリオ毎のテスト結果はどこから取得できるか?
テストプラン実行結果一覧を出力するAPIを叩いたときのレスポンスは配列で返ってきます。これはAutifyのテストプラン実行結果一覧ページの内容をAPIで取得しているイメージです。
[
{
"id": 0,
"status": "passed",
"duration": 0,
"started_at": "2024-02-16T05:59:29.802Z",
"finished_at": "2024-02-16T05:59:29.802Z",
"created_at": "2024-02-16T05:59:29.802Z",
"updated_at": "2024-02-16T05:59:29.802Z",
"review_needed": true,
"test_plan": {
"id": 0,
"name": "string",
"created_at": "2024-02-16T05:59:29.802Z",
"updated_at": "2024-02-16T05:59:29.802Z"
}
}
]
Autifyのテストプラン実行結果一覧ページでテスト結果をクリックすると、次のような画面になります。
この結果をAPIで取得するときは、テスト結果取得APIを使用します。
APIを叩くと以下のようなレスポンスが返ってきます。
{
"id": 0,
"status": "waiting",
"duration": 0,
"started_at": "2024-02-16T06:11:46.724Z",
"finished_at": "2024-02-16T06:11:46.724Z",
"created_at": "2024-02-16T06:11:46.724Z",
"updated_at": "2024-02-16T06:11:46.724Z",
"review_needed": true,
"test_plan_capability_results": [
{
"id": 0,
"capability": {
"id": 0,
"os": "string",
"os_version": "string",
"browser": "string",
"browser_version": "string",
"device": "string",
"resolution": "string",
"created_at": "2024-02-16T06:11:46.725Z",
"updated_at": "2024-02-16T06:11:46.725Z"
},
"test_case_results": [
{
"id": 0,
"status": "waiting",
"duration": 0,
"started_at": "2024-02-16T06:11:46.725Z",
"finished_at": "2024-02-16T06:11:46.725Z",
"created_at": "2024-02-16T06:11:46.725Z",
"updated_at": "2024-02-16T06:11:46.725Z",
"test_case_id": 0,
"project_url": "string",
"review_needed": 0,
"number_of_credits_consumed": 0,
"import_variables": [
{
"key": "string",
"value": "string",
"set_by": {
"type": "string",
"id": 0
}
}
],
"export_variables": [
{
"key": "string",
"value": "string"
}
]
}
]
}
],
"test_plan": {
"id": 0,
"name": "string",
"created_at": "2024-02-16T06:11:46.725Z",
"updated_at": "2024-02-16T06:11:46.725Z"
}
}
中身を見ると、test_plan_capability_results
という配列がありますが、これは実行環境毎の実行結果を指しています。例えば、Chrome/Linux
, Edge/Windows Server
, Chrome/iPhone X
の3つの実行環境をテストプランに設定している場合、test_plan_capability_results
の配列は3つのObjectで構成されます。
それぞれの中身を詳しく見ると、capability
とtest_case_results
という項目がありますが、capability
は実行環境に関する項目で、test_case_results
というのが、テストプランに登録されているシナリオを各実行環境で実行した結果の配列になります。
以下の画面を思い浮かべていただくと、イメージがつきやすいかもしれません。
このtest_case_results
の中身が、今回スプレッドシートに出力したいシナリオ毎のテスト結果です。
3つのシナリオと、Chrome/Linux
, Edge/Windows Server
, Chrome/iPhone X
の3つの実行環境が登録されているテストプランは、テスト実行結果が9つ存在することになります。
GASの実装
詳しい実装方法については割愛しますが、今回は、
- 全てのテストプラン実行結果をシートに出力し
- 指定期間(YYYYMM)に実行開始したテストプラン実行結果に対して、テスト結果取得APIを実行し
- レスポンスのtest_case_resultsを全て展開することで、シナリオ毎のテスト結果を取得し
- シートに出力する
GASを実装しました。
スプレッドシート&GASの準備
以下のスプレッドシートをご自身のGoogleドライブにコピーして使ってください。
1. アクセストークンの発行
まずはパーソナルアクセストークンの発行を参考に、アクセストークンを発行します。
2. プロジェクトIDの取得
プロジェクトIDはAutifyログイン後のURLのprojects/
の後に表示されている数字部分です。
3. secretsシートの設定
アクセストークンとプロジェクトIDを「secrets」シートのB1、B2にそれぞれ貼り付けてください。
APIで出力されるcreated_at
やstarted_at
の時間のタイムゾーンは、デフォルトでUTCとなっているため、JSTで出力したい場合は、「タイムゾーン」をJSTに設定して実行してください。
「期間(YYYYMM)」は、取得した全期間のテストプラン実行結果から、期間で指定した年月に実行開始したテストプラン実行結果を絞り込むために使用します。
4. 実行
準備が整ったら、実行します。
まずは「テストプラン実行結果取得」ボタンをクリックします。しばらくすると「data_results」シートにテストプラン実行結果が出力され、「designated_period_results」シートには「data_results」の内容を「期間(YYYYMM)」で絞り込んだ結果が出力されます。
次に「対象期間のシナリオ毎テスト結果取得」ボタンをクリックします。しばらくすると「results_per_scenario_YYYYMM」というシートが作成され、期間中に開始したテスト結果が出力されます。
「シナリオ取得」ボタンをクリックすると、「data_scenarios」シートにシナリオ一覧が出力されますが、このボタンをクリックしなくても、シナリオ毎のテスト結果は取得可能です。
最後に
今回はシナリオ毎のテスト結果を出力する方法について紹介しました。このスプレッドシートが日々の分析業務に役立てば幸いです