3D Pet 下单测试
执行 3D 宠物产品下单完整流程,验证购买路径是否正常。
触发条件
- - 用户说"测试3D宠物"、"测试下单"、"3D Pet test"、"运行工作流"
- cron 定时任务触发
- 手动执行测试
关键配置
| 配置 | 环境变量 | 默认值 |
|---|
| 网站 | - | https://joyarti.com |
| 账号邮箱 |
JOYARTI_EMAIL | (无默认值,请设置) |
| 账号密码 | JOYARTI_PASSWORD | (无默认值,请设置) |
| 测试图片 | JOYARTI
IMAGEURL | (可选) |
| 推送目标 | FEISHU_TARGET | (无默认值,需配置) |
环境变量设置
在运行前设置环境变量(可选,如不设置则使用默认值):
CODEBLOCK0
执行步骤
Step A: 登录
- 1. navigate 到 https://joyarti.com/account/login
- wait 2000ms
- evaluate 填写邮箱密码并点击 Login
- wait 4000ms 等待跳转
- evaluate 验证登录成功(URL 含 /account)
Step B: 选择产品
- 1. evaluate 点击导航 '3D Figure'
- wait 3000ms,验证 URL 含 figmaker
- evaluate 点击 'For Pets' (必须用 BUTTON 元素)
- wait 3000ms
- evaluate 点击 'Minimal Style' 的 Create 按钮 (必须用 BUTTON 元素)
- wait 3000ms,验证 URL 含 style2 且有文件上传框
Step C: 上传图片
- 1. exec 下载图片到 /tmp/openclaw/uploads/pet_image.jpg
- exec 运行 CDP 上传脚本:
CDP_SCRIPT="${WORKSPACE}/cdp_upload.py" # 或从 skill 目录读取
python3 "$CDP_SCRIPT" /tmp/openclaw/uploads/pet_image.jpg joyarti
- 成功输出:
OK: files=1
- 失败输出:
ERR: ...
- 3. wait 3000ms
- evaluate 点击 Create Preview 按钮
Step D: 等待生成
- 1. 禁止用 browser wait 超过 20s
- 用 exec + curl 轮询,每次 sleep 30s:
sleep 30 && curl -s http://127.0.0.1:18800/json/list | python3 -c "
import json,sys
tabs=json.load(sys.stdin)
for t in tabs:
if 'joyarti' in t.get('url','') and 'projectId' in t.get('url',''):
print('DONE:', t['url'])
"
- 3. 检测输出含
DONE: 即生成完成,提取 projectId
Step E: 验证结账
- 1. evaluate 点击 Buy Now
- wait 4000ms
- evaluate 验证跳转到 Shopify(URL 含 myshopify.com 或 checkout)
- evaluate 读取结账关键字段(产品、价格)
- 验证:产品含 'Pet'/'Figure',价格含 '$89.99'
- 必须登出并关闭浏览器
消息规则
每个 Step 开始和完成必须发消息到飞书群:
CODEBLOCK3
- - Step 开始: INLINECODE3
- Step 完成: INLINECODE4
- Step 失败: INLINECODE5
最终报告模板
CODEBLOCK4
注意事项
- 1. 点击必须用 BUTTON:禁止点击 SPAN/DIV 元素,必须用
querySelectorAll('button') 限定 - 上传用 CDP 脚本:
browser.upload() 不触发 React onChange - 生成等待用 exec:禁止 INLINECODE8
- 必须登出关闭浏览器:确保下次测试干净
- 禁止点击 Place order/Pay now:只验证不付款
3D Pet 下单测试
执行3D宠物产品下单完整流程,验证购买路径是否正常。
触发条件
- - 用户说测试3D宠物、测试下单、3D Pet test、运行工作流
- cron定时任务触发
- 手动执行测试
关键配置
| 配置 | 环境变量 | 默认值 |
|---|
| 网站 | - | https://joyarti.com |
| 账号邮箱 |
JOYARTI_EMAIL | (无默认值,请设置) |
| 账号密码 | JOYARTI_PASSWORD | (无默认值,请设置) |
| 测试图片 | JOYARTI
IMAGEURL | (可选) |
| 推送目标 | FEISHU_TARGET | (无默认值,需配置) |
环境变量设置
在运行前设置环境变量(可选,如不设置则使用默认值):
bash
export JOYARTI_EMAIL=your-email@example.com
export JOYARTI_PASSWORD=your-password
export JOYARTIIMAGEURL=https://example.com/image.jpg
export FEISHUTARGET=chat:ocxxxxxxxxxxxxxxxxxx
执行步骤
Step A: 登录
- 1. navigate到https://joyarti.com/account/login
- wait 2000ms
- evaluate填写邮箱密码并点击Login
- wait 4000ms等待跳转
- evaluate验证登录成功(URL含/account)
Step B: 选择产品
- 1. evaluate点击导航3D Figure
- wait 3000ms,验证URL含figmaker
- evaluate点击For Pets (必须用BUTTON元素)
- wait 3000ms
- evaluate点击Minimal Style的Create按钮 (必须用BUTTON元素)
- wait 3000ms,验证URL含style2且有文件上传框
Step C: 上传图片
- 1. exec下载图片到/tmp/openclaw/uploads/pet_image.jpg
- exec运行CDP上传脚本:
bash
CDP
SCRIPT=${WORKSPACE}/cdpupload.py # 或从skill目录读取
python3 $CDP
SCRIPT /tmp/openclaw/uploads/petimage.jpg joyarti
- 成功输出:OK: files=1
- 失败输出:ERR: ...
- 3. wait 3000ms
- evaluate点击Create Preview按钮
Step D: 等待生成
- 1. 禁止用browser wait超过20s
- 用exec + curl轮询,每次sleep 30s:
bash
sleep 30 && curl -s http://127.0.0.1:18800/json/list | python3 -c
import json,sys
tabs=json.load(sys.stdin)
for t in tabs:
if joyarti in t.get(url,) and projectId in t.get(url,):
print(DONE:, t[url])
- 3. 检测输出含DONE:即生成完成,提取projectId
Step E: 验证结账
- 1. evaluate点击Buy Now
- wait 4000ms
- evaluate验证跳转到Shopify(URL含myshopify.com或checkout)
- evaluate读取结账关键字段(产品、价格)
- 验证:产品含Pet/Figure,价格含$89.99
- 必须登出并关闭浏览器
消息规则
每个Step开始和完成必须发消息到飞书群:
javascript
message(action=send, channel=feishu, target=FEISHU_TARGET, message=...)
- - Step开始:⏳ Step X: xxx开始...
- Step完成:✅ Step X: xxx完成 — {关键结果}
- Step失败:❌ Step X: xxx失败 — {原因}
最终报告模板
🧪 3D Pet下单测试报告
时间:{startTime}–{endTime}(约{duration}分钟)
账号: JOYARTI_EMAIL
A: 登录 - {结果}
B: 选择产品 - {结果}
C: 上传图片 - {结果}
D: 3D生成 - {结果}
E: 结账验证 - {结果}
projectId: {projectId}
产品: {product}
价格: {price}
结论:{通过/失败}
注意事项
- 1. 点击必须用BUTTON:禁止点击SPAN/DIV元素,必须用querySelectorAll(button)限定
- 上传用CDP脚本:browser.upload()不触发React onChange
- 生成等待用exec:禁止browser.act kind=wait timeMs>20000
- 必须登出关闭浏览器:确保下次测试干净
- 禁止点击Place order/Pay now:只验证不付款