Python接口自动化

接口测试框架的形成过程



--> 流水账式的接口测试脚本
--> 在编写不少流水账式的接口测试脚本后,发现其中存在大量重复的代码

思考:

能不能把公共的操作单独抽离出来,抽象到一个common文件中,在其他文件继承或导入文件进行使用

如何区分哪些是公共的部分?

这个概念很大,可以从小做起,一步一步改进

--> 比如一个项目的接口中,host基本是一样的,可以抽离出来;
--> 一个接口对应多个用例,不同用例之间只是入参不一样,可以把接口的host和路径抽离出来
--> 还有比如 一个系统功能比较多,有几十个模块,每个模块也可以分为一部分
--> 测试环境的切换
--> 等等,在实践的过程中,多想一想,还有哪些可以抽离的

一般哪些是公共部分?

公共部分与非公共部分的边界是什么?
提供common文件的通用性
如不写死测试系统,通过传入参数指定测试系统

加入测试报告

加入测试报告模块,把测试结果储存在测试报告当中,方便查看而不是都使用print打印

加入测试驱动框架

加入unittest或pytest测试驱动框架来驱动各个模块,更好地组织测试脚本

加入日志

为了更好地定位和分析问题,加入日志模块

加入断言

针对复杂断言,引入jsonpath断言、Xml断言、Xpath断言、hamcrest断言、Json schema校验

引入POM

为了更好地区分业务操作,方便脚本维护,引入POM

引入参数化

为了应对大数据量测试,引入参数化,YAML、Excel、数据库都可以作为存储测试数据的。

引入持续集成

引入jenkins持续集成,自动拉去代码执行脚本

......

不要把测试框架看得太高大上了,不是只有像selenium、appium、httprunner才叫测试框架,你可以从一个简单地测试框架开始做起。

测试框架是在编写大量测试脚本地过程中不断抽象封装出来地,然后不断完善,是一个循环往复地过程。



说这么多,要学的这么多,那怎么开始呢???

  1. 流水代码写好,流水代码也可以进行断言,进行关联。测试用例的关键要素是什么(输入以及期望结果),要学一下request模块

  2. 你会发现流水式的代码有很多重复的的内容,那么要封装一个接口,先用函数封装,所以你要学一下函数

-------------------其实到这里,一个小框架就出来了,你先用着,先用到项目里面去,不要想太多,干就是了----------------

  1. 接着你会发现用函数封装,好像还不太够,可以封装成类,所以你要学习一下类

  2. 封装完类之后,你会发现执行用例不方便,断言不方便,所以你要引入unittest或者pytest框架

----------------到这里,你的框架进一步完善了----------------



真的,坚持到这一步,你已经超过很多人了

接下来继续完善,也就前面提到那些,封装Rest客户端、封装关键字、数据驱动,加日志,引入jenkins、引入POM等等.



-----分界线------

一个病人准备做手术,问医生,我能喝水吗?
医生:只能一点点
病人:那我要一杯奶茶

原文地址:https://www.cnblogs.com/wwho/p/14468881.html