Python3接口测试框架的整体布局与设计

实战项目整体布局概览

本实战项目基本的层级结构如下:

习惯性的命名规则,把所有的辅助类py文件放在commonsrc这个包里面,如数据库配置封装文件、接口配置封装文件等;辅助类py文件在整个项目中初期代码写好后一般是不会去大范围修改的,即使产品需求变更,这一块也是影响非常小的。以下就commonsrc包做一个概述性的讲解:

1、common.py

这个文件里面主要放的是一些公共的方法,如文件的读写,url的配置等,在整个项目中占比较大的角色。

2、configDB.py

文件中对数据库方法进行了封装,如游标,数据库连接。这样在接口测试核对数据时可能用到数据空做了一些预防。

3、configEmail.py

这里面主要是对邮件格式,邮件内容,邮件发送接收,邮件服务配置做了一些封装,便于后续的调用。

4、confiHttp.py

文件里有基本的post、get方法的封装,对post和get请求的参数,请求方法做了一些定义,当然如果想增加其他请求如put等也是可以的,这里面用到了一个requests库。

5、Log.py

这个文件是日志打印,基本上所有框架的源码这一块基本是没有什么变化的,就是打印一些log,以及log输出的表达方式。

6、HTMLTestRunner.py

测试报告,其实他是第三方包,unittest里一起的测试报告,本次把他放在这里是应为python3中,需要我们自己去对测试报告做一下自定义才能使用。具体的方法在我前面的书籍中也讲过。

7、其它

不做概述,只是一种调试增加而已。如写一下common方法是会新建一个文件写上代码作为调试,当代码完好后才移植到common.py里
公用类log.py和common.py也是放在了commonsrc.py,上述已经讲解不在累述。脚本主要是放在testcase这个包里面,脚本以test开头存放。其他的文件夹存放的是一些log输出和测试结果,文件等。runAll.py是整个测试的一键测试入口,里面主要定义了测试的脚本顺序,测试的数据调用等。

实战项目脚本调用方式

接口自动化测试,先得有接口的url,接口请求和接口期望返回参数,接口数据的断言核对等这一套流程,然后我们编写代码时才从这套流程中去发掘,一步一步的形成一个完好的测试脚本。接下来我们一个一个的去描述:

接口的url

接口的url主要是从接口配置源码ConfigHttp.py中的set_url(self.url)获取,写脚本的时候传入url,在这个方法里会自动组成一条完整的可供请求的接口链接。

接口请求

接口请求分请求头、请求body和请求方式,请求头采用的是从接口配置源码ConfigHttp.py中的set_headers(self.header)获取,脚本需要给方法传参header。请求的body是由从接口配置源码ConfigHttp.py中的set_params(self.param)、set_data(self.data)获取,同样需要在脚本里传入需要的请求体,请求方式这里主要还是从接口配置源码ConfigHttp.py中的get(self)、post(self)获取,测试脚本直接调用即可

接口期望返回的参数

返回的参数都是接口文档会有说明的,每条用例一个期望返回参数,本项目中有两种方法来存放期望返回参数,一个是放在excel里,一个是放在yaml文件里面。具体的获取方法在脚本编写这一块会有所体现。

接口数据断言核对

这部分的断言也是有两种一种简单的,一种叫难的。简单的断言指的是对msg和code接口返回的状态码较为简单的做一次断言,这部分的源码是脚本里直接写的以下为示例:

较为复杂和完整的断言是放在common文件里的check_result(response={}, hope_response={}, value=0)方法,对键值对都做了比较和输出,以及差异输出,源码如下:


实际接口测试入口

本项目的文件中新建了类和一些方法,在结尾处出现如下代码:

if __name__ == '__main__':
    obj = AllTest()
    obj.run()

这段代码的说明一下这个是调试代码,直接运行此文件来找到代码问题,其中 **if name == ‘main’😗*告诉我们这个文件是可执行的文件。如果没有这段代码就像只是单纯的作为其他执行文件的调用文件。每一个函数每一类不管有没有返回数据,都需要用调试来使得代码更加完善,pycharm也提供了断点调试的功能,配合起来是代码写的更加完美。
项目中你会发现每一个文件都可以单独执行,这个是因为调试需要,那么在测试中什么是我们的接口测试主入口呢?runAll.py这个文件就是。

文章原创首发于微信公众号 软件测试微课堂

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值