TOPハウツー・学習テクノロジー世界が広がる🌍ソフトウェア品質#278 Magic PodのAutopilotで、Web APIを使ったアカウント新規登録テストを作ったよ。12:11 2025年9月15日 130再生 問題を報告する 再生する シェアする AI目次Magic Podオートパイロット導入でテスト効率化Web APIテスト自動化の具体例とは30分でWeb APIテスト作成に成功APIテスト作成における課題と解決策まさかのメガネ忘れと新潟駅近くのゾフAI文字起こし(β版) # タイトルコール ようこそ、世界が広がるソフトウェア品質へ。 このチャンネルでは、エンジニアリングマネージャー兼QAリーダーのサミーが、 ソフトウェアテストやソフトウェアの品質保証を中心に、 日々奮闘していることや考えていることをお話しします。 毎日、お昼の12時30分に配信しています。 ゲストの方やリスナーのあなたと、 テストや品質の世界を広げていきます。 # Magic PodのAutopilotで、Web APIを使ったアカウント新規登録テストを作った話 こんにちは、さみぃです。今日もワクワクしてますか? 今回はですね、MagicPotのオートパイロットを使ったよという話をしていきます。 もう少し具体的に言うとですね、Web APIのテストを作ってみました。 まず最初にこのきっかけですね、なんでオートパイロットを作ろう、使おうと思ったのかというところと、 どういうテストを作りたかったのかというところから話をしていきます。 きっかけは何と言ってもですね、先日のMagicPotのユーザーミートアップになります。 MagicPotのCEOの伊藤さんからですね、発表というのかな、お話がありまして、 その中でオートパイロットでこういうことできるよというところの紹介もありました。 ユーザーミートアップ参加する前から存在は認識してたんですけど、後回しになってしまっていたので、 ユーザーミートアップをきっかけに、よしオートパイロットまずは使ってみよう、 何ができるかというのは自分で体感というのかな、しようというところを考えたのがきっかけです。 もう一つ、ユーザーミートアップの中でWeb APIを使えるよとか、こういうふうに活用したよという事例も紹介されていました。 その中で特に気になったのが、新規登録ですね、アカウントの新規登録をWeb APIで、 APIをたたいて直接作る、そういう活用方法があるよって聞いたのがすごい気になっていて、 まさにですね、今自分で作っているテスト、MagicPotで作っているテストだと、 ざっくり三つの構成になっているんですよ、テストの中身というんですかね。 まず最初に新規登録でアカウントを作ります、その後何かテストしたいことのオペレーションをしてアサーションをします。 最後に大会をしてアカウントを削除というか、きれいにするというこの三段階になっているんですよね。 既存のテストだと、その新規登録というのは全部画面上、UI上を操作して新規登録をしているんですね。 その事例の発表を伺っていて、確かになと思ったんですけれど、Web APIを経由して直接APIをたたいて、 新規登録アカウントを作れば当然実行速度も速いと、確かに確かにと思ったわけですね。 これぜひやりたいなと思ったんですけど、具体的にどういうふうな手順というのかな、 テストを書いたらよいのかというところまでは事例の発表がなかったわけです。 どうしたものかなというのを考えていて、ふと閃いたわけなんですね。 これオートパイロットで作れるんじゃないかな、ということでオートパイロットを活用して、 Web API経由でアカウントを新規登録するというテストを作ってみました。 続いてここからは使ってみての初感と、その後もう少し詳細のこういうふうにやってみたいという流れをお話ししていきます。 全体の初感としてなんですけれど、大体30分ぐらいでテストを作れたかなという感じです。 1から0から自分からやってたら多分できなかったと思うので、そういう意味ではすごくサポートになりました。 一方で伊藤さんもお話しされてたんですけど、結構速度が遅いんですよというのは実際に感じたので、 伊藤さんからアドバイスいただいてた通り、コマンドをプロンプト入れて実行する、 その間に別の作業をして3分とか5分とかしたらまた戻ってくるという感じでオートパイロットを使っていました。 オートパイロットのいいなと思ったポイントとしては、やっぱりWeb APIのテストどういうふうに0から自分で変えたらいいかが分からないという状態だったので、 そこをかなりサポートはもらいました。どういう流れでテストを作っていったらよいのかというところがヒントをもらいながら進めることができたので、 結果として、もし自分で0からやったら2時間とかかかってたかもしれないものが30分でできたというのはオートパイロットを使ってよかったなというポイントです。 あともう1個良かったポイントが、普段使わないコマンドっていうんですかね。 例えばログの出力というコマンドがあるとか、変数の活用だったりとか、繰り返しの処理というのはこれまで自分では作ったことなかったので、 オートパイロットが作ったのを見て、こういうコマンドもあるんだなという存在だったり使い方ということを学ぶこともできました。 1本でオートパイロットのまだまだ弱い部分かなというところは、伊藤さんもおっしゃってたんですけれど、時間がめちゃくちゃかかるというところですね。 プロンプトを投げてから帰ってくるというのかな、結構試行中の中身というのは随時表示ばされてたりするんですけど、 一周というのはここまで処理しきりましたというところまでは数分かかるというところなので、結構今後改善されるんじゃないかなというふうに期待しているポイントでもあります。 そしてもう少し具体的なところを最後お話ししていこうと思います。 最初に打ったコマンドというかプロンプトは、先ほどもちらっと言ったんですけど、Web APIを使ってアカウントの新規登録を行うテストを作成してくださいというふうにプロンプトを投げました。 そしたら、Jetpotのオートパイロットのほうでも、まず最初にこんな内容が返ってきました。 まず、現在のテストケースの状態を読み込み、使うコマンドの正確なパラメータ使用を確認します。 続いて、Web APIで新規登録を行うためのステップを押した楽器、楽園ドポンのイントなどはダミー、括弧と字で追加できます。 後で本番の値に差し替えましょうという感じで、何をやっているのかというのと、何がその後自分の作業として必要なのかというところが書かれているのがすごく安心感もありました。 テストケースを読み込んでマウスとかコマンドを検索してマウスみたいなのをやっていることが随時表示をされていて、次のような感じで文字がテキストが表示されています。 ありがとうございます。まずWeb APIで新規登録だけを行う最初の構成のテストを追加しました。 やったことと使い方は書きですということで、作成したテストの流れは一時のメールアドレスを自動生成して、 これこれをこういうふうにして毎回ユニークなメールアドレスを生成しますとか、生成したメールをログに出力してWeb APIをポストで呼び出して新規登録しますよという感じで、 基本ステータス、期待ステータスがこれこれで、ヘッダーとボディーはこれこれですよみたいなところですね。 成功時はこのまま通過、失敗時はステータス不一致でテスト失敗させますみたいなこと。 どういうテストを作成したのかというのがまずテキスト、日本語で書かれています。 その後にこの後に調整していただきたい箇所というところで何がやる必要があるのかというのも書いてあります。 例えば登録APIのURL、今はダミーのこれこれになっているので実際のエンドポイントに書き換えてくださいとか、 あとはリクエストボディの項目名ですね。今はEmailとパスワードでやってるんだけど、必要に応じて書き換えてくださいね、項目を変更してくださいねとか、 あと期待ステータスコードは今201というふうに書いてるんですけど、それ以外回数設計であれば値に合わせて変更してくださいねとか、 そういうことが書いてあります。プラスしてもう1個、もう1個というかまだあと2つぐらい書いてあるんですけど、出力結果ですね。 3つ目が発展、ご希望ならすぐ組み込みますということで、レスポンスからユーザーIDとアクセストークンを変数に保存してログを出力しますよとか、 あと招待コードやメール認証が必要ならそのAPIを呼び出すのを続けて自動化しますよとか、こういうこともやってくれますよというところもしっかり書いています。 最後のセクションがお願いというふうに書いていて、こういうことやってくださいねというところを最後にまとめて書いてあります。 実際の登録APIのエンドポイントのURLとか、必要なヘッダーとか、リクエストの項目名とか、期待されるステータスコード、レスポンス例などがあれば教えてください。 教えていただいたらこちらでテストを具体化しますよというふうに書いてあります。 こんな感じでですね、やったことと追加してくださいねというのがあるので本当にやりやすかったです。 一方でといいますか、私はもともと自分で画面上からの操作でのアカウントの新規登録をやっていたというのもあって、 それをある意味登録のAPIを叩くという部分、画面上からの操作からWeb APIに変えるということをやっていたので、 言いたかったのは、もともとどういう操作をしたら何ができるかというところが分かった上で今回のテストを作ったので、 こういうふうに書き換えたらいいだろうなというのは割とスムーズに操作できたと思います。 もし新規登録を全く作ったことがないとか、そういうテストでWeb APIで作ってみようとなったときに、 何をしたらいいのかとか、そもそもWeb APIのコールがあって、ポストとかあって何をポストしたらいいのかとか、 何をゲットしたらいいのかというところが分からない状態で、 オートパイロットだけで作ったらうまくいったか、30分で作れたかというと、ちょっとそれは難しいんじゃないかなというふうに感じました。 何でこんな話をしたかというと、最初にオートパイロットで作ってもらったテストの中身を見ていくと、 ログを出力したりとか、ログをしておけばいいのかなとか、ちょっと私の目線から見ると序章だなと思うような操作が入っていたんですね。 これじゃなくてもいいかもなって思うもの。それを省くことができたのは、もともと何ができたらよいかというところを、 イメージを持っていた、マジックポッドでどう実現できるかというところが分かっていたから、 ここはいらなさそうだなという判断ができたというふうに感じました。 ということで、今回はマジックポッドのオートパイロットを使ってWeb APIのアカウント新規登録のテストを作ってみたよ、30分でできたよという話をしました。 ユーザーミートアップで得た学びとかやる気みたいなところを活かして、パパッとテストを作るという行動に進めたことも嬉しいですし、 また別のテストでもオートパイロットを引き続き使ってみたいと思います。 # 今日のほっこり話👓 今日のほっこり話です。 メガネの話をします。 先日、ジャスト新潟に参加するために新潟に行ったんですけれど、 まさかのですね、メガネを持っていくのを忘れました。 久しぶりにコンタクトをつけて、その日は家を出て行ったのが良かったんです。 で、あ、メガネ持っていかなきゃなー。 あの、宿泊をする予定だったんで、メガネ持っていかなきゃなーって思ってたんですけど、 その時に、あ、靴下持っていかなきゃって思って、靴下を入れたらですね、メガネを忘れてしまいましてですね。 ジャストの講演中に、あ、メガネ忘れたって突然言ってみますか、思い出しまして。 私ちょっと、ラガンだと日常生活を送れないぐらい悪いのと、 その後、連休なので観光もしようと思ってたんで、 さすがにメガネないと危ないなーっていうところだったんですけど、 で、どうしたと思います? なんとですね、新潟駅のすぐ近くにですね、ゾフがありまして、 ジャストの会場のニーノっていうところでやったんですけど、 会場から徒歩3分ってグーグルマップで出てきたんで、これ行けないってことですね。 講演の合間の休憩時間にですね、メガネを作りに行きました。 まあ30分ぐらいでできますよって話だったんで、また会場戻ってきて次の講演聞いて、 また休憩時間にメガネを取りに行くみたいな感じで、 なんとかですね、メガネを無事に受け取る、作ることができました。 おかげでその後の観光もですね、いろいろ楽しむことができました。 ということで、以上今日のホッコリ話でした。 # 次回予告 今回も最後までお聞きいただきありがとうございました。 次回はVoicyのトークテーマ、学び直したいことということで、 最近読んでいるクリーンアジャイルという本のお話をしようと思います。 今回の放送を聞いて、なるほどな、確かにな、学びになったなと思った方は、 ぜひ画面右下、ハートマークでいいねを押していただけると、とっても励みになります。 また、プレミアム放送の方ではより身近に感じるような放送をしております。 チャンネルチャットの方では、オフ会の作戦会議だったり、 登壇情報をいち早く知ることができます。 プレミアムリスナーについて気になる方は、ぜひチャンネルページのトップに固定してある放送をお聞きください。 それではまた明日お会いしましょう。ごきげんよう。 もっと見る #AI #ソフトウェアテスト #E2E自動テスト #MagicPod 世界が広がる🌍ソフトウェア品質プレミアム放送配信中!00:201.タイトルコール09:412.Magic PodのAutopilotで、Web APIを使ったアカウント新規登録テストを作った話01:313.今日のほっこり話👓00:404.次回予告コメント感想・質問・応援メッセージを書こう
#698 チームの成果を高める「任せ方」と「頼り方」 18分・一昨日・ 93再生AI目次似て非なる「任せる」と「頼る」の本質目的と裁量を共有する効果的な任せ方チーム貢献につながる助けを求める「頼り方」好循環を生む「任せる」と「頼る」の連携#691 学生時代のバイト失敗談と共感
#697 高いところから見渡すとき、わーっ✨️となるのはなぜ?&チャンネル名を戻しました 11分・11月8日・ 91再生AI目次高所から見渡す感動の心理を探る城郭と展望台が喚起する優越感チャンネル名回帰の背景にある意図リスナーからの刺激的な旅の便りマレーシアからNYまで旅情を誘う
#695 『Taking Testing Seriously』17章で印象に残ったこと 14分・11月6日・ 75再生AI目次ソフトウェアテストの根幹「批判」の重要性「困った生徒」から学ぶ暗黙知の獲得プロセスAIと人間の行動様式「模倣と多様性」の境界アプリ新機能公開を支えるフィーチャーフラグカードゲーム「クマ中合戦」初の外部テスト
#694 ソフトウェアテストの7原則を学び直す(前半) 12分・11月5日・ 100再生AI目次JSTQBが提唱するテスト原則欠陥を完全に排除できない理由全数テストはなぜ不可能か?早期テストがもたらすコスト削減欠陥の偏りとリスク軽減策
#693 合意形成とは、みんなが同じ意見になることではなく、次の行動を決めること 11分・11月4日・ 126再生AI目次合意形成は意見一致か?その本質対立意見を生む情報と前提の違い二者択一ではない解決策の発想議論から具体的な行動へ繋ぐ秘訣#686コメントとボードゲームの裏側
#692 2020年の私はワーホリで🇦🇹へ 24分・11月3日・ 106再生AI目次30歳ワーホリ決断、オーストリアを選んだ理由コロナ禍で渡航、多発する異国のトラブル再渡航!音楽祭と2週間の自主隔離生活Airbnbオーナーが語る、価値観を変えた働き方旅で見つけた湖、トリュフ狩り、そして人生観
#691 学生時代のバイトで失敗したときの話 13分・11月2日・ 105再生AI目次サイゼリヤでの失敗から得た教訓食を提供する現場の安全意識夏のクリスマス オーストラリア体験マーラー交響曲「巨人」立奏の舞台裏AIが創る歴史的記念写真の驚き
#690 行ってよかった国🇦🇹🇹🇼🇻🇳&行ってみたい国🇲🇳🇨🇭 16分・11月1日・ 156再生AI目次オーストリア湖の概念を変えた絶景台湾グルメ旅の醍醐味とおすすめベトナム出張で知った食の魅力広大なモンゴルの星空とゲル体験スイスの水の都とアルプスの魅力