- 印刷
- ダークライト
Autify Command Line Interface (CLI) はテキストベースのコマンドラインによってAutify のサービス達とやりとりするためのソフトウェアです。このAutify CLI によって、ブラウザを立ち上げることなくAutify を操作できるので、CI/CD 連携といった自動連携を簡単に行うことができます。
このドキュメントでは、Autify CLI の基礎からコマンドの一覧について解説しています。
はじめてみよう
要約
Autify CLI はAutify のシステムに対してブラウザUI 以外のもう一つのインターフェースを提供します。テキストベースのコマンドラインインターフェースによって、Autify との自動連携を容易に行うことができます。
Autify CLI を利用するためには、まずお使いのプラットフォームにAutify CLI をインストールする必要があります。次に、Autify のパーソナルアクセストークンを使ってCLI をログインさせると、Autify CLI が提供する"テストシナリオを実行して終了するまで待つ" といった便利なコマンドを使うことができるようになります。次のいくつかのセクションでこのプロセスを実際に試してみましょう。
インストール
Autify CLI はHomebrew (Linux/macOS)、shell installer (Linux/macOS)、またはnative installer (macOS/Windows) を使ってインストール可能です。また、tarball を直接インストールすることも可能です。
Homebrew
Linux と macOS では、Homebrew とAutify のtap を使うことで、autify-cli
をインストールできます:
brew install autifyhq/tap/autify-cli
または
brew tap autifyhq/tap
brew install autify-cli
出力例:
$ brew install autifyhq/tap/autify-cli
==> Tapping autifyhq/tap
Cloning into '/usr/local/Homebrew/Library/Taps/autifyhq/homebrew-tap'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 19 (delta 1), reused 19 (delta 1), pack-reused 0
Receiving objects: 100% (19/19), done.
Resolving deltas: 100% (1/1), done.
Tapped 1 formula (16 files, 12.9KB).
==> Cloning https://github.com/autifyhq/autify-cli
Cloning into '/Users/runner/Library/Caches/Homebrew/autify-cli--git'...
==> Checking out revision b03bec6
HEAD is now at b03bec6 Release 0.2.0
==> Installing autify-cli from autifyhq/tap
==> curl https://autify-cli-assets.s3.amazonaws.com/autify-cli/versions/0.2.0/b03bec6/autify-v0.2.0-b03bec6-darwin-arm64.tar.gz | tar xz
🍺 /usr/local/Cellar/autify-cli/0.2.0: 10,082 files, 98.7MB, built in 29 seconds
Shell installer
Linux と macOS では、shell installer を以下のコマンドで利用できます:
curl https://autify-cli-assets.s3.amazonaws.com/autify-cli/channels/stable/install-standalone.sh | sh
出力例:
$ curl https://autify-cli-assets.s3.amazonaws.com/autify-cli/channels/stable/install-standalone.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2049 100 2049 0 0 10784 0 --:--:-- --:--:-- --:--:-- 10784
This script requires superuser access.
You will be prompted for your password by sudo.
Installing CLI from https://autify-cli-assets.s3.amazonaws.com/autify-cli/channels/stable/autify-linux-x64.tar.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21.9M 100 21.9M 0 0 2157k 0 0:00:10 0:00:10 --:--:-- 2588k
v16.15.0
autify installed to /usr/local/bin/autify
autify-cli/0.1.0 linux-x64 node-v16.15.0
Native installer
macOS と Windows では、native installer を提供しています。
注: これらは現時点では正しく署名されていません。そのため、インストール時にいくつかの警告が出ます。適切に署名したものを近いうちに出す予定です。
OS | Architecture | Package type | Download Link | Note |
---|---|---|---|---|
macOS | Intel 64bit | Installer | stable | Not properly signed yet. |
macOS | Arm 64bit | Installer | stable | Not properly signed yet. |
Windows | Intel 64bit | Installer | stable | Not properly signed yet. |
Windows | Intel 32bit | Installer | stable | Not properly signed yet. |
Tarball
以下のtarball を提供しています:
OS | Architecture | Package type | Download Link | Note |
---|---|---|---|---|
Linux | Intel 64bit | tar.gz | stable | |
Linux | Intel 64bit | tar.xz | stable | |
Linux | Arm 32bit | tar.gz | stable | |
Linux | Arm 32bit | tar.xz | stable | |
Linux | Arm 64bit | tar.gz | stable | |
Linux | Arm 64bit | tar.xz | stable | |
macOS | Intel 64bit | tar.gz | stable | |
macOS | Intel 64bit | tar.xz | stable | |
macOS | Arm 64bit | tar.gz | stable | |
macOS | Arm 64bit | tar.xz | stable | |
Windows | Intel 64bit | tar.gz | stable | |
Windows | Intel 64bit | tar.xz | stable | |
Windows | Intel 32bit | tar.gz | stable | |
Windows | Intel 32bit | tar.xz | stable |
こちらが、Linux (Intel 64bit) でtag.gz
ファイルをダウンロードして展開するコマンドの例です:
$ curl -O https://autify-cli-assets.s3.us-west-2.amazonaws.com/autify-cli/channels/stable/autify-linux-x64.tar.gz
$ tar -xzf ./autify-linux-x64.tar.gz
$ ./autify/bin/autify --version
autify-cli/0.1.0 linux-x64 node-v16.15.0
以下の様にして、/path/to/autify/bin/autify
を PATH
環境変数内のどこかにリンクすることをお勧めします:
$ sudo ln -s /path/to/autify/bin/autify /usr/local/bin/autify
注: /path/to/autify/bin
は node
実行ファイルを含んでいます。従って、 /path/to/autify/bin
を PATH
環境変数に追加すると、既存のnode
実行ファイルよりも優先されてしまう可能性があります。 そのため、/path/to/autify/bin/autify
だけをリンクすることをお勧めしていますし、shell installer はまさにそれを実行しています。
利用方法
まず、パーソナルアクセストークンを生成する必要があります。 Autify NoCode Web またはAutify NoCode Mobile のドキュメントをご覧ください。
そうしたら、Autify CLI でログインできます。以下のコマンドを実行し、パーソナルアクセストークンを入力してください:
## Autify NoCode Web
$ autify web auth login
? Enter Access Token **********
## Autify NoCode Mobile
$ autify mobile auth login
? Enter Access Token **********
Autify NoCode Web
では、すでにお持ちのテストシナリオを実行してみましょう。今から実行したいテストシナリオのURLをコピーしてください。(この様な形式のはずです: https://app.autify.com/projects/000/scenarios/00000
) その後に以下を実行してください:
autify web test run --wait <コピーしたテストシナリオURL>
出力例:
$ autify web test run --wait https://app.autify.com/projects/000/scenarios/00000
✅ Successfully started: https://app.autify.com/projects/000/results/000000 (Capability is Linux Chrome 101.0)
🕐 Waiting for the test result: https://app.autify.com/projects/000/results/000000
✔ Waiting... (timeout: 300 s)
✅ Test passed!: https://app.autify.com/projects/000/results/000000
$ echo $?
0
このコマンドは、そのテストシナリオをデフォルト環境 (Linux/Chrome) で実行し、(デフォルトでは5分の)タイムアウトをするまでテストが終了するのを待ちます。もしパスしていたら、コマンドは終了コード0
で終了します。そうでなければ、0
以外の終了コードで終了します。結果は上の$?
の出力で見ることができます。
Autify NoCode Mobile
もしAutify NoCode Mobile をご利用でしたら、Autify NoCode Webとほぼ同じ様にテストプランを実行することができます。今から実行したいテストプランのURL をコピーして (この様な形式のはずです: https://mobile-app.autify.com/projects/AAA/test_plans/BBB
)、テストしたいアプリケーションのビルドファイルのファイルパス(iOS なら*.app
、Android なら*.apk
)もコピーして下さい。その後に以下を実行してください:
autify mobile test run --wait --build-path <コピーしたビルドファイルパス> <コピーしたテストプランURL>
$ autify mobile test run --wait --build-path /path/to/android.apk https://mobile-app.autify.com/projects/AAA/test_plans/BBB
✅ Successfully uploaded android.apk (ID: CCC). See https://mobile-app.autify.com/projects/AAA/builds?os=android&selectedBuildId=CCC&page=1
✅ Successfully started: https://mobile-app.autify.com/projects/AAA/results/DDD
🕐 Waiting for the test result: https://mobile-app.autify.com/projects/AAA/results/DDD
✔ Waiting... (timeout: 300 s)
✅ Test passed!: https://mobile-app.autify.com/projects/AAA/results/DDD
$ echo $?
0
このコマンドは、指定したビルドファイルをアップロードし、そのアップロードしたビルドを使ってテストプランを実行し、(デフォルトでは5分の)タイムアウトをするまでテストが終了するのを待ちます。もしパスしていたら、コマンドは終了コード0
で終了します。そうでなければ、0
以外の終了コードで終了します。結果は上の$?
の出力で見ることができます。
更新
Autify CLI はチャンネルリリースで更新していて、都度再インストールする必要がありません。デフォルトでstable
チャンネルが使われていて、以下を実行することでAutify CLI を最新にすることができます:
$ autify update
autify-cli: Updating CLI from 0.0.0-aaaaaa to 0.1.0-bbbbbb... done
注: Homebrew をお使いの方はこのコマンドを使わずにHomebrew に更新させた方が良いです。全てのstable
リリースはtap にも自動的に反映されるので、以下のコマンドだけで最新に更新することができます:
$ brew upgrade autify-cli
注: beta
チャンネルとリリース候補のチャンネルも存在して、リリース前のバージョンを試すことができますが、多くの場合stable
チャンネルで十分です。
設定
設定ファイルは~/.config/autify/config.env
(macOS or Linux) / %LOCALAPPDATA%\autify\config.env
(Windows) に保存されます。設定ファイルのベースディレクトリはXDG_CONFIG_HOME
環境変数で変更することも可能です。
全ての設定は環境変数の形をしているので、同じ名前の環境変数を実行時に与えることでいつでも別の設定を利用して実行できます。例: AUTIFY_WEB_ACCESS_TOKEN=mytoken autify web test run ...
4つの設定が利用できます:
AUTIFY_WEB_ACCESS_TOKEN
Autify NoCode Web に認証するためのパーソナルアクセストークン。
AUTIFY_WEB_BASE_PATH
Autify NoCode Web と通信する際のAPI ベースパス。デフォルトは https://app.autify.com/api/v1
AUTIFY_MOBILE_ACCESS_TOKEN
Autify NoCode Mobile に認証するためのパーソナルアクセストークン。
AUTIFY_MOBILE_BASE_PATH
Autify NoCode Mobile と通信する際のAPI ベースパス。デフォルトは https://mobile-app.autify.com/api/v1
コマンド
こちらがコマンドの一覧になります。これらは、Autify のAPI 仕様を知る必要なく簡単に使えるように設計されています。多くのユースケースをサポートしていて、今後もコマンドや機能の追加を続けて改善していきます。特定のユースケースに対する新しいコマンドが必要でしたら、GitHub Issues で自由にリクエストをお願いします。
Autify NoCode Web
autify web auth login
このコマンドは、対話的または非対話的にCLI をAutify NoCode Web にログインさせます。
より詳しい情報は GitHub をご覧ください。
autify web test run
このコマンドは作成済のテストシナリオかテストプランを、環境やURL 置換などの多数のオプションを指定して実行できます。更に、テストが終了するまで待つ--wait
オプションもサポートしています。
より詳しい情報は GitHub をご覧ください。
autify web test wait
このコマンドは既にリクエスト済みのテストシナリオかテストプランを、終了するまで待ちます。ただし、ほとんどの場合はautify web test run --wait
を代わりに使うことになるでしょう。
より詳しい情報は GitHub をご覧ください。
Autify NoCode Mobile
autify mobile auth login
このコマンドは、対話的または非対話的にCLI をAutify NoCode Mobile にログインさせます。
より詳しい情報は GitHub をご覧ください。
autify mobile build upload
このコマンドは新しいビルドファイルをAutify NoCode Mobile にアップロードして、ビルドID を返してくれます。
より詳しい情報は GitHub をご覧ください。
autify mobile test run
このコマンドは作成済のテストプランを、新しいビルドファイルか既にアップロード済みのビルドID をオプションで指定して実行できます。更に、テストが終了するまで待つ--wait
オプションもサポートしています。
より詳しい情報は GitHub をご覧ください。
autify mobile test wait
このコマンドは既にリクエスト済みのテストプランを、終了するまで待ちます。ただし、ほとんどの場合はautify mobile test run --wait
を代わりに使うことになるでしょう。
より詳しい情報は GitHub をご覧ください。
API コマンド
api
という名前空間以下にあるコマンド(autify web api
とautify mobile api
)は、Autify のAPI 仕様から自動生成されたものなのでここには意図的に表示していません。もし詳細を知りたければ、GitHub をご覧ください。api
コマンドを使って複数のAPI を組み合わせるユースケースがあれば、他のユーザも同じロジックを利用できるように、ぜひそれをユースケース特化したコマンドとしてautify web test run
の様に実装したいと考えています。皆さんのアイデアをGitHub Issues でぜひ共有してください。
CI/CD 連携
Autify CLI をベースにしたAutify 公式のCI/CD 連携に関するドキュメントがいくつかあります。CI/CD 連携とはどんなもので、どういった連携をAutify が持っているかについて理解するには、Autify でCI/CD をご覧下さい。
貢献
Autify CLI はオープンソースソフトウェアとして GitHub でホストしています。貢献方法についてのガイダンスを近いうちに出す予定です。