接口测试框架的形成过程
--> 流水账式的接口测试脚本
--> 在编写不少流水账式的接口测试脚本后,发现其中存在大量重复的代码
思考:
能不能把公共的操作单独抽离出来,抽象到一个common文件中,在其他文件继承或导入文件进行使用
如何区分哪些是公共的部分?
这个概念很大,可以从小做起,一步一步改进
--> 比如一个项目的接口中,host基本是一样的,可以抽离出来;
--> 一个接口对应多个用例,不同用例之间只是入参不一样,可以把接口的host和路径抽离出来
--> 还有比如 一个系统功能比较多,有几十个模块,每个模块也可以分为一部分
--> 测试环境的切换
--> 等等,在实践的过程中,多想一想,还有哪些可以抽离的
一般哪些是公共部分?
公共部分与非公共部分的边界是什么?
提供common文件的通用性
如不写死测试系统,通过传入参数指定测试系统
加入测试报告
加入测试报告模块,把测试结果储存在测试报告当中,方便查看而不是都使用print打印
加入测试驱动框架
加入unittest或pytest测试驱动框架来驱动各个模块,更好地组织测试脚本
加入日志
为了更好地定位和分析问题,加入日志模块
加入断言
针对复杂断言,引入jsonpath断言、Xml断言、Xpath断言、hamcrest断言、Json schema校验
引入POM
为了更好地区分业务操作,方便脚本维护,引入POM
引入参数化
为了应对大数据量测试,引入参数化,YAML、Excel、数据库都可以作为存储测试数据的。
引入持续集成
引入jenkins持续集成,自动拉去代码执行脚本
......
不要把测试框架看得太高大上了,不是只有像selenium、appium、httprunner才叫测试框架,你可以从一个简单地测试框架开始做起。
测试框架是在编写大量测试脚本地过程中不断抽象封装出来地,然后不断完善,是一个循环往复地过程。
说这么多,要学的这么多,那怎么开始呢???
-
流水代码写好,流水代码也可以进行断言,进行关联。测试用例的关键要素是什么(输入以及期望结果),要学一下request模块
-
你会发现流水式的代码有很多重复的的内容,那么要封装一个接口,先用函数封装,所以你要学一下函数
-------------------其实到这里,一个小框架就出来了,你先用着,先用到项目里面去,不要想太多,干就是了----------------
-
接着你会发现用函数封装,好像还不太够,可以封装成类,所以你要学习一下类
-
封装完类之后,你会发现执行用例不方便,断言不方便,所以你要引入unittest或者pytest框架
----------------到这里,你的框架进一步完善了----------------
真的,坚持到这一步,你已经超过很多人了
接下来继续完善,也就前面提到那些,封装Rest客户端、封装关键字、数据驱动,加日志,引入jenkins、引入POM等等.
-----分界线------
一个病人准备做手术,问医生,我能喝水吗?
医生:只能一点点
病人:那我要一杯奶茶