• #9 楼 @jayfan 测试接口不稳定,啥自动化测试工具都没用。接口超时、或者挂了,影响了后面所有的流程。接口稳定性方面是作为一个基础的保障才能更好的做好前端的 UI 自动化测试。 目前我们跨页面流的测试模式也是有的,对于执行的每一步,都可以自定义等待多少时间才执行下一步。我觉得自动化测试,如果对运行时间不是要求太苛刻的话,稍微每一步 10s 所有的设置都还是可以接受的。

  • #26 楼 @jayfan 支持的哦,已经有 PC 的业务在投入使用中

  • #7 楼 @hbreset
    先说你第二个直接抓屏的问题,这个误报率太高了,特别是像现在 lazyload 的应用那么广泛,图片的加载稍微还没有出来就去截屏 diff 了,这样的情况发生的概率很大。所以不去做图片的像素 diff。

    使用 page diff,海豚有一个 “基线” 的概念,就是用同样的数据跑一次,如果觉得这一次跑出来的结果是符合当前预期的,那么就设置为基线,下次的运行都基于这份基线做 diff。如果最新跑出来的跟基线有 diff,但是又符合新功能的预期的,那么就又可以设置为新的基线,一直循环这样。

    page diff 保存的不是 html 源码,保存的是当前这个页面状态下指定 DOM 下的所有子元素 DOM 以及它的样式,这就是要遍历整个 DOM,并获取到 DOM 元素的样式,然后生成一份 JSON 数据,最后保存的是这份 JSON 数据文件。

  • #22 楼 @jet 后面我抽空单独对录制这块的功能发个帖子说明一下,并贴出来源码

  • #22 楼 @jet 1. 目前运行下来,稳定性没问题; 2. 这是录制出来的脚本,在录制的 selector 这块我已经做了优化,尽量使用 class 和 id,如果匹配到某一级的 class 已经可以唯一定位到这个元素,就截至,所以 selector 已经可以很短的了。

  • #20 楼 @hobbs 是的

  • #4 楼 @chaos1001 看样子不是图片的跨域,是其他的问题。 之前没遇到过

  • #2 楼 @chaos1001 看看 https://github.com/fouber/page-diff 这个开源的工具哈

  • UI 自动化的 case 维护成本是比较高,那么应该思考下如何降低 case 的维护成本了。可以看看 https://testerhome.com/topics/3394 海豚的思路,基于录制,自动生成测试脚本,对于小白用户可以基于录制去完成,对于高级用户可以更深层次的写测试 case。
    现在我们遇到最大的问题,是由于数据上的不稳定性(随机)导致 UI 的变动,使得录制的 pagediff diff 差异比较多。现在过渡的办法是做测试桩,将接口返回的数据固定化,达到 UI 界面的稳定。

  • #18 楼 @taflo "纯 JS 的动作和后台没有交互的话,录制也就无法抓取" 这个不太明白意思。 纯 JS 的动作,结果要体现在 UI 的更新上才能验证。如果不涉及到 UI 的变更,那么可以使用 console.debug 输出 js 执行的信息,这个可以在每次运行的时候去 diff 这个输出的结果,来保证 JS 执行层的差异。