原标题:做接口自动化前你需要准备什么?
虽然说会写自动化测试也不能说明你牛批,但是你不会的话,那么很抱歉,你的上升通道就会变得更窄。
其实自动化测试之所以受到大家的追捧,必然也是有它的道理。说白了,我觉得根本的因素是在于提效。
当然了,提效这个是最终理想,但是有些公司的自动化项目落地的并不太好,反而成为了某种“累赘”。
在不少的测试群里待过,看到过很多人吐槽自己的领导或者公司xx,突然某天就宣布要开始搞自动化了,然后安排下去。
其实很多时候,他们自己并没有搞清楚,项目适不适合做自动化、做怎么的自动化。说白了,就是为了做自动化而做,
所以,在做自动化之前,建议搞搞清楚你们要做的自动化项目应该是什么样子的,解决了什么痛点,能提高多少的效率等等。
否则,辛辛苦苦做下来的自动化,很容易到后面就变成了废品。
二、自动化的类型
大家通常会去选择做自动化的类型一般有2种:一种是ui自动化、一种是接口自动化。
那ui自动化中,又可以有web系统的自动化、app的自动化等等。
笔者本人曾经开发维护过一套web自动化的服务,说实话,投入回报率不高,所以后来也就逐步放弃了。
回想起来,这也算是领导没弄清目的就盲目开展的典型案例了,不过这段开发经历对我来说还是很宝贵的。
到后来重点就转移到了接口自动化了,为什么呢?
首先声明,这里讲的接口是指协议接口了,比如http协议的接口,并不是程序接口,比如java里的interface。
那么接口层相比于ui层,的优点是更接近底层逻辑,可以让测试更早的介入。于是更早的发现bug,修复的成本也就越低了。
另外,接口测试也可以更容易发现ui测试中不容易发现的问题。
比如说,一个接口没有对非法传参进行处理,虽然ui在输入框进行了一些不合规的类型输入校验,但是只要抓个包修改下参数请求过来,就会立即暴露出问题。
三、搭建一个接口自动化框架需要的技能
编程语言:既然做了这行,编程是跑不掉的。java、python哪个熟悉用哪个吧,我个人偏向于脚本用python。
单元测试框架:不同语言有不同的测试框架,python有unittest、pytest等,java有testng、junit等。我个人偏向python的pytest。
搜索解决问题:其实有了前面2个点是基石,剩下的就是你遇到什么问题或者需求,知道如何去搜索解决实现的能力了。比如能找到合适的
第三方库,来增加自己的框架,拿pytest来说,可以用requests库来发送请求,用jmespath库来提取复杂的接口响应,以及用allure框架来
输出一个漂亮的报告等。
搞清楚了这些,基本上就可以开始做起来了。
一开始不用过度的考虑自己的框架的终极形态是什么样子的,因为我觉得没有的框架,只有最适合的框架。在你实现的过程中,会遇到不同的问题,
然后你不断迭代优化你的框架去解决这些问题,于是乎框架会一点点的变成大家心中的样子。