# 司机端小程序 — miniprogram-automator

## 环境搭建

### 1. 安装微信开发者工具

- [下载地址](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
- 安装后打开**设置 → 安全 → 安全**，开启**服务端口**

### 2. 安装 Node.js 依赖

```bash
cd tests/web/mini_program/automator
npm install
```

### 3. 编译 uni-app 为微信小程序

```bash
# 回到项目根目录（即 uni-app 源码所在目录）
npm run build:mp-weixin
```

### 4. 配置 test_config.yaml

```yaml
mini_program:
  project_path: "E:/path/to/your/uniapp/dist/dev/mp-weixin"  # uni-app 编译产物目录
  dev_tool_path: "C:/Program Files (x86)/Tencent/微信web开发者工具/cli.bat"
```

## 运行

```bash
pytest tests/web/mini_program/ -v -m p0
```

## 原理

```
pytest 用例
  ↓ conftest.py: subprocess
  ↓
node runner.js --action smoke --project-path ...
  ↓ miniprogram-automator API
  ↓
微信开发者工具（开启服务端口）
  ↓
小程序运行
  ↓
返回 JSON { ok, message, screenshot }
  ↓
Python 断言
```

## 可用 actions

| action | 参数 | 说明 |
| :--- | :--- | :--- |
| `smoke` | — | 启动小程序并检查首页 |
| `navigate` | `page=/pages/xxx/xxx` | 导航到指定页面 |
| `element` | `element-action=tap/exists` `selector=.class` | 操作/检查元素 |

## 注意事项

- **登录**：首次在开发者工具中手动登录，后续 `miniprogram-automator` 启动默认复用登录态
- **截图**：输出到 `output/screenshots/mini_program/`
- **CI**：微信开发者工具必须安装在 CI 机器上，且需要 GUI 环境（不能纯 headless）
