Selenium selenium 进行 web 的 UI 自动化测试时如何定位发现的问题

满级质量守卫 · 2021年09月08日 · 最后由 jerurry 回复于 2021年09月09日 · 2506 次阅读

跑完一条 case 之后,断言失败,此时单纯依靠截图无法进行精确定位问题所在,圈内有什么比较好的方案么,还望路过的大佬解惑啊。。

共收到 6 条回复 时间 点赞

和楼主想到一块去了,目前想到的一个办法是,通过命令行启动 dumpcap 来抓包 https://www.cnblogs.com/ray-bk/p/11725909.html。用例开始执行时启动抓包,执行失败则保存本次抓包内容,成功则丢弃本次抓包内容。暂时还未实践,不知道效果如何。

毕竟是 UI 自动化 要和接口连起来太多判断了不建议,最好把日志打印出来每一步干什么,然后分析有问题的时候是哪一步出现可问题再结合报告的报错原因。可以把日志也生成一个报告

你这块是排查定位所需数据的聚合方面的问题了,如果前后端本身有日志聚合服务(如 ELK ),记录下时间段,上去取即可。如果没有,只能因地制宜自己想办法弄。

前端到后端的,4 楼已经说了,就不重复了。
后端内部的,做个脚本 ssh 到各个服务器一个个去捞也是一种办法,当然直接聚合到 ELK 是最好的。

本质上还是,作为一个人要从哪些地方定位,那就把那些地方的信息都聚合起来。这样聚合后,自动化或者手工测试,定位问题效率都能提高不少。

大概有三种方式:

  1. driver.page_source 打印网页源码 看一下有没有你需要的内容 这个需要你自己筛洗一下内容
  2. 加一个代理服务器就能实时抓到所有的包, 这个有几个推荐的

    selenium-wire 这个直接套在 selenium 的代码里就能用
    browsermob-proxy 这个也是一个代理
    用代理的问题就是用例执行速度会变慢一些,具体的需要慢慢摸索一下

  3. 最麻烦的一种就是自己去取 network 里的内容 webdriver 目前应该是不支持的, chrome Dev Protocol 里有,这个搞起来需要点时间,没看到什么现成的~

3楼 已删除

感谢答疑,由于我当前所测项目多数问题是后端接口的问题,所有在想有没有办法在 ui 自动化发现问题后,能把出问题的前端操作所调用的后端接口的信息获取到,这样的话开发可以快速定位问题

ui 截图 无法判断问题 。

那加上 log 呢?
那没 log 咋办!
那不得人盯着了,对啊人盯着啊。
那很多 selenium grid 二开的,就是支持每个 case 执行过程录屏啊。 试试呗,有 bug 再把当时执行的 log(selenium log、服务 log 等)和 对应 case 的录屏拿出来看看呗。

好多年前的写的文档了,不知道过时没,你将就下:https://www.yuque.com/miyang.meyoung/automation_web/xg5rhm

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册