在您需要持久的 Linux 环境进行端到端测试、定期浏览器检查、截图和授权浏览器工作流时,在 VPS 基础设施上部署 Playwright。 VoyraCloud Playwright 应用程序镜像提供 Node.js、Playwright、Chromium 和所需的 Linux 浏览器依赖项。您通过 SSH 连接,添加自己的项目,并在不向公共互联网暴露浏览器控制服务的情况下运行无头 Chromium。
TL;DR
- VoyraCloud Playwright 镜像是一个以 SSH 为主的运行时,而不是托管的浏览器仪表板或公共远程浏览器 API。
- Node.js、Playwright、Chromium 和 Linux 浏览器依赖项已在 Ubuntu 上预安装,因此您可以从提供的示例开始,然后添加自己的项目。
- 该镜像不会打开特定于 Playwright 的公共端口。报告和跟踪保留在 VPS 上,除非您故意传输或提供它们。
- 保持您的项目的 Playwright 包与提供的浏览器二进制文件版本完全一致。版本不匹配可能会阻止 Playwright 找到或启动 Chromium。
- 以非根用户身份运行浏览器作业,并提供 Chromium 沙箱。不要将第三方凭据直接存储在源文件或报告中。
- 起始资源门槛遵循可用的产品计划:Cloud VPS 上 4 vCPU、4 GB RAM 和 80 GB 存储,或 Residential IP VPS 上 2 vCPU、4 GB RAM 和 60 GB 存储,提供 2 GB 共享内存环境用于一个经过验证的 Chromium 会话。这不是固定并发的承诺。
- 项目文件和保存的工件在正常 VPS 重启后保持不变。内存中的浏览器会话、临时上下文和未保存的状态则不会。
Playwright 应用程序镜像包含什么?
Playwright 应用程序镜像包括启动授权自动化工作的浏览器运行时,而您的项目代码和操作实践仍然在您的控制之下。它消除了重复的操作系统准备,但不提供托管的自动化服务。
| 镜像提供的内容 | 用户管理或未包含的内容 |
|---|---|
| Ubuntu Linux 运行时 | 您的应用程序和测试代码 |
| 兼容的 Node.js 环境 | 项目特定的 npm 依赖项 |
| 固定稳定的 Playwright 版本 | 自动 Playwright 升级 |
| 匹配的 Chromium 浏览器二进制文件 | Firefox 或 WebKit,除非您安装并验证它们 |
| 所需的 Linux 浏览器依赖项 | 第三方帐户、cookie、API 密钥或目标凭据 |
| 通过 SSH 执行无头浏览器 | 公共浏览器控制端点或 Web 仪表板 |
| 经过验证的 2 GB 共享内存环境用于起始门槛 | 保证的并行浏览器容量 |
| 持久的 VPS 存储 | 自动离线备份 |
| 提供的示例和健康检查 | VoyraCloud 的自定义脚本开发或调试 |
资源详细信息显示了 VPS 创建时提供的 Playwright 版本。该值描述了原始镜像状态;如果您稍后更新自己的项目,它不会自动更改。保持您的依赖锁定文件和操作笔记作为后续用户管理更改的真实来源。
快速开始:如何在 VPS 上部署 Playwright
最快的路径是创建一个带有 Playwright 镜像的 VPS,通过 SSH 连接,验证提供的运行时,并使用单个工作线程运行一个 Chromium 测试。在配置后没有浏览器仪表板可供打开。
- 打开 VoyraCloud Playwright 页面 并继续购买流程。
- 选择一个符合条件的 Cloud VPS 或 Residential IP VPS 计划,然后选择该产品当前提供的任何区域。
- 确认在镜像部分选择了 Playwright,创建资源,并等待配置完成。
- 打开资源详细信息并使用显示的 SSH 连接信息。
- 登录后,检查提供的 Node.js 和 Playwright 版本:
node --version
npx playwright --version
- 在更改依赖项之前,运行镜像提供的示例。示例应启动 Chromium,打开测试页面,进行断言,并写入截图。
- 仅在提供的健康检查成功后创建或转移您自己的项目。
- 从一个 Chromium 工作线程开始,检查内存和磁盘使用情况,并在测量实际项目后再增加工作负载。
该镜像不需要特定于 Playwright 的访问 URL。SSH 是管理路径,默认情况下未启用永久远程控制端口。
如何在 VPS 上创建 Playwright 项目?
创建一个普通的 Node.js 项目,并将其 Playwright 依赖项固定为提供的运行时所示的确切版本。 Playwright 包和浏览器二进制文件是一起移动的,因此安装不相关的最新包可能会破坏原本健康的镜像。
在您的非根用户拥有的目录中开始:
mkdir -p ~/playwright-project
cd ~/playwright-project
npm init -y
再次检查提供的版本:
npx playwright --version
在项目中安装相同的确切版本。将 <same-version> 替换为上一个命令打印的数字:
npm install --save-dev @playwright/test@<same-version>
创建 homepage.spec.js:
const { test, expect } = require('@playwright/test');
test('example page is reachable', async ({ page }) => {
await page.goto('https://example.com/', {
waitUntil: 'domcontentloaded',
});
await expect(page).toHaveTitle(/Example Domain/);
await page.screenshot({
path: 'artifacts/example-homepage.png',
fullPage: true,
});
});
在 playwright.config.js 中创建一个小配置:
const { defineConfig, devices } = require('@playwright/test');
module.exports = defineConfig({
testDir: '.',
outputDir: 'test-results',
workers: 1,
reporter: [['list'], ['html', { open: 'never' }]],
use: {
trace: 'retain-on-failure',
screenshot: 'only-on-failure',
...devices['Desktop Chrome'],
},
projects: [
{
name: 'chromium',
use: { browserName: 'chromium' },
},
],
});
创建截图目录并运行测试:
mkdir -p artifacts
npx playwright test homepage.spec.js --project=chromium --workers=1
此示例故意使用一个 Chromium 工作线程和一个中立的公共示例页面。仅用您拥有、运营或被授权测试的网站替换 URL。该镜像不授予自动化第三方服务的权限。
无头 VPS 上的报告和跟踪如何工作?
Playwright 报告和跟踪是由您的项目生成的文件,因此它们可以保存在 VPS 上并在不打开永久公共服务的情况下进行审查。当测试仅在服务器环境中失败时,它们尤其有用。
示例配置写入:
- 来自
list报告器的终端结果。 - 在
playwright-report/下的 HTML 报告。 - 在
test-results/下的测试附件和失败输出。 - 由于
trace设置为retain-on-failure,因此失败测试的跟踪。 - 在配置的工件位置下的截图。
要安全查看 HTML 报告,请在回环接口上启动其临时服务器:
npx playwright show-report --host 127.0.0.1 --port 9323
在您自己的计算机上,使用资源详细信息中的连接值创建 SSH 隧道:
ssh -L 9323:127.0.0.1:9323 <ssh-user>@<server-ip>
然后在您的本地计算机上打开 http://127.0.0.1:9323。完成后停止报告进程。不要将报告查看器绑定到 0.0.0.0 或直接暴露给互联网;报告可能包含页面文本、URL、截图、头信息、错误消息和其他敏感测试证据。
对于保存的跟踪,请使用 Playwright 的跟踪查看器:
npx playwright show-trace test-results/<trace-file>.zip
如果查看器启动本地 HTTP 进程,请使用相同的回环和 SSH 隧道模型。您还可以将跟踪转移到受信任的工作站,并使用官方工具进行检查。将跟踪档案视为潜在敏感,因为它们可能包含 DOM 快照、网络信息和截图。
为什么 Playwright 和 Chromium 版本必须匹配?
Playwright 期望为其自身版本构建的浏览器二进制文件,因此包和提供的 Chromium 修订版必须保持一致。官方 Playwright 文档建议固定确切版本,并警告说不匹配的环境可能无法找到浏览器可执行文件。
| 更改 | 安全方法 | 应避免的风险 |
|---|---|---|
| 将 Playwright 添加到新项目 | 安装提供的确切版本 | 安装不相关的最新版本 |
| 更新 Playwright 包 | 在同一维护窗口中更新浏览器二进制文件 | 仅更新 npm 依赖项 |
| 更改 Node.js | 确认目标 Playwright 版本支持它 | 在未测试的情况下升级 Node.js |
| 添加 Firefox 或 WebKit | 安装并验证匹配的浏览器和依赖项 | 假设每个浏览器都已预安装 |
| 重建锁定文件 | 检查解析的 Playwright 版本 | 让广泛的 semver 范围漂移 |
| 回滚 | 一起恢复包锁定、浏览器二进制文件和项目 | 仅回滚一层 |
在更新之前,记录工作版本:
node --version
npx playwright --version
npm ls @playwright/test
然后备份您的项目和锁定文件。遵循 官方 Playwright 更新程序,该程序同时更新包和浏览器依赖项。在更改后运行提供的健康检查模式和您自己的冒烟测试。VoyraCloud 不会自动升级现有的 Playwright 环境,也不保证用户管理组合的兼容性。
Playwright 应该如何安全运行?
Playwright 应该作为一个专用的非根用户运行,提供 Chromium 沙箱、最小凭据,并且没有不必要的公共监听器。浏览器处理从其打开的页面中获取的复杂内容,因此它不应获得超过工作负载所需的主机权限。
使用以下操作规则:
- 以非根帐户运行项目命令。不要使用
sudo npx playwright test。 - 保持 Chromium 沙箱启用,而不是依赖于禁用它的根执行。
- 将机密存储在受限的环境文件或秘密管理器中,而不是在测试源、截图、报告或 shell 历史中。
- 将目标域限制为您拥有或有权限测试的系统。
- 在 CAPTCHA、访问控制挑战、帐户警告、支付门或重复授权失败时停止。
- 使用强身份验证和当前操作系统安全更新保护 SSH 访问。
- 不要将 HTML 报告、跟踪查看器、调试端点或自定义浏览器服务器暴露给公共互联网。
- 在共享之前审查生成的工件,因为页面内容和测试数据可能出现在截图和跟踪中。
官方 Playwright Docker 指导 也做出了相同的权限区分:在受限环境中,根用户可能适用于受信任的端到端测试代码,而在浏览器内容不完全受信任时,建议使用单独的用户和沙箱控制。VoyraCloud 镜像使用以 SSH 为主的本地运行时;如果您稍后将项目放入容器中,您必须自己配置该容器的用户、沙箱、初始化进程和共享内存。
2 GB 共享内存要求意味着什么?
2 GB 共享内存要求为 Chromium 提供了一个经过验证的起始工作负载的空间,但并不保证特定数量的并行页面或浏览器。Chromium 使用共享内存进行渲染进程,空间不足可能导致崩溃,看起来像随机测试失败。
检查可用的共享内存文件系统:
df -h /dev/shm
VoyraCloud 镜像接受门验证了在起始配置下的一个无头 Chromium 会话,提供 2 GB 共享内存环境。您的实际需求取决于页面复杂性、视频和跟踪捕获、浏览器上下文、扩展、下载、测试数据以及同时工作的数量。
如果您稍后创建自己的 Docker 部署,主机设置不会自动保证新容器获得相同的配额。根据 官方 Chromium 指导 Playwright 配置容器,然后独立测试。
Playwright 需要多少 VPS 容量?
Playwright 的容量取决于浏览器数量、页面复杂性、工件和并发,因此最小值仅是狭窄工作负载的经过验证的入口门槛。初始购买门槛为 Cloud VPS 上的 4 vCPU、4 GB RAM 和 80 GB 存储,或 Residential IP VPS 上的 2 vCPU、4 GB RAM 和 60 GB 存储,前提是相应的计划通过区域接受测试。
| 工作负载 | 容量指导 |
|---|---|
| 一个计划的 Chromium 冒烟测试 | 适合入口门槛的起始案例 |
| 一个小型串行端到端套件 | 从一个工作线程开始并进行测量 |
| 截图密集型测试 | 监控磁盘增长和内存使用 |
| 视频和跟踪保留 | 计划额外存储和清理 |
| 多个并行工作线程 | 需要工作负载特定的测试,可能需要更多资源 |
| 多个浏览器或大型页面 | 需要工作负载特定的测试 |
| 长时间运行的自动化服务 | 添加监督、日志记录、监控和测量容量 |
Playwright Test 可以并行运行文件,但默认工作线程数并不是容量承诺。从 --workers=1 开始,观察 CPU、内存、共享内存、测试持续时间和磁盘使用情况,然后逐渐增加。在启用并行项目、视频或大规模跟踪保留之前,可能需要更大的计划。
重启后会保留什么?
写入持久 VPS 存储的文件在正常重启后保持不变,而内存中的活动浏览器状态则不会。在重启服务器之前保存每个重要的工件或状态文件。
持久文件可以包括:
- 您的 Node.js 项目和锁定文件。
- Playwright 配置和测试源。
- 截图、视频、HTML 报告和跟踪档案。
- 故意保存的存储状态文件。
- 您自己的日志和进程配置。
不要期望重启能保留:
- 正在运行的 Chromium 进程。
- 打开的页面或内存中的浏览器上下文。
- 未保存的 cookie、本地存储或 JavaScript 状态。
- 您的项目在持久路径外删除或写入的临时文件。
- 没有进程监督和重启处理的正在运行的作业。
持久性不是备份。如果报告、项目或状态文件对业务重要,请将其复制到具有适当加密和保留的离线服务器目的地。除非需要、受到保护并遵循明确的轮换政策,否则请避免备份身份验证状态。
Playwright 选择 Cloud VPS 还是 Residential IP VPS?
Cloud VPS 是一般 Playwright 开发、QA 和授权自动化的主要选择,而 Residential IP VPS 仅在稳定的住宅网络来源是合法测试要求的一部分时才相关。
使用 Cloud VPS 进行:
- 针对您拥有的应用程序的端到端测试。
- 定期生产冒烟检查。
- 内部浏览器工作流。
- 截图生成和回归测试。
- 数据中心网络身份可接受的自动化。
Residential IP VPS 可能与需要在运行期间保持相同稳定住宅网络身份的区域 QA 或监控相关。它并不是绕过反自动化控制、解决 CAPTCHA、保护帐户或到达每个目标的承诺。有关网络相关故障的更深入讨论,请阅读 为什么 Playwright 在 VPS 上被阻止。
预生产检查清单
只有在运行时、安全性、资源行为、工件和恢复路径经过您自己的项目测试后,Playwright VPS 才能准备好常规使用。
- 确认
node --version和npx playwright --version。 - 在不修改环境的情况下运行提供的 Chromium 健康检查。
- 在您的项目锁定文件中固定相同的 Playwright 版本。
- 以非根用户身份运行并确认 Chromium 启动时启用了沙箱。
- 从一个 Chromium 工作线程开始并验证 2 GB 共享内存环境。
- 保存截图、HTML 报告和失败跟踪。
- 通过回环监听器和 SSH 隧道查看报告。
- 重启 VPS 并重新运行冒烟测试。
- 确认所需的项目文件和工件保持不变。
- 为业务关键代码和数据配置离线备份。
- 保护凭据并在共享之前从报告中删除机密。
- 记录允许的目标、速率限制和停止条件。
常见问题
Playwright 镜像包括 Web 仪表板吗?
不,Playwright 镜像不包括 Web 仪表板或公共浏览器控制端点。您通过 SSH 连接并运行自己的 Node.js 或 Playwright Test 项目。临时报告查看器应绑定到 127.0.0.1 并通过 SSH 隧道访问。
包含哪个浏览器?
该镜像包括与提供的稳定 Playwright 版本匹配的 Chromium。 Firefox 和 WebKit 不属于声明的默认交付。您可以自行安装其他匹配的浏览器,但必须验证它们的依赖项和资源使用。
我可以用 npm 更新 Playwright 吗?
可以,但请同时更新 Playwright 包及其浏览器二进制文件,然后重新测试环境。首先保存工作版本和锁定文件。现有的 VoyraCloud 资源在创建后不会自动升级。
这个 VPS 可以运行多少个 Playwright 工作线程?
没有固定的工作线程或并发保证。起始门槛在 Cloud VPS 上验证一个具有 2 GB 共享内存的 Chromium 会话,配置为 4 vCPU、4 GB RAM 和 80 GB 存储,或在 Residential IP VPS 上配置为 2 vCPU、4 GB RAM 和 60 GB 存储。并行容量取决于您的页面、工件、代码和运行时行为。
重启后报告和跟踪可用吗?
保存的报告和跟踪文件在写入 VPS 存储时保持不变,但活动会话和未保存的状态则不会。持久性也不替代离线备份。
我应该以根用户身份运行 Playwright 吗?
不,请使用非根用户进行正常浏览器作业,并保持 Chromium 沙箱可用。根执行增加了浏览器或测试代码被破坏的影响,并可能在常见配置中禁用 Chromium 沙箱。
该镜像包括代理、cookie 或网站帐户吗?
不,该镜像不包括代理服务、cookie、API 密钥、网站帐户或第三方凭据。您负责机密、权限、目标政策和适用法律。
Playwright 可以绕过 CAPTCHA 或反机器人控制吗?
没有这样的能力或结果被包含或承诺。 CAPTCHA、访问限制或重复授权失败应停止工作流程以进行审查。在可用时使用官方 API 或书面授权。
结论
要可靠地在 VPS 上部署 Playwright,请从预安装的运行时开始,将您的项目固定到提供的 Playwright 版本,运行一个沙箱化的 Chromium 工作线程,并仅保留您有意保存的文件。 VoyraCloud 镜像缩短了环境设置时间,同时保持 SSH 访问、项目代码、凭据、更新、容量规划和备份在您的控制之下。
使用 VoyraCloud Playwright 应用程序镜像 作为以 SSH 为主的浏览器自动化运行时,默认情况下未启用特定于 Playwright 的公共端口。

