# 录制回放测试常见问题

# 特别说明:

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

云测回放时,是基于小程序在真机上的版本,如线上版,体验版,开发中版本

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

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

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

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

    • Q:为什么前面步骤没有发现问题?

      A:有几种可能的情况:

      • 前面的一些操作并没有进行断言,所以没有报失败
      • 前面步骤设置了回放时忽略失败,就算回放失败了,因为设置忽略所以继续往下执行
      • 前置步骤没有进行元素操作,或者元素路径不唯一导致找错元素,但操作仍然正常
  3. 操作后截图不符合预期

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

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

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

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

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

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

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

录制回放任务跑测时,常出现元素找不到问题

raise MiniElementNotFoundError("element[%s] not found" % xpath)

针对以上情况,可从以下几方面着手解决

  • 小程序版本不一致。可在失败的步骤中,下载页面wxml,在开发工具中打开,对比录制脚本时的小程序版本,看相同的页面路径对应的结构是否有改变。具体可参考上述排查流程第4点

  • 小程序在不同环境表现不一致。录制回放任务是IDE录制脚本,真机回放脚本,需确认真机与IDE的表现是否一致,例如ide小程序页面元素多了一层元素,而真机没有

  • 缓存问题。确认录制前有没有清缓存,有没有授权未点到等。云测上真机回放会重新安装登录微信拉起小程序,而缓存在开发者工具本地的登陆状态等数据无法同步到跑测真机上,如果不清除缓存再进行用例的录制,可能导致回放失败,致使元素找不到,建议录制前清缓存

# 录制回放报AssertionError

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

针对此类错误,排查步骤如下所示

  • 按照一般排查流程进行。具体可参考上述排查流程
  • 如果是主动添加的断言,根据断言内容排查。
  • 如果断言内容与页面元素相关,可结合截图页面wxml排查元素是否真的不存在。特别需要关注小程序代码版本问题。

    例如,出现过一个脚本, 截图看不出问题,但因为页面结构变化导致按照录制内容查找到的元素不符合预期

  • 如果某个操作会导致页面跳转,MiniTest框架也会自动添加断言判断页面是否正确跳转。排查确认页面是否按照预期跳转了即可,如果没有跳转,考虑元素操作失败

    例如,不可操作/有授权窗口挡住了/页面结构变化导致找错元素了等


查看云测相关问答 >
到微信开放社区提问 >