关于selenium是怎么用于实际的自动化测试的?

我学习了如何写一个自动化测试的demo,但是很明显,一个自动化测试的流程比这复杂得多,可能需要编写初始化工具类(启动浏览器,填入cookie以自动登录),需要封装动作函数(寻找元素、点击、输入、校验数据、循环等)。如果只是写demo的话,只能应用于单个页面,而如果想手动写可以应用于有许多页面的web系统的测试用例无疑会是很大的一个工程。
我之前在百度里做过QA,那家公司提供了一个低代码平台,里面把selenium的常见函数都封装成了动作,甚至连for/for-end这样的循环逻辑也进行了封装,我们可以用拖拽的方式快速搭建用例,只需要填写选择器和一些数据校验就能完成应用于大量界面的用例。但是我在离职后才发现这个平台是百度自己编写的,我找不到关于selenium封装得如此好的开源库,请问在其他公司是如何使用selenium的?有没有封装好的开源库可以使用?

1 个赞

换个可能不恰当的例子,现在的selenium自动化测试教程教的内容类比成接口测试基本只相当于postman,但是实际生产中需要的是jmeter这种封装好的,可以操作大量用例的程序
哦也不对,我发现postman也能写断言和批量执行

这个真的只能自己写,我这里做的是接口测试,用的是 restful API,但 selenium 的一直没做

说真的我感觉挺怪的,selenium发明也有这么多年了,所有用过的人应该都会有相同的问题,莫非大伙都选择了自己造轮子?
我翻过一段时间github,不能说一点相关的项目都没有,比如metersphere 但是我看好像只是做接口测试才免费,如果想用metersphere做selenium还得要钱,就比较。。。

可能是因为只有商业公司有这样的需求,然后相关的工具商业利益大,最后就只有商业产品做这些?

好吧,确实如此,我当年负责维护百度那个平台的用例,每天都觉得这平台烂完了,每天瞎告警还占用起码半个人力,我现在离职了反而觉得那个平台简直就是世界第一好用的selenium平台 :cry:

可能是因为其他人帮你把最痛苦的事情都做了,所以你才觉得舒服。

Selenium 为什么没人用?因为它主要测试的是前端功能,这就有两个问题:

  1. 前端可以实现的功能其实和后端联动,所以直接用接口测试一样能做到保证后端功能可用,相比 Selenium 模拟前端动作,直接接口测试难度更低,效率更高, Selenium 有点过于设计了。我这里也是这样直接做接口测试保证功能可用的。

  2. 前端技术日新月异,百度能用各个方面都必须做妥协,selenium 需要用路径定位组件,或者用位置定位组件,位置定位一旦修改屏幕分辨率就失效,路径定位就必须页面固定,最多也就用CSS改改位置,而前端页面的改动是非常非常快的,适配难度太高,更别说现在前端甚至已经进化到需要编译的程度,组件名称、路径都是编译时确定的,这类 selenium 也没办法适配。再加上前端现在也有了单元测试结构,前后端分开都由自己保证自己的功能,selenium夹在中间左右都不靠,自然越来越尴尬。

Seleinum 开始的时候的确有效,但现在它的必要性越来越低,是个挺没前途的技术,你看看自己对前端还是后端感兴趣,自己去看看对应架构自己提供的单元测试技术都比它有作用,别去磕它了

就像你自己说的,一个东西都这么多年了,连基本的轮子都没造出来,甚至有点价值的社区都没有,自己也该看出什么来了

2 个赞

确实如此,经常前端出了一点小改动我们QA就要被告警轰炸,然后改一堆用例。确实收益已经快赶不上支出了。
谢谢,很有帮助