---
title: MagicPodといいかんじに付き合っていく
tags:  #magicpod #note #zapier #自動化 #automation  
author: [Kazuya Ueoka](https://convert.docswell.com/user/fromkk)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/8GJWN59WJ2.jpg?width=480
description: YUMEMI.自動化 feat. note tech meetup ( https://yumemi.connpass.com/event/240476/ ) で登壇した内容です。 MagicPodを普段便利に利用している中で湧いてきた課題を自前で解決できないかを工夫してみました。
published: April 22, 22
canonical: https://convert.docswell.com/s/fromkk/K2J4NK-with-magicpod
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/8GJWN59WJ2.jpg)

といい感じに付き合っていく
YUMEMI.自動化 feat. note tech meetup @fromkk


# Page. 2

![Page Image](https://bcdn.docswell.com/page/W4EZ3N92E3.jpg)



# Page. 3

![Page Image](https://bcdn.docswell.com/page/KY76X8D6JV.jpg)



# Page. 4

![Page Image](https://bcdn.docswell.com/page/5G75X935E4.jpg)



# Page. 5

![Page Image](https://bcdn.docswell.com/page/V9J2X2ZG7R.jpg)

https://magic-pod.com/customer-stories/note/


# Page. 6

![Page Image](https://bcdn.docswell.com/page/5DEY8YRGEM.jpg)

note社アプリチームでのMagicPodの利用状況
• プラン: スタンダードプラン（プロジェクト５つ）
• 合計テストケース数: 60
• 一括テストの実行タイミング
• 毎朝7時
• masterブランチにマージするタイミング


# Page. 7

![Page Image](https://bcdn.docswell.com/page/2VJNQPD8J8.jpg)

抱えていた問題
• テスト結果の通知がメールでしかこなかった
• 同時並列数が2つまでしか対応してない


# Page. 8

![Page Image](https://bcdn.docswell.com/page/GYE9D3GXJ3.jpg)

テストの結果の通知がメールでしかこなかった
• メールは開かないと詳細が見れないのでどのテストが失敗したのか分かりづ
らかった
• 業務上の優先度: Slack&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;mailになっている
• MagicPodのテスト結果のメールが英語と日本語のいずれかで届くのでZapier
などの自動化には向いていなかった


# Page. 9

![Page Image](https://bcdn.docswell.com/page/5GE83MV97D.jpg)

前に試したこと
• 定期的にZapierからMagicPod APIを叩いて前回の結果を通知してみた
• MagicPod Web API https://magic-pod.com/api/v1.0/doc/


# Page. 10

![Page Image](https://bcdn.docswell.com/page/MLELV35M7R.jpg)



# Page. 11

![Page Image](https://bcdn.docswell.com/page/54JMGD36JW.jpg)

定期的にZapierからMagicPod APIを叩いて前回の結果を通知してみた


# Page. 12

![Page Image](https://bcdn.docswell.com/page/ZPJRZ4QN79.jpg)

定期的にZapierからMagicPod APIを叩いて前回の結果を通知してみた


# Page. 13

![Page Image](https://bcdn.docswell.com/page/NPEX9258JX.jpg)

定期的にZapierからMagicPod APIを叩いて前回の結果を通知してみた


# Page. 14

![Page Image](https://bcdn.docswell.com/page/63EKPM6LJD.jpg)

結果


# Page. 15

![Page Image](https://bcdn.docswell.com/page/4L73XY66J5.jpg)

作ってみて
• 結果が成功 or 失敗が可視化される点はよかった
• 失敗していれば修正しなければと思える機会が増えた
• とはいえリアルタイムに通知されるとより嬉しい


# Page. 16

![Page Image](https://bcdn.docswell.com/page/V87D25VM7G.jpg)

そんなところに
朗報🎉


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4VJP1GVQ78.jpg)

https://github.com/Magic-Pod/japanese-issue-and-doc/issues/137


# Page. 18

![Page Image](https://bcdn.docswell.com/page/L2EVY6ZPEQ.jpg)

設定方法
MagicPodのテスト一括実行画面
• （設定がなければ）テスト一括実行に設定を追加
• 共通設定を開く
• テスト結果をSlack通知: するに変更
• 通知用webフックを追加（適当な名前を付与）
• Slack連携を選択して通知先のチャンネルを設定
• 完了したら通知用webフックに作成したものを選択


# Page. 19

![Page Image](https://bcdn.docswell.com/page/Z57G9N4QJL.jpg)

結果
テスト成功時
テスト失敗時


# Page. 20

![Page Image](https://bcdn.docswell.com/page/V4EQWQGWEP.jpg)

MagicPod APIでの設定方法


# Page. 21

![Page Image](https://bcdn.docswell.com/page/DKJ4KN5171.jpg)

magicpod-api-clientでの設定方法
./magicpod-api-client batch-run -n -s &quot;{ \
\&quot;test_settings\&quot;:[{ \
\&quot;environment\&quot;:\&quot;magic_pod\&quot;, \
\&quot;os\&quot;:\&quot;ios\&quot;, \
\&quot;device_type\&quot;:\&quot;simulator\&quot;, \
\&quot;version\&quot;:\&quot;15.2\&quot;, \
\&quot;model\&quot;:\&quot;iPhone 12\&quot;, \
\&quot;app_type\&quot;:\&quot;app_file\&quot;, \
\”app_file_number\”:&quot;latest&quot;, \
\&quot;send_mail\&quot;:false, \
\&quot;retry_count\&quot;:0, \
\&quot;capture_type\&quot;:\&quot;on_each_step\&quot;, \
\&quot;device_language\&quot;:\&quot;default\&quot;, \
\&quot;device_region\&quot;:\&quot;Default\&quot; \
}], \
\&quot;slack_notification\&quot;: { \
\&quot;succeeded\&quot;: \&quot;SlackNotificationName\&quot;, \
\&quot;failed\&quot;: \&quot;SlackNotificationName\&quot;, \
\&quot;unresolved\&quot;: \&quot;SlackNotificationName\&quot;, \
\&quot;aborted\&quot;: \&quot;SlackNotificationName\&quot; \
} \
}&quot;
fi
SlackNoti cationNameは設定したものに適宜書き換える


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PLE1X5W5EG.jpg)

同時並列数が2つまでしか対応してない
• プラン次第ではあるがスタンダードプランだと現状2つまで
• API経由でテスト一括実行を3つ目以降を追加しようとすると弾かれてエラー
になってしまう（CIが失敗したステータスになる）
• 大きな問題というわけではないがCIの失敗を目にするのは精神衛生に悪い
• 開発人数が増えれば起きやすくなってしまう（現状masterブランチへのマ
ージ時に一括テストを実行しているため）
• MagicPodに関するエラーが当たり前になるとメンテナンスされなくなって
しまう危惧


# Page. 23

![Page Image](https://bcdn.docswell.com/page/8GEWN56WE2.jpg)

試したこと
• SlackのSlash commandで一括テストの実行状況を取得
• 実行中のテスト件数を取得して2件実行されている場合にはテストしない


# Page. 24

![Page Image](https://bcdn.docswell.com/page/W47Z3NY273.jpg)

SlackのSlash commandで一括テストの実行状況を取得
トリガー以外は 定期的にZapierからMagicPod APIを叩いて前回の結果を通知してみた と同じ


# Page. 25

![Page Image](https://bcdn.docswell.com/page/KYJ6X8R6EV.jpg)

SlackのSlash commandで一括テストの実行状況を取得


# Page. 26

![Page Image](https://bcdn.docswell.com/page/5GJ5X98574.jpg)

SlackのSlash commandで一括テストの実行状況を取得
結果


# Page. 27

![Page Image](https://bcdn.docswell.com/page/4LE3XY8575.jpg)

実行中のテスト件数を取得して2件実行されている場合にはテストしない
#!/bin/sh
brew install jq
MAGICPOD_API_URL=&quot;https://magic-pod.com/api/v1.0/${MAGICPOD_ORGANIZATION}/${MAGICPOD_PROJECT}/batch-runs/&quot;
MAGICPOD_API_RESPONSE=`curl -H &quot;Authorization: Token ${MAGICPOD_API_TOKEN}&quot; ${MAGICPOD_API_URL}`
NUMBER_OF_RUNNING=`echo $MAGICPOD_API_RESPONSE | jq &#039;.batch_runs | map(select(.status == &quot;running&quot;)) | length&#039;`
MAX_RUNNABLE=2
if [ $NUMBER_OF_RUNNING -ge $MAX_RUNNABLE ]; then
echo &quot;Too many running...&quot;
exit 0
fi
...
fi
.circleci/con g.yml


# Page. 28

![Page Image](https://bcdn.docswell.com/page/V8ED25MYEG.jpg)

まとめ
• MagicPodも完全ではないので足りない部分は自分で補っていく
• APIが公開されているものは色々活用していきたい
• 定期的に発生する問題は自動化チャンス！
• 細かいことでも積み重なると問題が常態化してしまい悪循環
• 例）毎回コケるテストはメンテナンスされなくなってしまう


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4V7P1GR2E8.jpg)

https://open.talentio.com/r/1/c/note/pages/61276


