CircleCIを使ってAutifyのテスト結果をTeamsに通知する
1. はじめに
CircleCIを用いてAutifyとMicrosoft Teams(以降Teams)を連携する方法を説明します。
具体的には、ソースコードがGitHubのmainブランチへマージされたタイミングで、Autifyのテストプランを実行し、テスト結果URLをTeamsへ通知します。見た目をよりリッチにしたい方は「Microsoft Teams API (Incoming Webhook) で投稿 - Qiita」が参考になると思います。
なお、今回はテスト実行の完了を待たずに結果URLを通知します。完了を待つためには、AutifyのAPIによってテスト結果のstatus
を取得し、待機または結果通知を行うスクリプトを作成することで可能になります。
2. 使用するツール
3. 手順
- Teamsのチャネルに受信Webhookを設定
- CircleCIに環境変数を設定
- CircleCIの
config.yml
を作成- Autifyのテストプランを実行する
- テスト結果のIDを取得する
- テスト結果URLをTeamsへ通知する
- トリガーを指定する
3-1. Teamsのチャネルに受信Webhookを設定
受信 Webhook を作成する - Teams | Microsoft Docsを参考に、通知を受け取りたいTeamsのチャネルにWebhookを設定します。
設定したURLは後述の手順で使うので、どこかにメモしておきましょう。
3-2. CircleCIに環境変数を設定
CircleCIの「Project Setting > Environment Variable」から、次の3つの環境変数を設定します。
-
AUTIFY_PERSONAL_ACCESS_TOKEN
-
AUTIFY_PROJECT_ID
- Autifyの「設定 > プロジェクト」を開き、URLからプロジェクトIDを取得
- 例)
https://app.autify.com/settings/projects/999
の場合、999
- 例)
- Autifyの「設定 > プロジェクト」を開き、URLからプロジェクトIDを取得
-
AUTIFY_TEST_PLAN_ID
- 実行したいテストシナリオを選択し、テストプランを作成します
- 「テストプラン」ページを開き、URLからテストプランIDを取得
- 例)
https://app.autify.com/projects/999/test_plans/0000
の場合、0000
- 例)
3-3. CircleCIのconfig.yml
を作成
Autifyのテストプランの実行と結果の通知を行うワークフローを作成します。
今回は、Autifyで用意されているCirckeCI用のサンプルを参考にしました。
※APIの一覧はこちら。しかし、2021年11月現在、サイト内でのAPI実行はうまくいかないようです。Postmanなど別の方法でお試しください。
Autifyのテストプランを実行する
環境変数を使って、テスト実行用のPOSTメソッドを設定します。
version: 2.1
jobs:
publish-to-production:
docker:
- image: cimg/base:2020.01
steps:
- checkout
- run:
name: Run regression tests
command: |
# テストプラン実行
response=$(\
curl -XPOST -H "Authorization: Bearer ${AUTIFY_PERSONAL_ACCESS_TOKEN}" \
https://app.autify.com/api/v1/schedules/${AUTIFY_TEST_PLAN_ID} \
)
テスト結果のIDを取得する
jqコマンドを使って、レスポンスからテスト結果IDを取得します。
# テストプラン実行 ...
# テスト結果ID取得
test_plan_result_id=$(echo ${response} | jq -r .data.id)
テスト結果URLをTeamsへ通知する
前述の手順で取得したWebhook URLを使って、POSTメソッドを設定します。
# テスト結果ID取得 ...
# 結果URLのTeams通知
response=$(\
curl -X POST -H "Content-Type: application/json" \
-d '{"title": "AutifyResult", "text": "https://app.autify.com/projects/'${AUTIFY_PROJECT_ID}'/results/'${test_plan_result_id}'"}' \
<Webhook URL> \
)
トリガーを指定する
ソースコードがGitHubのmainブランチへマージされたタイミングで実行するために、トリガーを指定します。
workflows:
version: 2
commit-workflow:
jobs:
- publish-to-production:
filters:
branches:
only: main
4. 雑感
やっていることは単純なのですが、Windowsでcurlコマンドを試しづらいことや、AutifyのAPI一覧からAPIを実行できないところに一番時間がかかりました…。
5. 参考
Author And Source
この問題について(CircleCIを使ってAutifyのテスト結果をTeamsに通知する), 我々は、より多くの情報をここで見つけました https://qiita.com/vZke/items/e66b3942ea5301a396ed著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .