LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

[Autify] Google スプレッドシートにシナリオ毎のテスト結果を出力する

Posted at

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のテストプラン実行結果一覧ページでテスト結果をクリックすると、次のような画面になります。

スクリーンショット 2024-02-16 15.33.47.png

この結果を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で構成されます。

それぞれの中身を詳しく見ると、capabilitytest_case_resultsという項目がありますが、capabilityは実行環境に関する項目で、test_case_resultsというのが、テストプランに登録されているシナリオを各実行環境で実行した結果の配列になります。

以下の画面を思い浮かべていただくと、イメージがつきやすいかもしれません。
スクリーンショット 2024-02-16 15.31.34.png

このtest_case_resultsの中身が、今回スプレッドシートに出力したいシナリオ毎のテスト結果です。

3つのシナリオと、Chrome/Linux, Edge/Windows Server, Chrome/iPhone Xの3つの実行環境が登録されているテストプランは、テスト実行結果が9つ存在することになります。

GASの実装

詳しい実装方法については割愛しますが、今回は、

  1. 全てのテストプラン実行結果をシートに出力し
  2. 指定期間(YYYYMM)に実行開始したテストプラン実行結果に対して、テスト結果取得APIを実行し
  3. レスポンスのtest_case_resultsを全て展開することで、シナリオ毎のテスト結果を取得し
  4. シートに出力する

GASを実装しました。

スプレッドシート&GASの準備

以下のスプレッドシートをご自身のGoogleドライブにコピーして使ってください。

1. アクセストークンの発行

まずはパーソナルアクセストークンの発行を参考に、アクセストークンを発行します。

2. プロジェクトIDの取得

プロジェクトIDはAutifyログイン後のURLのprojects/の後に表示されている数字部分です。

3. secretsシートの設定

アクセストークンとプロジェクトIDを「secrets」シートのB1、B2にそれぞれ貼り付けてください。

APIで出力されるcreated_atstarted_atの時間のタイムゾーンは、デフォルトでUTCとなっているため、JSTで出力したい場合は、「タイムゾーン」をJSTに設定して実行してください。

「期間(YYYYMM)」は、取得した全期間のテストプラン実行結果から、期間で指定した年月に実行開始したテストプラン実行結果を絞り込むために使用します。

4. 実行

準備が整ったら、実行します。

まずは「テストプラン実行結果取得」ボタンをクリックします。しばらくすると「data_results」シートにテストプラン実行結果が出力され、「designated_period_results」シートには「data_results」の内容を「期間(YYYYMM)」で絞り込んだ結果が出力されます。

スクリーンショット 2024-02-16 16.52.13.png

次に「対象期間のシナリオ毎テスト結果取得」ボタンをクリックします。しばらくすると「results_per_scenario_YYYYMM」というシートが作成され、期間中に開始したテスト結果が出力されます。

スクリーンショット 2024-02-16 16.57.23.png

「シナリオ取得」ボタンをクリックすると、「data_scenarios」シートにシナリオ一覧が出力されますが、このボタンをクリックしなくても、シナリオ毎のテスト結果は取得可能です。

最後に

今回はシナリオ毎のテスト結果を出力する方法について紹介しました。このスプレッドシートが日々の分析業務に役立てば幸いです:relieved:

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up