研发效能 深聊自动化测试 -- 框架&方案的抉择

nicolas · 2021年06月03日 · 最后由 testerming 回复于 2021年06月04日 · 3545 次阅读

往期回顾

上一期的话题谈到了自动化测试的 code 与 codeless 之争
深聊自动化测试 -- codeless 之争
核心议题是:自动化测试用例的开发设计是 “手动敲代码好” 还是 “使用无需 coding 的框架/工具/平台 “好
回帖讨论精彩纷呈, 有支持:纯手工 coding; 有反对: 还是 codeless 大法好;有中庸:不管如何,能解决问题提升效率就行。
里面很多回复都非常有价值,值得仔细品味。
当然,我个人观点依然是纯手工 coding 才是目前自动化的主流, 除非有革命性的测试方案出现。

大道至简,回归本质!

本期话题:自动化测试的框架&方案如何抉择

随着软硬件技术的发展,测试领域也涌现了很多新的东西:新的测试思想、新的测试方案...OCR、AI、图像识别、深度学习等技术也开始融合进我们的测试中协助测试、检测、验证。
无论上层应用多么的绚丽多彩,底层的逻辑和思想应回归本源,趋向大同。例如:

  • 通过 web 平台来对 API 测试:在 web 中设置请求的参数、抽取数据、验证数据...背后的本质是平台去数据拼装、调用 HTTP 请求、校验结果...
  • 通过图像识别,AI 定位对象、帮助编写 UI 用例,以前是通过原生的 id\class\tag name 等定位对象,现在是通过图像识别,其本质都是如何定位到具体的 UI 对象

如果不了解背后的本源,是很难做好自动化的,也会影响你的方案和决策。在自动化测试这块,无论是小团队还是大的组织,一个很重要的难点是:不知道如何下手 (落地实施) 或者说不知道选择什么测试框架和方案,团队或组织自身也没能力去开发去解决这些问题。常见的方案 (不包含测试流程管理工具) 是:
1、pytest\unitest+allure+ 各种三方插件 +jenkins
2、junit\testng+allure+ 各种三方插件 +jenkins
3、Appium、selenuim、robotuim...
4、各种内部自研测试平台和测试方案
5、jmeter\Postman...

可谓百花齐放,各显神通。
现实却是:听说过很多道理,却依然过不好这一生; 撸过了很多框架和工具,依然不得要领。
1)配置太复杂,实施和维护成本都高
2)没有可持续性,测试平台和方案 换公司和业务后,就不适用了
3)测试实施方案掌握在少数人手中,每个 leader 都使用自己熟悉的方案,旧人辞职、新 leader 上任后又使用新的测试方案,推倒重来
4)团队内每个人的代码习惯都不一样,维护难...

What the fuss! What the fuck!
为什么我们没有测试界的 springboot?
你心目中理想的最佳的自动化框架或方案是啥?
目前有更好的自动化测试框架吗?
下期继续再聊...

共收到 11 条回复 时间 点赞
nicolas 回复

现在市面上开源的框架都不行,真正有效的都在大公司或者专门做云测的公司手里。

appium 太过理想,像国内众多不同 rom 的问题,不改造 Appium 内部机制,appium 根本解决不了。
而 airtest 吹的比实际的要大,实际上并不好用。
其他框架更不值一提。

当然有很多小的技术点,国内解决的不错,比如 codeskyblue 开源的 tidevice 解决了 iOS 自动化可以摆脱对 xcode 以及操作系统的依赖,这个相当厉害,对 Ui 自动化测试的贡献也非常大

nicolas 回复

看来低调不了了,后续搞起来😋

我都是自己开发框架,后续考虑开源

testerming 回复

一言不合就自己干👍

接口自动化还是平台来做得好,优势很大,人人都可以参与做自动化,快、效率高,数据展示直观。UI 自动化就用脚本稍微写点冒烟得就行了

一看就是搞过自动化的人 😀 接口测试不单单是测试接口本身的呈现,而是它背后的服务和整个调用链路;如果没有一定的服务端知识积累,只是通过接口组合的话,会存在很大遗漏。所以接口测试是一定技术门槛的,后续我会单独聊这块

testerming 回复

见解深刻!👏 👏 👏
建议以后多分享,多为测试届做贡献
人民需要你,部落需要你!

脱口秀?

我也赞同楼上说的,接口可以做成平台,成效高、效果好,降低人员成本、ui 的就话可以把调度、报告放在平台上

testerming 回复

过奖了

codeskyblue 回复

大神冒泡了😂

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