如何让自动化测试框架更自动化?,高级软件测试开发必看

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

一、引言
​对于大厂的同学来说,接口自动化是个老生常谈的话题了,毕竟每年的MTSC大会议题都已经能佐证了,不是大数据测试,就是AI测试等等(越来越高大上了)。不可否认这些专项的方向是质量智能化发展的方向,但是凡事都遵循2/8定律,80%的从事软件测试的同学或许对这些并不感冒,因为大部分测试同学分布于中小厂,而他们大多停留在如何更好更快地进行接口自动化的阶段。

小厂质量团队地位低,在团队中发言分量轻,项目中往往处于劣势,项目的测试时间不能保证,更别提搞什么高大上的质量专项了,能把接口自动化测试做好就是大事一件,节省不少时间了。

因此,聊聊接口自动化还是非常有必要的。

二、“JMeter式”的自动化设计思路
毫无疑问,聊起接口自动化,大家可能第一时间联想的就是自动化工具、自动化框架,例如JMeter、Postman等。这些工具学习成本小,掌握这些工具用法算是一条腿迈进了自动化测试大门。当然我建议大多数测试菜鸟先从工具的使用学起,话说“读书百遍,其义自见”,用多了你也就理解了工具本身的设计(模式)精髓,为将来自己动手设计工具打好基础。

我也曾设计过接口测试工具(参考文章),但是现在回过头再看看开发出来的东西,或多或少有些JMeter的影子!是的比葫芦画瓢,JMeter已经在你脑海里先入为主了,你开发的接口测试工具有它的影子也不足为怪。换句话说,这或许是JMeter式的重复造轮子。

以我之前设计的测试工具为例,使用它就要动手搜集接口信息,动手组装入参,动手写断言。。这TM就是和使用JMeter写用例要做的事情一样的嘛!

JMeter式的自动化测试,我认为是“高级”的手工测试。自研的测试框架写用例往往需要代码基础,但是写过的都知道,业务用例代码重复度挺高的。而更重的在于用例的维护,毕竟大家写的代码风格迥异,维护的难度更大,甚至不如JMeter的用例维护来的方便。

意识到这个问题后,我也尝试在github上搜索stars比较多的开源自动化工具,遗憾的是这些框架始终摆脱不了这个“设计套路”。例如

当然,说上面这些并非不建议大家开发接口自动化测试框架,自研的接口测试框架同样有很多优点。

测试工具开发的测试用例往往不易于维护,试想一下当你维护JMeter生成的各种JMX文件场景。

大量的测试用例可重用性差,例如登陆模块,每个接口调用前都要获取cookie,而登陆则是前置模块,使用JMeter开发用例需要每个JMX文件都要包含登陆,重复度太高。

无法满足自动化平台诉求,短期内确实可以快速实现自动化,但是这些工具对于平台非自动化能力的拓展成本较高,毕竟改动开源工具的成本比自研高很多。

使用开源工具不利于提升团队在自动化技术方面的成长。自动化能力的提升离不开编程能力的提升,使用开源工具能提升工具学习使用能力,最终你的成长无外乎又掌握了一个测试工具的使用。

那么,如何摆脱JMeter式的传统思路,用更多的自动化代替手工??

三、让自动化框架更自动化
接口自动化的核心是什么?接口、数据、断言。

正如上文说的,这也是我们手工重复度比较高的工作内容,也是痛点所在。

传统的自动化用例设计,往往需要人工采集接口信息(例如抓包,然后写脚本提取接口信息HTTP Type、Method、Request等),人工造入参数据等,这些重复度是极高的。更进一步来说,人工造入参数据更是痛中之痛,毕竟不同的业务需要构造的request内容是不同的。

那么如何自动化实现呢?

不妨大家先考虑我们是在哪里获取的这些信息。例如接口信息,你是否有过通过开发者工具提取接口信息?是否有过解析Charles工具har文件提取接口信息?以及解析swagger等接口文档工具。。。。然后通过提取的接口信息生成自动化框架所需的接口请求service。

但是,接口信息就在那里,为什么还要将其从一种载体中提取出来再转化为另一种类型的接口信息。难道直接使用类似har文件、swagger的接口信息就不行吗?当然是可以的。例如美团的Lego测试平台。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值