この記事は Autify アドベントカレンダー2022 の2日目のエントリです。
こんにちは。Autify カスタマーリライアビリティエンジニアの堀です。
嬉しいことに、今年はAutifyにとって、たくさんのインテグレーション関連の発表が行われた年でした。挙げるだけでも...
- Autify Command Line Interface (CLI)
- GitHub Actions 連携
- CircleCI 連携
- Jenkins 連携
- GitLab CI/CD 連携
- Azure Pipelines 連携
- AWS CodeBuild 連携
と、さまざまなプラットフォームでAutifyのテストをパイプラインに組み込めるインテグレーションが、怒涛の如くリリースされています。
中でも汎用的なCLIの誕生は、多くのAutifyユーザーの皆様のお役に立つことでしょう。
そこで、当記事では 「Autify CLIをはじめよう」 と題しまして、CLIを使ったことのない方にもぜひ試していただけるようなご紹介をできればと思います!
Autify CLIとは?
Autify CLIは、コマンドラインのインターフェイスからAutifyに対する一連の操作を行えるツールです。
Autify CLIを使うと、Autify for WebおよびAutify for Mobileに対して
- テスト実行
- テスト結果の取得
- Autify Connect連携のための操作
- APIコマンドの簡単な実行(シナリオ一覧の取得など)
といった操作を、画面のUIを介することなく、簡潔なコマンドで実行することができます。
Autify CLIは、Autifyをご利用のユーザーの皆様はどなたでもご利用いただけます。Windows/macOS/Linuxのプラットフォームに対応しており、各環境に合わせたインストール方法をご用意しております。
詳しい導入方法は以下の公式ドキュメントをご覧ください。
https://help.autify.com/docs/ja/autify-command-line-interface
ウォーミングアップ
さて突然ですが、Autifyで以下のことをやろうとした場合には、どんな操作が必要でしょうか?
Autify for Webで
とあるシナリオを
Pixel 2 (Emulator) 上で
実行して
テストが終わるまで待ってから
結果を確認し
失敗していた場合には
1回だけテストを再実行する
これをAutifyの画面UI上でやるとしたら、きっとこんな感じになるでしょう。
Autify for Webにログインして
テストプランを作成し
シナリオと実行環境を指定して
実行ボタンをポチっとし
Slack設定してたらSlack通知から
そうでなければ一覧画面を見て
得られたテスト結果が❌だったら
もう一度実行ボタンをポチっとする
なんとまあ、立派なポエムのできあがりです。
ですが、このポエムをCLIでの実行に置き換えると...
autify web test run [シナリオのURL] --wait --os "Android" --device "Pixel 2" --device-type "emulator" --max-retry-count 1
たったこの1行で一連のプロセスを実行することができるのです!
このようなコマンドでの実行は、CI/CDパイプラインなどで自動化を行うフローに組み込むのはもちろんのこと、お手元のマシンでブラウザを立ち上げることなくサクッとテストを回したいといった場合にも便利です。
実行してみよう
では、実際に上記で紹介したコマンドを実行してみましょう。
テストの実行が始まると車が走り出します。かわいいですね。
--wait
オプションをつけていた場合には、テスト実行が完了し次第、結果が表示されます。
✅ Test passed!
成功です!
結果の詳細を見にいきたい場合には、表示されたURLから見にいくことができます。
期待通り、Pixel2のEmulatorで実行されたテスト結果ができていますね!
autify web test run
の直後に指定するURLは、シナリオのURLやテストプランのURLをそのまま指定すればどちらでも実行できるのが便利です。また、ご紹介したコマンドに含まれていた実行環境や待機のオプションの他にも、URL置換やテスト結果の名称指定(シナリオURL指定時のみ)など、さまざまなオプションが用意されています。
2022年12月現在の autify web test run
コマンドオプション:
USAGE
$ autify web test run [SCENARIO-OR-TEST-PLAN-URL] [-n <value>] [-r <value>] [--autify-connect <value> |
--autify-connect-client] [--autify-connect-client-verbose ] [--autify-connect-client-file-logging ]
[--autify-connect-client-debug-server-port <value> ] [--autify-connect-client-extra-arguments <value> ] [--os
<value>] [--os-version <value>] [--browser <value>] [--device <value>] [--device-type <value>] [-w] [-t <value>]
[-v] [--max-retry-count <value>]
ARGUMENTS
SCENARIO-OR-TEST-PLAN-URL Scenario URL or Test plan URL e.g.
https://app.autify.com/projects/<ID>/(scenarios|test_plans)/<ID>
FLAGS
-n, --name=<value> [Only for test scenario] Name of the test execution.
-r, --url-replacements=<value>... URL replacements. Example: http://example.com=http://example.net
-t, --timeout=<value> [default: 300] Timeout seconds when waiting for the finish of the
test execution.
-v, --verbose Verbose output
-w, --wait Wait until the test finishes.
--autify-connect=<value> Name of the Autify Connect Access Point.
--autify-connect-client Start Autify Connect Client
--autify-connect-client-debug-server-port=<value> Port for Autify Connect Client debug server. A random port will be
used if not specified.
--autify-connect-client-extra-arguments=<value> Extra command line arguments you want to pass to Autify Connect
Client e.g. "--tunnel-proxy http://proxy".
--autify-connect-client-file-logging Logging Autify Connect Client log to a file instead of console.
--autify-connect-client-verbose Verbose output for Autify Connect Client.
--browser=<value> [Only for test scenario] Browser to run the test
--device=<value> [Only for test scenario] Device to run the test
--device-type=<value> [Only for test scenario] Device type to run the test
--max-retry-count=<value> Maximum retry count while waiting. The command can take up to
`timeout * (max-retry-count + 1)`. Only effective with `--wait`.
--os=<value> [Only for test scenario] OS to run the test
--os-version=<value> [Only for test scenario] OS version to run the test
数々のオプションにグッときましたか? ぜひお手元で動かしてみてください!
また、Autify CLIには、autify web test run
の他にもさまざまな便利なコマンドがあります。詳しくはGitHub上にあるREADME、および実際にコマンドを実行して表示されるヘルプをご確認ください。
おわりに
Autify CLIでは、皆様からの「CLIでこんなことができると嬉しい」といったリクエストも受け付けております。もし何かアイデアがございましたら、チャット、またはGitHub上のissuesまでお気軽にお寄せください!
おまけ:Autify社内でのナレッジ共有
今回のCLIのように、新しい機能やインテグレーションがリリースされると、AutifyのRevenueチーム(セールス&マーケティング、カスタマーサクセス&サポート)では、それらの使い方を共有するセッションを不定期に開催しています。ときにはお隣のテクニカルサポートのチームや実際に機能を開発したエンジニアリングのメンバーを招きながら、あるいはUSのチームのリクエストに応じて英語で、わいわい質問を交えつつ実施することも。実はこの記事の内容も、こういったナレッジ共有セッションで実施したことをベースにしたものです。
社内セッションの例(サムネもコマンドミスもご愛嬌)
このような社内セッションにRevenueチームのメンバーが高い熱量で参加してくたり、実際に開発を担当したエンジニアの皆さんともすぐに会話できる距離感があることは、Autifyのすごく好きなところです。
ちょっぴり早いですが、来年もワクワクするような機能やその活用方法をユーザーの皆様へお届けできる年になることを願いながら、記事を締めくくらせていただきます🎄