语速
最近我验证了一套行之有效的 AI 开发方法,还不影响现有的工作流。这里总结一下。
为什么选择 VM + Claude Code
- 隔离性:避免污染主系统,可快照回滚
- 可复现:团队成员可以快速复制相同环境
- 适合自动化测试:Playwright 等浏览器自动化工具需要桌面环境
- 安全: 不怎么担心 agent 生成
rm -rf / 命令。虚拟机崩溃不影响虚拟化平台,重新创建一个即可。
环境搭建
1. PVE 创建 Ubuntu Desktop VM
- 下载 Ubuntu Desktop ISO,上传到 PVE 的 ISO 存储
- 创建 VM:
- CPU:host 类型,2-4 核
- 内存:4-8 GB
- 磁盘:VirtIO SCSI,40GB+
- 网卡:VirtIO
- 挂载 ISO,启动安装
- 安装完成后安装 qemu-guest-agent:
1
2
| sudo apt install qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
|
2. 配置 Xfce + xrdp 远程桌面
安装 xrdp 和 Xfce(比 GNOME 更轻量、兼容性更好):
1
2
3
4
5
6
| sudo apt install xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
sudo apt install xfce4 xfce4-goodies
echo xfce4-session > ~/.xsession
|
安装过程中提示选择 display manager,选 lightdm。
解决黑屏问题
编辑 xrdp 启动脚本:
1
| sudo nano /etc/xrdp/startwm.sh
|
在最后两行 test -x 和 exec 之前加上:
1
2
3
| unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
startxfce4
|
重启 xrdp:
1
| sudo systemctl restart xrdp
|
注意:连接前不要在本地登录桌面,否则同用户会黑屏。
调整分辨率/DPI
- Windows 远程桌面连接前,在"显示选项"里调低分辨率(如 1920×1080)
- 或在 Xfce 内:设置管理器 → 外观 → 字体 → 调高 DPI(如 120)
禁用崩溃提示
切换桌面后可能有 GNOME 组件崩溃提示(不影响使用):
1
| sudo systemctl disable apport
|
3. 安装 Claude Code
1
2
3
4
5
6
7
8
9
10
| # 安装 Node.js(如使用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install --lts
# 安装 Claude Code
npm install -g @anthropic-ai/claude-code
# 或使用官方安装脚本
curl -fsSL https://claude.ai/install.sh | bash
|
首次运行 claude 命令,按提示登录认证。
自动化测试工作流:MCP 配置
Playwright MCP
| MCP | 特点 |
|---|
@playwright/mcp (微软官方) | 轻量、基于无障碍树 |
@executeautomation/playwright-mcp-server (社区) | 功能更全、支持截图、JS 执行 |
@agentdeskai/browser-tools-mcp | console 日志监控、Lighthouse 性能分析 |
Claude Code 配置
在项目根目录创建 .mcp.json:
1
2
3
4
5
6
7
8
9
10
11
12
| {
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
},
"browser-tools": {
"command": "npx",
"args": ["-y", "@agentdeskai/browser-tools-mcp"]
}
}
}
|
或用 CLI 添加:
1
| claude mcp add playwright --scope project -- npx -y @executeautomation/playwright-mcp-server
|
OpenCode 配置
如果使用 OpenCode,配置格式不同(opencode.json):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| {
"$schema": "https://opencode.ai/config.json",
"mcp": {
"playwright": {
"type": "local",
"command": ["npx", "-y", "@executeautomation/playwright-mcp-server"],
"enabled": true
},
"browser-tools": {
"type": "local",
"command": ["npx", "-y", "@agentdeskai/browser-tools-mcp"],
"enabled": true
}
}
}
|
配置差异对比:
| 配置项 | Claude Code | OpenCode |
|---|
| 顶层 key | mcpServers | mcp |
| type | 不需要 | 必须(local) |
| command | 字符串 | 数组 |
使用示例
配置好后可以用自然语言驱动测试:
1
2
3
4
5
| claude "打开 localhost:3000,测试登录流程,验证是否跳转到首页"
claude "截图对比 mobile/tablet/desktop 三种尺寸下的首页布局"
claude "检查页面 console 是否有报错"
|
效果展示

总结
VM + Claude Code + Playwright MCP 的组合提供了一个隔离、可复现的自动化开发测试环境。整个流程:
- PVE 创建 Ubuntu Desktop VM
- 配置 Xfce + xrdp 远程访问
- 安装 Claude Code / OpenCode
- 配置 Playwright MCP
- 用自然语言驱动自动化测试