python 将 selenium 网络请求输出为 excel

715 阅读2分钟

背景

虽然有许多新的 UI 自动化测试框架涌现。但 Selenium 作为 UI 测试的老牌框架,它依然是自动化测试人员学习清单中必不可少的一项。而随着 Selenium 的流行,许多需求已不能用原生的库满足,于是许多插件库应景而生。

我们能通过 Selenium 操作浏览器页面中的元素,但如果想通过 Selenium 进行页面性能分析,那就需要拿到浏览器操作过程中所有的网络请求信息了。虽然原生 Selenium 也支持部分性能日志记录,但经过实践后发现其仍然有不少缺陷。而 browsermob-proxy 恰好能优雅地解决这个问题。

赏金任务

这个任务是要将现有框架驱动的 UI 测试过程中所有的网络请求记录下来,最后将数据进行整理后输出到 Excel 表格中。

预估赏金:约 1500 人民币。

任务拆解

一般在开始工作前需要将任务进行拆解,划分成数个小任务。而这个任务,基本可以划分为以下三步:

  • 1.学习 browsermob-proxy 的使用;
  • 2.将 browsermob-proxy 与现有测试框架集成;
  • 3.将获得的网络数据输出到 Excel 表格中。

任务回顾

任务实际耗时在 10 个小时左右。

实践过后,发现最消耗时间与精力的其实是第二步。这是因为现有框架的体系已经非常复杂,对于自己没有接触过的模块来说,即使是一次代码小改动也非常有可能创造一场大灾难。所以想要找个合适的位置与方式插入新功能并不是一件轻松的事。

整个任务进行过程中其实也出了不少意外:调试时发现某些情况下获取的网络数据为空、browsermob-proxy 服务启动与创建网络代理间断调用而导致的冲突、某些浏览器版本与 browsermob-proxy 并不兼容等。

所以说编程也如人生一般,成长的道路中总是需要不停地发现问题、解决问题。

但在解决完最后一个问题后,终于可以松口气。总的来说,收获还是挺大的:不仅体验到了二次开发的艰难,也感受到了学习的乐趣。

期待下一个学习任务,也欢迎想要一起学习的小伙伴多多交流。