# 录制回放

开发者可以将测试操作提前录制好，然后通过执行录制脚本来实现测试过程的回放。

## 运行环境要求
- 下载并安装 `1.05.2110202` 或以上版本的开发者工具，[下载地址](../log#nightly)
- 基础库版本为 `2.19.6` 及以上

## 使用流程

### 1. 工具 -> 自动化测试
![入口](https://res8.wxqcloud.qq.com.cn/wxdoc/fe8f9b67-84a7-4303-a0fc-e3719a56544e.png)


### 2. 新建用例并开始录制
![开始录制](https://res8.wxqcloud.qq.com.cn/wxdoc/c81a4e89-0daf-4b9b-8932-a8aaf9cedc90.png)
新建会弹出一个新建弹窗
1. 允许修改用例名
2. 选择是否开始 mock
3. 修改录制时的最大等待时间。最长等待时间是指录制时两个步骤之间的最大等待时间，如果设置为 3 秒，那就算两个操作间隔超过 3s，记录的 waitfor 的值也会是 3s。默认值为 10s。
4. 若有每次编译随机生成的 classname，会影响回放成功率，可自行配置规则忽略这些随机生成的 classname。
5. 若需要模拟新应用的情况，可配置清除缓存
![录制弹窗](https://res8.wxqcloud.qq.com.cn/wxdoc/4a78ae2d-5f9b-4130-9c86-b603c5b7895f.png)
开始录制后，正常点击小程序元素可进行录制，录制结束后可以再微调等待时间等
![用例详情](https://res8.wxqcloud.qq.com.cn/wxdoc/544b2050-34f0-4d76-a97f-13094ab086ab.png)  

###  3.  cgi mock
支持 mock wx.request/wx.cloud.callFunction 等接口。
注：云开发相关的接口支持的最低工具版本是`1.06.2206242`
![mock](https://res8.wxqcloud.qq.com.cn/wxdoc/bbb55a2d-89b4-454d-a7ad-23f23c8aaa70.png)

### 4. 断言/检查
录制时可以记录 data 快照/wxml 快照，用于回放时匹配校验
或者选择检查元素，断言元素存在/innertext是否相等
![断言](https://res8.wxqcloud.qq.com.cn/wxdoc/b5bf5b8c-d290-4548-b737-42f64903b1ed.png)

#### 4.1 data 快照
点击`data快照`，会记录当前`page.data`数据，回放时走到该步骤，再获取一次`page.data`进行匹配。
默认是 data 全匹配。
在 1.06.2206242 版本后支持选择部分 key 进行匹配
![选择字段](https://res8.wxqcloud.qq.com.cn/wxdoc/ab36797b-582d-45a7-850a-ed60d885273b.png)
![回放提示](https://res8.wxqcloud.qq.com.cn/wxdoc/1efe9145-4169-47f0-9cc4-ca0d1c9c9f2b.png)

#### 4.2 wxml 快照
同 data 快照，只是记录的是 wxml 字符串

#### 4.3 检查元素
选择检查元素，icon 会高亮，此时可以选择小程序的某个元素，点击不会触发绑定事件
![检查元素](https://res8.wxqcloud.qq.com.cn/wxdoc/3284351a-bb5e-4be1-8f6b-717b70799f59.png)
默认是检查元素是否存在，录制结束后可以手动打开检查text的开关
![检查text](https://res8.wxqcloud.qq.com.cn/wxdoc/d297f4f4-79a5-43a5-bb51-94cae6e3a5c3.png)

#### 4.4 截屏（工具最低可用版本 1.06.2206090）
点击截屏后会把截屏结果以 base64 格式存储到测试用例中
![截屏](https://res8.wxqcloud.qq.com.cn/wxdoc/9e521fd7-01af-4637-8701-ec6270b05e35.png)
回放时会显示录制时的截屏图像以及当前回放的截屏图像
![截屏结果](https://res8.wxqcloud.qq.com.cn/wxdoc/5029bbe4-4c46-42e5-9f11-ed66635a2160.png)

### 5. 重新录制
![重新录制](https://res8.wxqcloud.qq.com.cn/wxdoc/2ce2cfd0-3e7c-4547-bd5a-5f6b9bc6052b.png)
注意，重新录制会覆盖之前录制的用例步骤

### 6. 回放
点击回放可进行回放操作，失败会标注失败原因。
另外，支持扫码后在真机回放用例。
![回放](https://res8.wxqcloud.qq.com.cn/wxdoc/1c8b4260-53ea-40da-a39c-0b0931e3485c.png)


### 7. 回放全部
选择回放全部，会生成一个简易测试报告，并保存到本地
![回放报告](https://res8.wxqcloud.qq.com.cn/wxdoc/12287e42-3cb8-4496-89f2-cf8a99df530d.png)

也可选择使用工具命令行回放，详细使用指引见[命令行调用](record_cli)
```bash
# 打开自动化测试窗口
cli auto-replay --project /Users/username/demo
# 打开自动化测试窗口并回放全部测试用例
cli auto-replay --project /Users/username/demo --replay-all
```

### 8. 回放配置
工具版本 `1.06.2211012` 以上允许配置回放时截图
![](https://res8.wxqcloud.qq.com.cn/wxdoc/87d627ff-2007-4873-abd5-3e5b9d934ec5.png)
如果配置失败时截图，则图片内容以 base64 存放在回放结果文件中

如果配置每个步骤都截图，则图片保存在和回放结果文件的同名文件夹中
![](https://res8.wxqcloud.qq.com.cn/wxdoc/8aa59f1d-2812-49a8-adf1-733a971996ff.png)

### 9. 小程序云测回放

本地回放时，是基于开发者工具本地代码版本。如果开发者希望在其他小程序版本测试（如回归测试中在体验版对多个用例进行回放），可以尝试使用 [小程序云测](/miniprogram/dev/devtools/minitest/)

[小程序云测](/miniprogram/dev/devtools/minitest/) 支持将录制好的用例，在开发中版本，体验版，线上版进行回放，支持定时任务/API任务，并生成详细的测试报告。详细使用文档可参考 [在云测服务中使用录制回放](/miniprogram/dev/devtools/minitest/replay)

## 其他

### 企业微信小程序支持
工具版本 `1.06.2209152` 以上支持企业微信小程序进行录制回放自动化测试
切换到企业微信小程序模式，然后企业微信基础库选择2.20.3，即可和普通小程序一样使用录制回放功能
![企业微信小程序模式](https://res8.wxqcloud.qq.com.cn/wxdoc/41e7b3ce-f852-4e58-9e7f-2b14a54596bf.png)

### 点击头像，可切换测试账号
![测试账号](https://res8.wxqcloud.qq.com.cn/wxdoc/af762869-f559-4ffe-a8b0-de6d3f539a7a.png)

### 配置文件说明

测试保存目录默认在`minitest/`,可在`project.config.json`修改
```
"testRoot": "minitest/", 
```
