# 录制回放测试常见问题

## 特别说明：

用户录制时，是基于**本地开发者工具打开的小程序源码**录制，在同步用例到云测时，**仅同步用例，不同步本地代码**

云测回放时，是基于小程序在**真机上的版本**，如线上版，体验版，[开发中版本](preview_test)。 

所以需要开发者**确认录制和回放的代码**是否一致。很多错误均是由于录制和回放的版本不一致导致，如回放时提示找不到元素，或元素不存在

![](https://res.wx.qq.com/wxdoc/dist/assets/img/img_element_not_found.6546ef70.png)

## 录制回放任务错误一般排查流程

1. 展开错误步骤，观察操作前后截图是否符合预期

2. 若**操作前**截图不符合预期，则回溯前面的步骤排查

   - Q：为什么前面步骤没有发现问题？

     A：有几种可能的情况：
     - 前面的一些操作并没有进行**断言**，所以没有报失败
     - 前面步骤设置了**回放时忽略失败**，就算回放失败了，因为设置忽略所以继续往下执行
     - 前置步骤没有进行元素操作，或者元素路径不唯一导致**找错元素**，但操作仍然正常

3. 若**操作后**截图不符合预期   

   a. 如果当前步骤会引起页面跳转，确认页面是否有跳转。如果没有，大概率是因为元素**不可点击**，考虑有**蒙层**或**找错了元素**。

   b. 如果步骤不会引起页面跳转，只是单纯**没有响应**，可下载**页面wxml**，查找对应的元素是否符合预期。

4. 截图中看不出什么问题

   可以下载**页面wxml**，对比**录制脚本时的小程序版本**，看相同的页面路径对应的结构是否有改变。造成**页面结构不一致**的原因主要是前面提到的版本不一致，例如：

   - 云测上运行的是 `上传`/`预览` 过的小程序版本，用户有可能上传小程序后，又在本地进行了代码**修改**/**更新**后才进行脚本的录制，此时**跑测版本**和**录制版本**就会不一致，容易出现**页面结构不一致**的情况

   - 云测上可以支持 `线上版`、`体验版`、`开发中版本`，这些版本大概率代码都是有一定**版本差异**的，如果录制的时候用的是`开发分支`，但跑测时又选择的`线上版本`也容易导致**页面结构不一致**

## 录制回放元素找不到问题

> 录制回放任务跑测时，常出现元素找不到问题
> 
> ``` raise MiniElementNotFoundError("element[%s] not found" % xpath)```

针对以上情况，可从以下几方面着手解决
- 小程序版本不一致。可在失败的步骤中，下载**页面wxml**，在开发工具中打开，对比**录制脚本时的小程序版本**，看相同的页面路径对应的结构是否有改变。_具体可参考上述排查流程第4点_
- 小程序在不同环境表现不一致。录制回放任务是IDE录制脚本，真机回放脚本，需确认**真机与IDE的表现**是否一致，例如ide小程序页面元素多了一层元素，而真机没有
- 缓存问题。确认录制前有没有**清缓存**，有没有授权未点到等。云测上真机回放会重新安装登录微信拉起小程序，而缓存在**开发者工具本地的登陆状态等数据无法同步到跑测真机上**，如果不清除缓存再进行用例的录制，可能导致回放失败，致使元素找不到，***建议录制前清缓存***

  ![](https://res8.wxqcloud.qq.com.cn/wxdoc/d05ff05a-3f3c-43e5-9848-f664e3602dd9.png)

## 录制回放报AssertionError

> 录制脚本过程中用户**主动添加** / MiniTest框架会根据操作前后页面变化加入 ```assert``` 语句进行断言

针对此类错误，排查步骤如下所示
- 按照一般排查流程进行。_具体可参考上述排查流程_
- 如果是**主动添加**的断言，根据断言内容排查。
- 如果断言内容与页面元素相关，可结合**截图**和**页面wxml**排查元素是否真的不存在。特别需要关注**小程序代码版本**问题。
  > 例如，出现过一个脚本, 截图看不出问题，但因为页面结构变化导致按照录制内容查找到的元素不符合预期
- 如果某个操作会导致页面跳转，MiniTest框架也会自动添加断言判断页面是否正确跳转。排查确认页面是否按照**预期跳转**了即可，如果没有跳转，考虑**元素操作失败**。
  > 例如，**不可操作**/**有授权窗口挡住了**/**页面结构变化**导致找错元素了等

[查看云测相关问答 >](https://developers.weixin.qq.com/community/minihome/mixflow/2315318279491616771)

[到微信开放社区提问 >](https://developers.weixin.qq.com/community/blog/create/1?blocktype=1&minihome=2315318279491616771&questionCategory=32768)
