- 印刷
- ダークライト
概要
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.com
をhttp://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_type": "linux",
"os_version": null,
"browser": "Chrome",
"browser_type": "chrome",
"browser_version": "126.0",
"device": null,
"device_type": "computer",
"timezone": "JST"
},
{
"os": "Windows",
"os_type": "windows",
"os_version": "10",
"browser": "Edge",
"browser_type": "edge",
"browser_version": "124.0",
"device": null,
"device_type": "computer",
"timezone": "JST"
},
...
autify web test run
は全てのユースケースをサポートはしていません以下がautify web test run
が今日現在サポートしていない幾つかのユースケースになります。もし需要があれば、これらをサポートすることも可能です:
- 複数のテストシナリオを1コマンドで実行
- ワークアラウンド: 代わりに、テストシナリオ毎に
autify web test run
を実行する
- ワークアラウンド: 代わりに、テストシナリオ毎に
- 複数のcapabilities を1コマンドで実行
- ワークアラウンド: 代わりに、capability 毎に
autify web test run
を実行する
- ワークアラウンド: 代わりに、capability 毎に
2. 直接API 経由で実行
もしautify web test run
がカバーしていないより複雑なユースケースが必要であれば、autify web api
コマンド群を使って、自由に組み合わせることができます。このコマンド群はAutify API と1対1対応しています。
手順は以下の通りです。
- 実行したいシナリオのシナリオIDを、Autify UI で表示されているURL、または
autify web api list-scenarios
から取得する。 capabilities
(利用可能な実行環境)を、autify web api list-capabilities
を使って取得する。autify web api execute-scenarios
を実行する。
実際に、詳しく見ていきましょう。
シナリオIDの取得
まず、実行するシナリオのシナリオ IDを取得しましょう。
URLからシナリオIDを取得する
シナリオが以下のURLの場合、{workspace_id}
がワークスペースID(旧プロジェクトID)、{scenario_id}
がシナリオを実行する際に必要となるシナリオIDに当たります。
- https://app.autify.com/projects/
{workspace_id}
/scenarios/{scenario_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_type": "linux",
"os_version": null,
"browser": "Chrome",
"browser_type": "chrome",
"browser_version": "126.0",
"device": null,
"device_type": "computer",
"timezone": "JST"
},
{
"os": "Windows",
"os_type": "windows",
"os_version": "10",
"browser": "Edge",
"browser_type": "edge",
"browser_version": "124.0",
"device": null,
"device_type": "computer",
"timezone": "JST"
}
]
もしご自身の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 形式のデータとして設定します。必要に応じて他のパラメータもあわせて指定しましょう。
フィールド名 | データ型 | 名前 | 必須項目? | デフォルト値 | |
---|---|---|---|---|---|
scenarios | objectの配列 | Yes | |||
number | id | Yes | |||
name (*1) | string | No | API execution + テストが実行された日時 | ||
execution_type | "parallel” / “sequential” | No | “parallel” (ワークスペースで並列実行が無効かされている場合は ”sequential” になります) | ||
capabilities | objectの配列 | Yes | |||
string | os | No | |||
string | os_version | No | |||
string | device | No | |||
string | browser | No | |||
string | timezone (*2) | No | |||
url_replacements | objectの配列 | No | なし (URL置換は行われない) | ||
string | pattern_url | Yes | |||
string | replacement_url | Yes |
*1 この名前はテスト結果の表示だけのために使用されます。実行したいシナリオの名前とは関係ないことに注意してください。
*2 timezone設定にはテスト環境による制限があります。詳しくはこちらをご参照ください 日本標準時 (JST) テスト実行
例
オプションは以下の通りです。
- Chrome/Linux と Edge/Window Server で複数のシナリオを直列実行する
- テスト結果の名前 "Order flow"
- URLの置換の設定 "https://example.com" → "https://autify.com"
- timezoneの設定 "UTC" (その他の可能な値は"Etc/UTC"と"Asia/Tokyo"と"JST"に限る)
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",
"timezone": "UTC"
}
],
"capabilities": [
{
"os": "Linux",
"browser": "Chrome"
},
{
"os": "Windows Server",
"os_version": "2019",
"browser": "Edge",
"timezone": "UTC"
}
],
"scenarios": [
{"id": 1234 },
{"id": 2345 },
{"id": 3456 },
{"id": 4567 }
]
}'
結果はこちらです:
もしご自身の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でどのようにテストを実行されるか、楽しみにしています!