Python API自动化框架总结
作者:我是蜗牛妹啊 发布时间:2022-08-25 15:37:44
学完了Python脚本接口自动化之后,一直没有对该框架做总结,今天终于试着来做一份总结了。
框架结构如下图:
来说一下每个目录的作用:
Configs:该目录下存放的是.conf,.ini文件格式的配置文件;文件里面的内容可以通过封装好的读写配置文件的类去获取。
datas:该目录下存放一些测试用例数据,如:Excel
libs:存放修改源码后的ddt.py和HTMLTestRunner文档,这个两个文档主要是为了让测试报告看起来更明了
logs: 存放脚本运行的日志文件
reports: 执行run.py文件后,存放运行后的测试报告
scripts: 该目录主要存放封装好的脚本,通过调用这些脚本,来实现测试数据的产生的使用和断言。
constans.py: 该文档是用来获取各目录的路径,脚本中可以通过导入该文件中的各种路径变量,这样做的目的是便于框架的复用性。
handle_config.py: 该文档封装的是读写配置文件里面的内容的类。
handle_loggin.py: 该文档封装的是日志文件的存放和输出。
handle_excel.py: 该文档封装的是读写Excel内容的类。在unittest.TestCase类方法中,通过调用这个方法,从Excel中读取测试数据,再将断言结果写进Excel中。
handle_pymysql.py: 该文档封装的是数据库的连接以及数据库的查询等相关操作方法。
handle_requests.py: 发送request请求的方法封装。
handle_context.py: 该文档主要是通过正则表达式,实现测试用例数据参数动态化
test_cases: 该目录下存放的是各功能模块下的测试方法。
run_test.py: 该文档是存放在项目根目录下,执行所有测试用例方法后,会在reports目录下自动产生一个.Html的测试报告。
总结:
该框架主要的设计思想是:通过分层设计,将测试用例数据和测试方法以及业务逻辑抽离,做到测试框架可复用性高,易维护。
该框架主要是通过测试方法类-unittest.TestCase,从Excel中读取测试数据,通过DDT循环调用测试数据,发送Request请求,根据请求返回的响应数据与期望值来做断言。其中DDT驱动数据的时候,通过handle_pymysql做数据库校验或者生产相应的测试数据,再通过handle_context结合正则表达式,动态替换参数。
自动化测试怎么实现接口依赖?
方法一:将被依赖的接口,写在Excel中(参考手动执行的顺序)
方法二:可以通过编写方法或者函数,在测试类方法中的前置条件方法(SetUpClass)中调用这个方法或者函数,得到想要的数据,再执行测试用例方法
自动化测试怎么做数据库校验?
方法一:在测试用例数据文档中,在需要做数据库校验的测试用例后面增加一列,然后写上SQL语句,在执行测试用例方法时,可以通过判断这个字段值,来确定是否需要做数据校验。
来源:https://www.cnblogs.com/wswnm/p/11842489.html


猜你喜欢
- 手里有个老项目是基于element admin框架下的,之前写的时候没考虑到要打包成桌面端,后期需要打包成客户端,然后就开始了一些列版本操作
- docker安装mysql版本8.0.20,供大家参考,具体内容如下第一步 下拉镜像docker pull mysql:8.0.20第二步
- 函数介绍Socket对象方法:服务端:函数描述.bind()绑定地址关键字,AF_INET下以元组的形式表示地址。常用bind((host,
- 本文主要介绍的是Python高阶函数与装饰器函数的相关内容,分享给大家,下面话不多说了,来一起看看详细的介绍吧高阶函数1、可以使用函数对象作
- 一、任务实现一个4 层的全连接网络实现二分类任务,网络输入节点数为2,隐藏层的节点数设计为:25,50,25,输出层2 个节点,分别表示属于
- 这篇文章主要介绍了Python namedtuple命名元组实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 配置好virtualenv 和virtualenvwrapper后,使用pycharm创建新项目。之后要面临的问题就来了,之前一直使用的是s
- Python的可视化工具有很多,数不胜数,各有优劣。本文就对其中的pylab进行介绍。之所以介绍这一款,是因为它和Matlab的强烈相似度,
- 系统中对Razor的支持包括两部分,其中之一就是自定义RazorViewEngine一、自定义RazorViewEngine在Global.
- python中类的继承:子类继承父类,及子类拥有了父类的 属性 和 方法。python中类的初始化都是__init__()。所以父类和子类的
- 一、注释当前行注释:# 被注释内容多行注释:""" 被注释内容 """二、用户输
- 本文是OpenCV图像视觉入门之路的第10篇文章,本文详细的在图像上面进行了图像均值滤波、方框滤波 、高斯滤波、中值滤波、双边滤波、2D卷积
- auto_api_test开发环境: Pycharm开发语言&版本: python3.7.8测试框架: Pytest、测试报告: A
- 前言:内容提要:本文比较了 Python 中用于列表排序的两种函数 sort() 和 sorted(),帮助您选择合适的排序函数。对列表排序
- 用户日活百万级,注册用户千万级,而且若还没有进行分库分表,则该DB里的用户表可能就一张,单表上千万的用户数据。某系统专门通过各种条件筛选大量
- 在写Python的时候经常会遇到时间格式的问题,首先就是最近用到的时间戳(timestamp)和时间字符串之间的转换。所谓时间戳,就是从 1
- 前言最近公司项目从vue2迁移到vue3,感觉自己对Object.defineProperty和Proxy的了解还是在浅尝辄止的地步,所以今
- 桑基图,它的核心是对不同点之间,通过线来连接。线的粗细代表流量的大小。很多工具都能实现桑基图,比如:Excel、tableau,我们今天要用
- 前言本文主要介绍了关于MySQL主键为0与主键自排约束的关系,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。开始不设置主键
- 在写cmu14-445的project时,我希望在本地vscode编辑代码,然后在docker中编译和测试代码。但是如果测试出了问题,直接在