背景
虽然有许多新的 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 并不兼容等。
所以说编程也如人生一般,成长的道路中总是需要不停地发现问题、解决问题。
但在解决完最后一个问题后,终于可以松口气。总的来说,收获还是挺大的:不仅体验到了二次开发的艰难,也感受到了学习的乐趣。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理