跳到主要内容
NexCaptcha

解决方案

自动化测试与回归用例中的验证码

测试环境挂着和线上一样的验证码,用例只能被标记跳过。在 CI 里调用识别接口,让登录流程恢复无人值守执行。

适合谁

QA 工程师、测试开发和平台团队,跑的是针对自家预发和生产环境的端到端用例。用例在每次合并和每天夜里各跑一轮,早上有人负责看红色构建。测的是自己的系统,所以目标站点的条款就是自己的条款。

要解决的问题

注册和下单是业务上最关键的两条链路,也恰好是唯一挂着验证码的,于是最先被标成 skip。预发环境关掉验证码,用例测的就不再是要上线的那套代码。团队要的是在流水线里把真实控件识别掉,并设一个固定截止时间,识别慢了转成重试,而不是直接把构建判红。

  • 用例在 CI 里无人值守跑完
  • 注册与下单用例从 skip 列表里拿掉
  • 预发环境测的是和生产一样的控件
  • 识别超时转为重试,不会直接把构建判红

配合使用

  • Playwright
  • Selenium
  • Cypress
  • Puppeteer
  • WebdriverIO
  • GitHub Actions
  • GitLab CI
  • Jenkins

[ 04 ]关于这一项的常见问题

关于这一项的常见问题

合规。这正是 CI 方案设计时针对的场景,被测系统归你所有或由你运营。建议把 key 的使用范围限制在 CI 执行机上,避免流到别处。

给识别调用设一个截止时间,超时走重试即可。每个题型页都公布了 P50 与 P95,步骤超时按实测数字设定,不用靠猜。

支持,包括谷歌公开的测试 key。把预发页面的 URL 和 DOM 里的 sitekey 原样传过来即可。

可以,只要 runner 能对单个域名做 HTTPS 出站。不需要反向连接,结果可以轮询,也可以回调到你内网的地址。

第一千次识别,我们请。

创建密钥,粘进上面的示例代码,看着真实的 token 返回。不用绑卡,没有销售电话。