えいのうにっき

a-knowの日記です

Google Cloud Scheduler を使って、Autify テストプランを柔軟なスケジュールで実行する

この記事は Autify アドベントカレンダー2021の2日目のためのブログエントリです。Autify の中の人(Autify のカスタマーサクセスエンジニアをしています)よりお届けしています。

qiita.com

Autify では、テストプランを利用することで、定期的にテストを自動実行させることが可能です。

f:id:a-know:20211201111658p:plain

設定画面は上記のようなものになっており、これ以上の内容でのスケジュール設定は、Autify 単体では行わせることはできません。

こんなとき、システム運用などの経験が少しある方であれば、「例えば cron のようなことができれば...」といったことを思い浮かべるかもしれません。

e-words.jp

ただ、シンプルに cron を利用しようとすると、「それを実行するサーバーがいるよね」「どうやって準備しよう」「運用どうしよう」......とかとか、考えなければいけないことがいくつかあります。

そこで、Google Cloud Scheduler という選択肢はいかがでしょうか。サーバーレス・フルマネージドなcron、と考えて差し支えないかと思います。

cloud.google.com

Google が提供するクラウドプラットフォーム環境である、Google Cloud Platform を利用可能なアカウントさえあれば、無料で利用しはじめることができます(3つ目の設定までは無料で、それ以降はひとつあたり $0.1/月 の費用が掛かります(記事執筆現在))。アカウントの登録方法まではこの記事では紹介しないので、もしまだお持ちでない場合には、こちらなどからあらかじめ登録しておきます。

cloud.google.com

Autify 側の準備をする

まずは Autify 側の準備をしておきます。

  • スケジュール実行させたいテストプランの設定
    • 対象のテストプランのURL https://app.autify.com/projects/999/test_plans/xxxxx をメモしておきます(特に xxxxx の部分が重要です)。
  • パーソナルアクセストークンの取得

特に2点目は、Autify の API を Cloud Scheduler 経由で呼び出すためには必要な作業です。この発行方法については公式のヘルプページを参照してください。

Google Cloud Scheduler から Autify テストプラン API を呼び出す

続いて Cloud Scheduler の設定をしていきます。これからやる内容に対応している公式ドキュメントは、以下です。

cloud.google.com

Google Cloud Platform にログインできたら、画面左にあるメニューから アプリケーションの統合 > Cloud Scheduler を選びます。

f:id:a-know:20211201112037p:plain

すると以下のような表示になると思いますので、「ジョブのスケジュール設定」のボタンをクリック。

f:id:a-know:20211201112055p:plain

以下のような設定画面のような表示になりますので、順番に設定をしていきます。

f:id:a-know:20211201112107p:plain

  • 名前
    • これから作成する設定にわかりやすい名前をつけます。名前には英数字、ハイフン「-」、アンダースコア「_」のみが使用可能です。
  • 説明
    • 上記のとおり、名前には英数字や一部の記号しか使えませんので、これがどんなスケジュール設定なのかがわかるような設定を記述します。
  • 頻度
    • ここが「どのようなスケジュールで Autify のテストプランを起動するか」のキモとなるのですが、いわゆる unix-cron 形式で指定する必要があり、不慣れな方にとっては「???」だと思います
    • たとえば、毎分の場合は「* * * * *」、3 時間ごとの場合は「0 */3 * * *」、毎週月曜日 9:00 の場合は「0 9 * * 1」...になるのですが、詳しくはぜひこちらのドキュメントを参照してください。
  • タイムゾーン
    • 上記「頻度」で指定した「時間」が、どのタイムゾーンの時間なのか?をここで指定します。
    • 日本時間の場合は「日本標準時(JST)」を指定します。

「続行」を押し、さらに「ターゲットタイプ」として「HTTP」を選ぶと、設定項目が下のスクリーンショットのように増えるはずです。

f:id:a-know:20211201112307p:plain

  • URL
    • https://app.autify.com/api/v1/schedules/xxxxx を指定します。
    • xxxxx の部分は、別途メモしておいた対象のテストプランのURLである https://app.autify.com/projects/999/test_plans/xxxxx と対応しています。
  • HTTPメソッド
    • POST を選択します。
  • HTTPヘッダー
    • 「ヘッダーを追加」ボタンを押し、「名前」に Authorization を、「値」に Bearer xxxxxxxxxxxxxxxxx を、それぞれ入力します。
    • xxxxxxxxxxxxxxxxx には、取得しておいたパーソナルアクセストークンの文字列を入力します。

上記各項目の入力ができたら、「続行」を押します。

すると、以下のように「再試行」に関する設定入力エリアが現れます。

f:id:a-know:20211201112429p:plain

これは、例えば一時的な通信上の問題などによってうまく Autify のテストプランが起動できなかったりした場合に、再度起動を試みるかどうか、の指定になります。気になるようであれば、「最大試行回数」を「3」くらいにしておくといいかもしれません。

以上、入力ができたら「作成」ボタンを押すと、スケジュール設定が完了です。

試しに、設定がうまくいっているかどうかを確認してみましょう。「作成」ボタンを押したあとに表示された画面内にある「今すぐ実行」ボタンを押してみます。

f:id:a-know:20211201112447p:plain

その後、Autify の「テスト結果」画面を確認してみましょう。起動させたかったテストプランが動き始めていれば、問題なく設定できていそうです!

f:id:a-know:20211201112518p:plain

あとは、「頻度」で設定したスケジュール通りにテストプランが起動されているかどうかを、別途確認できればOKです!

いかがでしたか?

少しとっつきにくいところもあったかもしれませんが、Autify のテストプランに限らず、いろいろな場面で応用できるサービスでありテクニックだと思いますので、知っておいて損はないかと思います!

それでは、良き「E2Eテストの自動定期実行」ライフを!