mablのAWS連携

Ruka Kanno
nextbeat-engineering
Jan 25, 2023

こんにちは。ネクストビートでエンジニアをしている菅野です。
普段は”保育園・幼稚園の『タイヘン』を『カンタン』に”をテーマに保育士バンク!コネクトの開発をしています。

最近、弊社ではテスト自動化ツールとして、mablを導入しました。
導入経緯などは下記をご覧ください。

今回はmablを運用していくにあたり、AWSと連携してCI/CDに組み込んでいく方法をご紹介致します。

驚くほど簡単に連携が可能でした。

目次

  1. mablでの準備
  2. AWS連携
  3. 動作確認

1. mablでの準備

実行するテストの用意と、APIキーの作成を行います。

初めに、実行するテストの準備を行います。
今回はサンプルとして2個のテストを作成しておきました。

テストをクラウド実行するために、「プラン」として1つにまとめます。
AWSからテストを実行する際に、ラベルを元に実行対象のプランを指定できるため、ラベルも紐付けておきます。

プランに紐付くテストは下記のようになっています。
サンプルとして作成したテストが結び付いていることが確認できます。

以上でテストの準備は完了です。

次にAPIキーの作成を行います。

mablの ワークスペース > API から、APIキーの作成を行います。

キーの種類を Deployment Triggerで作成します。

作成完了できると、下記のように作成されたAPIキーが表示されます。

最後にエンドポイントを取得します。

同じ画面内一番下の「APIを選択」から Deployment Events API を選択します。

すると、下記のようなAPIが表示されます。
下記から実行するテストプランを指定します。

ApplicationとPlan Labelsを埋めると、下記のように追加の設定画面が出てくるので、必要に応じて設定します。

他にも設定項目が色々出てきますが、必要なければ無視で大丈夫です。

一番下に、curl でAPIリクエストを発行するコマンドが生成されるので、コピーしておきます。
試しに生成されたコマンドを実行して、テストが正しく実行されることを確認しておきます。

以上でAPIの準備は完了です。

2. AWS連携

Amazon EventBridgeを使ってAWSとmablを連携していきます。

Amazon EventBridgeとは、トリガーに指定したイベントを検知して、特定のアクションを呼び出すための仕組みです。

重要な設定項目として、下記の3つが登場します。

  • ルール:イベント検知とAPI発行の紐付け、APIパラメータの付与
  • API送信先:APIの送信先情報、認証情報との紐付け
  • APIの認証情報:APIの認証情報

APIの送信先(と認証情報)→ ルールの順番で作成していきます。

Amazon EventBridge > APIの送信先 からAPI送信先を作成します。

エンドポイントやHTTPメソッドを設定します。
エンドポイントはmablで生成されたcurlコマンドを参照して設定します。

「新しい接続を作成」から、APIの認証情報もついでに作成します。

認証タイプは「基本(ユーザー名/パスワード)」を選択します。

mablで生成されたcurlコマンドの内、 -u のオプションで指定されている値がユーザー名とパスワードのペアです。
-u <username>:<password>といったフォーマットになっているので、それらを設定します。

作成を押すと、「APIの送信先」と「接続」の2つが作成されます。

認証情報に指定したユーザー名とパスワードのペアはAWS Secrets Managerに保存されます。

最後に、ルールを作成します。

Amazon EventBridge > ルールから作成していきます。

名前を付けて次へ進みます。

今回はAWS内のイベントを検知したいため「AWSイベント…」を指定しておきます。

「イベントソース」の下にある「サンプルイベント」は今回未設定のままにしておきます。

AWSのイベントとルールを紐付けていきます。

イベントパターンを設定する際、カスタムパターンを選択します。

sourceにはトリガーにするイベントを指定します。(デプロイ後など)
今回は手動でイベントを発火して試すため、適当な名前を指定します。

{
"source": [
"sample-event"
]
}

呼び出し先のAPIを紐付けていきます。

ここにある追加設定の中でリクエストボディを指定できます。

mablで生成されたcurlコマンドの内、 -d で指定されている値がリクエストボディです。

コマンドに記載されている状態は " などがエスケープされた状態なので、そのままコピーしてこないように注意します。

次のタグの設定は「次へ」でスキップします。
最後に設定値の確認を行なって、作成完了です。

3. 動作確認

イベントを発火させて、mablが動くことを確認します。

Amazon EventBridge > イベントバス からイベントの送信を押します。

ルールを作成した際の「イベントパターン」で設定を行った source に指定した名前をイベントソースに設定します。

イベントパターンにフィルター情報を設定しなかったため、「詳細タイプ」と「イベントの詳細」は適当で大丈夫です。

送信を押すとイベントは正常に送信されました。 と表示されればイベントを発火できています。

mablを確認して、正しく実行されたかを確認します。

ホームからプランが動いている様子を確認できれば成功です!

以上です。

余談

コネクトでは、徐々にmablでのテストを増やしている段階です。

最初こそ苦戦したものの、慣れるとサクサクとテスト作成できて、時短できているのかなという実感があります。

今後も知見を獲得して記事にまとめられたらと思います。

最後まで読んでいただき、ありがとうございました。

We are hiring!

株式会社ネクストビートでは

「人口減少社会において必要とされるインターネット事業を創造し、ニッポンを元気にする。」
を理念に掲げ一緒に働く仲間を募集しております。

https://www.nextbeat.co.jp/recruit

--

--