APIによる柔軟なテスト実行
  • 28 Nov 2023
  • 2 分で読めます
  • 投稿者
  • ダーク
    ライト

APIによる柔軟なテスト実行

  • ダーク
    ライト

Article Summary

概要

execute_scenarios API を使うと、任意のシナリオをテストプランを作成せずに実行できます。 さらに、実行環境、実行タイプ(並列/直列)、URL置換もその場で指定することができます!

このドキュメントでは、このAPI を有効利用するためのAutify Command Line Interface (CLI) を使った2つの方法、1. autify web test run による簡単な実行、2. autify web api を使ったよりカスタマイズ可能な実行、をご紹介します。

前提条件: Autify CLI をセットアップする

Autify CLI をはじめてみよう に従って下さい。数分しかかかりません。

1. 1つのテストシナリオを1つの実行環境(capability)で実行

1つのテストシナリオを1つの実行環境(capability)で実行したいというのは、最も単純ですが最も使われるユースケースです。Autify CLI はautify web test run というこのユースケースに対してとても役に立つコマンドを提供しています。使い方は以下の様になります:

autify web test run https://app.autify.com/projects/0000/scenarios/0000 \
  --os Linux \
  --browser Chrome \
  --url-replacements http://example.com=http://example.net \
  --name "Sample"

このシンプルなコマンドで、指定されたテストシナリオをLinux/Chrome capability 上で、http://example.comhttp://example.net にURL置換しながら実行して、そのテスト実行に"Sample" という名前をつけてくれます(これはAutify のUI でテスト結果を表示する時に使われます)。

利用可能なcapabilities はお使いのワークスペースによって異なりますが、もし利用可能であれば以下の様な例を指定できます:

デスクトップ capabilities

  • --os:
    • Linux / Windows Server / Windows / OS X
  • --browser:
    • Chrome / Firefox / Safari / Edge

モバイル capabilities

  • --device:
    • iPhone X / Galaxy S20 / ...
  • --device-type:
    • emulator / mobile
  • --os-version:
    • 11.0 / ... (Android)
    • 15 / ... (iOS)

お使いのワークスペースで利用可能な全てのcapabilitites は以下のコマンドで確認できます。autify web test run は同じリストから指定されたオプションで絞り込んでくれます。なので、例えば--os--browser だけでユニークなcapability であれば、全てのオプションを指定する必要はありません:

$ autify web api list-capabilities --project-id 0000
[
  {
    "os": "Linux",
    "os_version": "",
    "browser": "Chrome",
    "browser_version": "104.0",
    "device": null,
    "device_type": null,
    "unsupported": false
  },
  {
    "os": "Windows",
    "os_version": "10",
    "browser": "Chrome",
    "browser_version": "104.0",
    "device": null,
    "device_type": null,
    "unsupported": false
  },
  ...
autify web test run は全てのユースケースをサポートはしていません

以下がautify web test run が今日現在サポートしていない幾つかのユースケースになります。もし需要があれば、これらをサポートすることも可能です:

  • 複数のテストシナリオを1コマンドで実行
    • ワークアラウンド: 代わりに、テストシナリオ毎にautify web test run を実行する
  • 複数のcapabilities を1コマンドで実行
    • ワークアラウンド: 代わりに、capability 毎にautify web test run を実行する

2. 直接API 経由で実行

もしautify web test run がカバーしていないより複雑なユースケースが必要であれば、autify web api コマンド群を使って、自由に組み合わせることができます。このコマンド群はAutify API と1対1対応しています。

手順は以下の通りです。

  1. 実行したいシナリオのシナリオIDを、Autify UI で表示されているURL、またはautify web api list-scenarios から取得する。
  2. capabilities(利用可能な実行環境)を、autify web api list-capabilities を使って取得する。
  3. autify web api execute-scenarios を実行する。

実際に、詳しく見ていきましょう。

シナリオIDの取得

まず、実行するシナリオのシナリオ IDを取得しましょう。

URLからシナリオIDを取得する

シナリオが以下のURLの場合、{workspace_id}がワークスペースID(旧プロジェクトID)、{scenario_id}がシナリオを実行する際に必要となるシナリオIDに当たります。

scenario API でシナリオ ID を取得する

シナリオIDは、autify web api list-scenarios を使って以下の様に一括で取得することも可能です:

autify web api list-scenarios --project-id {workspace_id}

もしご自身のHTTP クライアントを使いたい場合は、以下の様なリクエストを送ります:

GET /projects/{workspace_id}/scenarios HTTP/1.1
Accept: application/json, text/plain, */*
Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN
Host: app.autify.com

capabilities を取得する

次に、利用可能な実行環境の一覧を取得しましょう。capabilities とは、 autify web api execute-scenarios を実行する際に指定できる実行環境を表すものです。capabilities の一覧はautify web api list-capabilities を使って取得できます:

autify web api list-capabilities --project-id {workspace_id}

レスポンスには以下のようなオブジェクトの配列が返されます。各オブジェクトは、利用可能な capabilities(実行環境)を表しています。

[
  {
    "os": "Linux",
    "os_version": "",
    "browser": "Chrome",
    "browser_version": "100.0",
    "device": null,
    "device_type": null,
    "unsupported": false
  },
  {
    "os": "Windows Server",
    "os_version": "2019",
    "browser": "Edge",
    "browser_version": "100.0",
    "device": null,
    "device_type": null,
    "unsupported": false
  },
  {
    "os": "iOS",
    "os_version": "",
    "device": "iPhone X",
    "device_type": "emulator",
    "unsupported": false
  },
	{
    "os": "iOS",
    "os_version": "14",
    "device": "iPhone 11",
    "device_type": "mobile",
    "unsupported": false
  }
]

もしご自身のHTTP クライアントを使いたい場合は、以下の様なリクエストを送ります:

GET /projects/{workspace_id}/capabilities HTTP/1.1
Accept: application/json, text/plain, */*
Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN
Host: app.autify.com

autify web api execute-scenarios を実行する

シナリオIDと capabilities が取得できたら、autify web api execute-scenarios を実行してテストを実行できます。これらの情報はJSON 形式のデータとして設定します。必要に応じて他のパラメータもあわせて指定しましょう。

フィールド名データ型名前必須項目?デフォルト値
scenariosobjectの配列Yes
numberid
name (*1)stringNoAPI execution + テストが実行された日時
execution_type"parallel” / “sequential”No“parallel” (ワークスペースで並列実行が無効かされている場合は ”sequential” になります)
capabilitiesobjectの配列Yes
stringos
stringos_version
stringdevice
stringbrowser
url_replacementsobjectの配列Noなし (URL置換は行われない)
stringpattern_url一つのurl_replacementsにつき、pattern_urlとreplacement_urlの両方が必要であることに注意してください
stringreplacement_url

*1 この名前はテスト結果の表示だけのために使用されます。実行したいシナリオの名前とは関係ないことに注意してください。

オプションは以下の通りです。

  • Chrome/Linux と Edge/Window Server で複数のシナリオを直列実行する
  • テスト結果の名前 "Order flow"
  • URLの置換の設定 "https://example.com" → "https://autify.com"
autify web api execute-scenarios --project-id '{workspace_id}' --execute-scenarios-request '{
  "name": "Order flow", 
  "execution_type": "sequential",
  "url_replacements": [
    {
      "pattern_url": "https://example.com",
      "replacement_url": "https://autify.com"
    }
  ],
  "capabilities": [
    {
      "os": "Linux",
      "browser": "Chrome"
    },
    {
      "os": "Windows Server",
      "os_version": "2019",
      "browser": "Edge"
    }
  ],
  "scenarios": [
    {"id": 1234 },
    {"id": 2345 },
    {"id": 3456 },
    {"id": 4567 }
  ]
}'

結果はこちらです:

Screen Shot 2022-05-11 at 15.53.40.png

Screen Shot 2022-05-11 at 15.54.31.png

もしご自身のHTTP クライアントを使いたい場合は、以下の様なリクエストを送ります:

POST /projects/{workspace_id}/execute_scenarios HTTP/1.1
Accept: application/json, text/plain, */*
Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN
Content-Type: application/json
Content-Length: 323
Host: app.autify.com

{"name":"Order flow","execution_type":"sequential","url_replacements":[{"pattern_url":"https://example.com","replacement_url":"https://autify.com"}],"capabilities":[{"os":"Linux","browser":"Chrome"},{"os":"Windows Server","os_version":"2019","browser":"Edge"}],"scenarios":[{"id":1234},{"id":2345},{"id":3456},{"id":4567}]}

まとめ

これらのAPIを活用すれば、自在にテストを実行できます。その時々で実行したいテストを行うためにテストプランを作成することは必要なくなり、一度きりのテストプランをメンテナンスする必要はありません。皆様がAutifyでどのようにテストを実行されるか、楽しみにしています!


この記事は役に立ちましたか?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.