コーディングエージェントで Android アプリをテストする
英語から自動翻訳されています。
英語で読むコーディングエージェントは、人と同じ方法でアプリの登録をテストできます。Android アプリをビルドし、Android Emulator で実行し、Proxy Mail QA のテスト用アドレスでフォームを入力し、メールのコードを入力するかリンクを開きます。Proxy Mail QA はエージェントにアドレスと、メールのコードやリンクを渡します。エミュレーターの操作はエージェント自身のツールで行います。通常は adb です。
以下のどの設定も、まず Proxy Mail QA をエージェントに接続します。1 つのプロンプトで設定 を貼り付けるか、MCP server を手動で接続してください。
adb を使う Claude Code、Codex、Cursor
Section titled “adb を使う Claude Code、Codex、Cursor”シェルコマンドを実行できるエージェントなら、Android SDK の platform tools にある adb でエミュレーターを操作できます。Android Studio の Device Manager からエミュレーターを起動し(または名前を指定して emulator -avd で起動し)、Proxy Mail QA を接続したエージェントでプロジェクトを開いて、次のように依頼します。
デバッグ版アプリをビルドし、起動中のエミュレーターにインストールして開いてください。新しい Proxy Mail QA のテスト用アドレスと、そのとき渡されるパスワードで登録し、メールの確認コードを入力して、アプリでアカウントが確認済みと表示されることを確かめてください。各ステップでスクリーンショットを撮ってください。
エージェントは通常、次のように進めます。
./gradlew installDebugでビルドしてインストールし、adb shell am startでアプリを開きます。password: trueを指定してcreate_addressを呼び出します。adb shell uiautomator dump(またはadb exec-out screencap -pのスクリーンショット)から入力欄を見つけ、adb shell input tapでタップし、adb shell input textで入力します。- 送信してから、
wait_for_codeまたはwait_for_linkを呼び出します。 - コードを入力するか、
adb shell am start -a android.intent.action.VIEW -dとリンクでアプリ内でリンクを開き、App Link またはカスタムスキームに処理させます。 - スクリーンショットを撮り、アカウントが確認済みと表示されていることを確かめます。
adb shell input text ではスペースを %s と書く必要があり、一部の文字はエスケープが必要です。入力後に各欄を確認するよう、特にパスワードについてはエージェントに依頼してください。
Android Studio の Gemini エージェント
Section titled “Android Studio の Gemini エージェント”Android Studio のエージェントモードはリモートの MCP サーバーを使えます(Google のガイド)。Settings → Tools → AI → MCP Servers で Enable MCP Servers を選び、次を追加します。
{ "mcpServers": { "proxymail-qa": { "httpUrl": "https://api.proxymail.qa/mcp" } }}Start Login を選び、ブラウザでサインインします。Android Studio は MCP のプロンプトテンプレートに対応していないため、test_signup_flow のようなプロンプトを選ぶのではなく、普通の言葉で依頼してください。Android Studio のエージェントはまだ私たちでテストしていません。サインインが完了しない場合は、Android Studio と併せて Claude Code または Codex を使ってください。
ほかに依頼できること
Section titled “ほかに依頼できること”- 手元のコンピューターの開発サーバー。 エミュレーターからは
10.0.2.2でコンピューターに接続するため、開発ビルドのリンクが10.0.2.2:3000を指すのは想定どおりです。開発環境としてマークする(mark_dev_host)ようエージェントに依頼すると、check_emailはそれらのリンクを失敗にせず合格にします。 - App Links。 リンクが届いた後、
expect_hostに App Link のドメインを指定してcheck_emailを使うと、リンクがそこへ向かうか確認できます。count_emailsは誤って送られた 2 通目のメールを検出します。リンクがアプリではなく Chrome で開く場合、よくある原因はドメインのassetlinks.jsonかアプリの intent filter です。 - 複数の枠に分かれたコード。 エージェントは最初の枠をタップしてコード全体を入力し、先に進む前にすべての桁が入ったか確認します。
- 項目の多い登録フォーム。 ルールのあるユーザー名、生年月日、国などについては、
form_valuesがそのために作った新しいアドレスから各欄の値を返します。 - 次回も同じアカウント。 アカウント作成時に、使用場所(
stagingのようなenvironmentと、androidのようなタグ)を記録するようエージェントに依頼すると、list_addressesで再び見つけられます。保存済みパスワードの読み取りを許可した API キー があれば、get_sign_inは 1 回の呼び出しでアカウントとパスワードを返します。 - レポート。 エージェントは最初に
start_runを、最後にfinish_runを呼び出します。最後の呼び出しで、レポートが Markdown で返されます。
特典とマーケティングメール
Section titled “特典とマーケティングメール”- クーポン。 アプリで特典に登録した後、
kind: couponを指定してwait_for_codeを使うと、割引、終了日、届くまでの時間とともにクーポンが返ります。エージェントはそれをアプリのプロモーション欄に入力します。 - 決済はテスト支払いのみで。 Google Play のライセンステスターとテストカード、またはアプリ独自のテストモードを使い、実際のカードや実際の購入は使わないでください。エージェントはアプリの動作を
record_coupon_resultで記録します。 - アプリを開くリンク形式のクーポン(
myapp://redeem?code=…など):app: trueを指定したwait_for_linkがそれを返し、エージェントはadb shell am start -a android.intent.action.VIEW -dとリンクで開きます。 - 1 人 1 回の特典。 同じアドレスの別形式(
get_address_variants)で再登録してからcheck_offersを使うと、アプリが特典を 2 回与えたかどうかがわかります。 - 扱いにくい名前とパスワード。
get_name_variantsとget_password_variantsはフォームのほかの欄の値(アポストロフィ、アクセント記号、他の文字体系、各記号クラス、欄の上限)を返します。エージェントはそれぞれを入力し、アプリの動作を報告します。 - 同意と配信停止。 エージェントは登録時に選んだ内容を
record_consentで記録し、アプリの設定またはメールのリンクから配信を停止してmark_unsubscribedを呼び出します。後でcheck_unsubscribeが、その後に届いたマーケティングメールを一覧にします。
テストとして書く
Section titled “テストとして書く”CI で実行する UI テストとして残すには、Android (Espresso) を、iOS も含むフローについては Maestro を参照してください。
このページについて質問がありますか?
質問はどの言語でもかまいません。ドキュメントからすぐに回答を得ることも、Proxy Mail QA チームに質問を送ることもできます。チームからの返信は英語です。