【接口自动化】2.快速搭建接口自动化框架
接口自动化框架要搭成什么,里面的内容究竟应该有多少?
这个问题没有标准答案,因为这要取决于你的项目,以及你想要用框架来解决什么问题等多种因素。
当然了,这里也就不展开讨论了,还是回到接口自动化这个点,来说一说你至少改具备的东西。
一、编程语言的选择
如果有特殊要求用某种语言的话,你没什么好选。如果没有特殊要求,我个人偏向于使用python语言。
笔者之前也曾参与过基于java语言的接口自动化开发跟维护,框架用的是testng,虽然组内大佬已经尽力
将框架维护的比较好用,但是用起来始终不如python爽。或许这也是习惯的原因吧,谁叫我是先学python,
后学的java呢。
我记得当时领导说是为了让测试的开发语言与开发同步,所以就让我们转用java来开发了。但是我还是那句话,
如果没有特殊要求,我还是果断拥抱python。
这里要再加个题外话,那是不是觉得会用python就足够了?搁以前或许是吧,但是现在肯定不是了。java还是
要学的,你看看大多数公司开发用的什么语言,就是java。反正多掌握几个主流的开发语言肯定不会亏。
二、单元测试框架的选用
既然语言定了,单元测试框架也就好选了。笔者是基于python进行分享,那么就不得不提unittest个pytest了。
unittest是python自带的单元测试框架,而pytest则是一个第三方的测试框架。直接给结论,用pytest,优点
多多,插件生态丰富,谁用谁知道。附上pytest的官方文档,不过是英文的。
但是还是推荐多去看看,多写写,多体会。
笔者在陆续写一个【解读pytest官方文档】系列,已经写了一些,有兴趣的可以翻一下。
三、善于优秀的第三方库
框架定了pytest,那么就可以用它结合着众多优秀的开源库去实现自己的需求啦,这里写几个常用的:
- requests:接口自动化必备神器,请求接口、代理等等应有尽有,官方文档在这,有中文版的哦。
- pymysql:操作mysql利器,接口测试少不了要跟数据库打交道,有了它你会更加得心应手。
- allure:这是个测试报告,其实没有它你依然可以进行接口测试,如果你想要一份漂亮的测试报告,就选它吧。
... ...
第三方库真的很多,就不一一列举了,要善于搜索。
四、接口自动化框架的基本结构
上面说的都齐了,框架也就有了。至于结构到底怎么样,还是因人、项目而已,怎么适合怎么来。
图里的这个结构,并不是我目前项目在用的,但是这几个东西是基本结构,用处分别是:
- conf:这里可以放一些配置文件啥的,比如数据库链接信息,接口域名等等。
- interface: 这里就是放测试用例的地方了,下面可以根据项目需要进一步拆分模块
- report:可有可无吧,有的话你可以把生成的报告放这里
- util:这里可以写一些公共方法
这里仅仅作示意,名字随便起,只要合适就行。
目前项目里在跑的框架内容就比这多了不少了,毕竟里面是好几个业务都在一起,然后就有了各种各样的问题,
需要框架去兼容解决,自然而然东西就会变多。
本文中只提供思路,供想要搭建接口自动化框架的伙伴参考,有问题可以留言或者私信我,当然了推荐最直接的就是
去搜索了,毕竟这是写代码的一项重要技能!!!
接下来会分享编写接口自动化case需要注意的那些点。