稳定的 Playwright 代理测试,不只是把代理地址填进配置。网络身份、浏览器状态、超时、重试与诊断必须一起设计。本指南适用于经授权的本地化检查、广告验证、跨区域质量测试和公开网页测试,不适用于绕过访问控制。

通过受监控区域代理网关连接的隔离 Playwright 浏览器上下文

先确定代理作用范围

Playwright 可以在启动浏览器时配置代理,也可以在创建 BrowserContext 时配置代理。若同一浏览器进程中的全部任务共享一个网关,可使用启动级配置;若测试矩阵需要分别使用不同区域、凭据或会话策略,应使用上下文级配置。

建议把一个 BrowserContext 视为一个逻辑网络身份。上下文会隔离 Cookie、缓存和存储,适合作为代理会话的边界。创建上下文后完成一个业务场景,记录结果并及时关闭。不要让购物车、登录状态或地区偏好尚未完成时突然更换身份。

凭据不要写进代码

import { chromium } from 'playwright';

const browser = await chromium.launch();
const context = await browser.newContext({
  proxy: {
    server: process.env.PROXY_SERVER,
    username: process.env.PROXY_USERNAME,
    password: process.env.PROXY_PASSWORD
  }
});

const page = await context.newPage();
await page.goto(process.env.TARGET_URL, {
  waitUntil: 'domcontentloaded',
  timeout: 30000
});

await context.close();
await browser.close();

代理端点和凭据应通过密钥管理系统或受保护的环境变量注入。日志中禁止输出完整用户名、密码或会话令牌;只保留不含秘密的配置名、区域、产品类型和不可逆的会话短哈希。

建立可比较的区域矩阵

把区域、代理产品、预期语言、会话策略和并发上限定义为数据。北美、欧洲和亚太应使用相同的授权目标、步骤与断言,避免把测试脚本差异误判成网络差异。

每次运行至少验证:出口区域是否符合预期、页面语言和货币是否正确、关键资源是否完整、登录或购物车会话是否连续,以及最终业务步骤是否成功。HTTP 返回成功并不等于结果可用。

使用分层超时

不要用一个很大的超时覆盖全部步骤。可以先以导航 30 秒、操作 10 秒、断言 5 秒作为起点,再根据真实 p95 延迟调整。区域链路较慢时可放宽导航预算,但不应让缺失元素无限等待。

现代页面可能持续存在分析、客服或流式连接,因此不宜机械等待所有网络活动停止。更可靠的完成条件是 DOM 已就绪,再通过与业务目标相关的元素、数据或状态进行断言。

只重试明确的瞬时故障

测试级重试会在新的工作进程中重新建立浏览器和应用状态,适合极少数真实的基础设施抖动。单次导航如需重试,应只针对已分类的连接错误或有限的服务器响应,设置次数上限、指数退避和随机抖动,并记录每次尝试。

代理鉴权错误、稳定复现的断言失败和策略拦截,不应盲目重试。无限重试既掩盖根因,也会给目标站点带来额外负载。

常见故障排查

  • 407 代理鉴权失败:检查端点格式、凭据范围、账号状态以及所选产品是否支持账密鉴权。
  • DNS 或连接超时:对比直连与代理解析,核对网关主机和端口,并先用单区域、低并发复现。
  • TLS 错误:检查系统时间、证书检查策略和目标主机名;不要把关闭证书校验当成常规解决方案。
  • 429:降低并发,遵守重试提示,并核对允许的访问速率。
  • 403 或挑战页:确认授权、条款与预期浏览器行为,禁止尝试规避访问控制。
  • 页面可打开但地区错误:同时核对出口区域、浏览器语言、时区、语言请求头、Cookie 和账号偏好。

让失败可以被解释

每次运行应记录测试名、时间、区域、代理产品、上下文编号、导航耗时、最终状态、重试次数和断言结果。失败时保存已脱敏的截图与 Playwright Trace。Trace 能帮助区分连接前延迟、重定向、接口依赖或断言阶段的问题。

核心指标应包括可用结果率、p50/p95 延迟、挑战率、重试率和每个可用结果的成本。只有页面状态、地区和业务完成都正确,才算一次成功。

上线前检查清单

  • 每个逻辑身份使用独立 BrowserContext。
  • 凭据只放在受保护的运行时秘密中。
  • 分别设置导航、操作和断言超时。
  • 按区域与目标限制并发。
  • 仅对已分类瞬时故障做有限重试。
  • 对日志、截图和 Trace 脱敏。
  • 验证地区、会话连续性和业务完成。
  • 只测试已获授权的目标与数据。

选择合适的 98IP 会话模式

需要切换网络身份的区域测试,可评估 98IP 动态住宅代理;需要较长时间保持身份的工作流,可比较 98IP 静态住宅代理。建议从低并发开始,以可用结果为准逐步放量。

98IP 提供上述代理服务,本文由 98IP 团队发布。请遵守适用法律、目标条款和速率限制,不得使用自动化绕过访问控制。

资料说明

本文技术行为核对了 Playwright 的 Network、BrowserContext、Timeouts 与 Retries 官方文档,查阅日期为 2026 年 8 月 16 日。根据 98IP 零外链规则,仅以纯文本记录资料名称和日期。