跳转到内容

本页由英文自动翻译。

阅读英文版

编程智能体可以像真人一样测试你的 Android 应用注册流程:构建应用,在 Android Emulator 中运行,用 Proxy Mail QA 测试地址填写表单,然后输入邮件中的验证码或打开邮件中的链接。Proxy Mail QA 为智能体提供地址以及邮件中的验证码或链接;智能体用自己的工具操作模拟器,通常是 adb。

下面每种设置都要先把 Proxy Mail QA 连接到智能体:粘贴一句提示词设置,或手动连接 MCP server。

任何能运行 shell 命令的智能体都可以通过 Android SDK 平台工具中的 adb 操作模拟器。从 Android Studio 的 Device Manager 启动模拟器(或用 emulator -avd 加模拟器名称启动),在已连接 Proxy Mail QA 的智能体中打开你的项目,然后输入:

构建 debug 版应用,安装到正在运行的模拟器上并打开。用一个新的 Proxy Mail QA 测试地址和它提供的密码注册,然后输入邮件中的验证码,检查应用是否显示账号已验证。每一步都截图。

智能体通常会:

  1. 用 ./gradlew installDebug 构建并安装,用 adb shell am start 打开应用。
  2. 调用 create_address,参数为 password: true。
  3. 从 adb shell uiautomator dump(或 adb exec-out screencap -p 的截图)中找到输入框,用 adb shell input tap 点击,用 adb shell input text 输入。
  4. 提交,然后调用 wait_for_code 或 wait_for_link。
  5. 输入验证码,或用 adb shell am start -a android.intent.action.VIEW -d 加链接在应用中打开链接,让你的 App Link 或自定义 scheme 处理它。
  6. 截图并检查屏幕是否显示账号已验证。

adb shell input text 要求空格写成 %s,部分字符需要转义,所以请让智能体在输入后检查每个字段,尤其是密码。

Android Studio 的智能体模式可以使用远程 MCP 服务器(Google 的指南)。在 Settings → Tools → AI → MCP Servers 中选择 Enable MCP Servers 并添加:

mcp.json
{
"mcpServers": {
"proxymail-qa": {
"httpUrl": "https://api.proxymail.qa/mcp"
}
}
}

选择 Start Login,在浏览器中登录。Android Studio 不支持 MCP 提示词模板,所以请直接用文字提问,不要选择 test_signup_flow 这类提示词。我们还没有亲自测试过 Android Studio 的智能体;如果登录无法完成,请改用 Claude Code 或 Codex 配合 Android Studio。

  • 你电脑上的开发服务器。 模拟器通过 10.0.2.2 访问你的电脑,所以开发版中指向 10.0.2.2:3000 的链接是正常的。让智能体把它标记为开发环境(mark_dev_host),check_email 就会让这些链接通过,而不是判为失败。
  • App Links。 链接到达后,将 expect_host 设为你的 App Link 域名并调用 check_email,可以检查链接是否指向那里;count_emails 能发现误发的第二封邮件。如果链接打开的是 Chrome 而不是应用,通常是域名的 assetlinks.json 或应用的 intent filter 有问题。
  • 分成多个格子的验证码。 智能体点击第一个格子并输入完整验证码,然后检查每一位都已填入再继续。
  • 更长的注册表单。 对于有规则的用户名、出生日期或国家,form_values 会根据为它新建的地址为每个字段提供一个值。
  • 下次使用同一个账号。 让智能体在创建账号时记录账号的使用位置(environment,例如 staging,以及 android 这样的标签),这样 list_addresses 就能再次找到它。如果 API 密钥 允许读取已保存的密码,get_sign_in 一次调用即可返回账号及其密码。
  • 报告。 智能体先调用 start_run,最后调用 finish_run,后者以 Markdown 格式返回报告。
  • 优惠券。 在应用中报名优惠后,用 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 加链接打开它。
  • 每人限一次优惠。 用同一地址的变体(get_address_variants)再次注册,然后调用 check_offers,可以看出应用是否发了两次优惠。
  • 特殊的名字和密码。 get_name_variants 和 get_password_variants 为表单的其他字段提供值(撇号、重音、其他文字、各类符号、字段长度上限);智能体逐一输入并报告应用的行为。
  • 同意和退订。 智能体用 record_consent 记录注册时的选择,从应用设置或邮件链接退订,调用 mark_unsubscribed,之后用 check_unsubscribe 列出退订后收到的营销邮件。

要把这项检查保留为在 CI 中运行的 UI 测试,请参阅 Android(Espresso);如果流程还要覆盖 iOS,请参阅 Maestro。

对本页有疑问?

可以用任何语言提问。文档可以立即回答,你也可以把问题发给 Proxy Mail QA 团队,他们会用英文回复。