Skip to content
Back to skills

3d Pet Checkout Test

CSecurity

执行 3D Pet 宠物下单测试完整流程,包含登录、选择产品、上传图片、等待生成、验证结账。用于自动化测试 joyarti 3D 宠物产品购买流程。

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 9, 2026
developmentjavascriptpythonjavabashreact

Security analysis

C71/100
  • mediumUses curl or wget to download content
  • criticalDownloads and executes remote scripts — classic supply chain attack

Pro shows the line behind each finding and how to fix it

Scanned September 9, 2026

npx -y skills add Lord1Egypt/awesome-skill-forge --skill 3d-pet-checkout-test --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 3d Pet Checkout Test?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 3d Pet Checkout Test
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/lord1egypt-3d-pet-checkout-test/badge)](https://www.skillsdirectory.com/skills/lord1egypt-3d-pet-checkout-test)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 3d-pet-checkout-test
description: 执行 3D Pet 宠物下单测试完整流程,包含登录、选择产品、上传图片、等待生成、验证结账。用于自动化测试 joyarti 3D 宠物产品购买流程。
---

# 3D Pet 下单测试

执行 3D 宠物产品下单完整流程,验证购买路径是否正常。

## 触发条件

- 用户说"测试3D宠物"、"测试下单"、"3D Pet test"、"运行工作流"
- cron 定时任务触发
- 手动执行测试

## 关键配置

| 配置 | 环境变量 | 默认值 |
|------|----------|--------|
| 网站 | - | https://joyarti.com |
| 账号邮箱 | JOYARTI_EMAIL | (无默认值,请设置) |
| 账号密码 | JOYARTI_PASSWORD | (无默认值,请设置) |
| 测试图片 | JOYARTI_IMAGE_URL | (可选) |
| 推送目标 | FEISHU_TARGET | (无默认值,需配置) |

## 环境变量设置

在运行前设置环境变量(可选,如不设置则使用默认值):

```bash
export JOYARTI_EMAIL="your-email@example.com"
export JOYARTI_PASSWORD="your-password"
export JOYARTI_IMAGE_URL="https://example.com/image.jpg"
export FEISHU_TARGET="chat:oc_xxxxxxxxxxxxxxxxxx"
```

## 执行步骤

### Step A: 登录
1. navigate 到 https://joyarti.com/account/login
2. wait 2000ms
3. evaluate 填写邮箱密码并点击 Login
4. wait 4000ms 等待跳转
5. evaluate 验证登录成功(URL 含 /account)

### Step B: 选择产品
1. evaluate 点击导航 '3D Figure'
2. wait 3000ms,验证 URL 含 figmaker
3. evaluate 点击 'For Pets' **(必须用 BUTTON 元素)**
4. wait 3000ms
5. evaluate 点击 'Minimal Style' 的 Create 按钮 **(必须用 BUTTON 元素)**
6. wait 3000ms,验证 URL 含 style2 且有文件上传框

### Step C: 上传图片
1. exec 下载图片到 /tmp/openclaw/uploads/pet_image.jpg
2. exec 运行 CDP 上传脚本:
   ```bash
   CDP_SCRIPT="${WORKSPACE}/cdp_upload.py"  # 或从 skill 目录读取
   python3 "$CDP_SCRIPT" /tmp/openclaw/uploads/pet_image.jpg joyarti
   ```
   - 成功输出:`OK: files=1`
   - 失败输出:`ERR: ...`
3. wait 3000ms
4. evaluate 点击 Create Preview 按钮

### Step D: 等待生成
1. **禁止用 browser wait 超过 20s**
2. 用 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
2. wait 4000ms
3. evaluate 验证跳转到 Shopify(URL 含 myshopify.com 或 checkout)
4. evaluate 读取结账关键字段(产品、价格)
5. 验证:产品含 'Pet'/'Figure',价格含 '$89.99'
6. **必须登出并关闭浏览器**

## 消息规则

每个 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')` 限定
2. **上传用 CDP 脚本**:`browser.upload()` 不触发 React onChange
3. **生成等待用 exec**:禁止 `browser.act kind=wait timeMs>20000`
4. **必须登出关闭浏览器**:确保下次测试干净
5. **禁止点击 Place order/Pay now**:只验证不付款

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…