Python API自动化框架总结


Posted in Python onNovember 12, 2019

学完了Python脚本接口自动化之后,一直没有对该框架做总结,今天终于试着来做一份总结了。

框架结构如下图:

Python API自动化框架总结

来说一下每个目录的作用:

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语句,在执行测试用例方法时,可以通过判断这个字段值,来确定是否需要做数据校验。

以上就是本次介绍的全部知识点内容,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
Python处理JSON数据并生成条形图
Aug 05 Python
python中如何使用正则表达式的非贪婪模式示例
Oct 09 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
Apr 08 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Pytorch to(device)用法
Jan 08 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
python爬虫selenium模块详解
Mar 30 Python
Python  lambda匿名函数和三元运算符
Apr 19 Python
python的scipy实现插值的示例代码
Nov 12 #Python
python对验证码降噪的实现示例代码
Nov 12 #Python
Python FTP文件定时自动下载实现过程解析
Nov 12 #Python
详解在python操作数据库中游标的使用方法
Nov 12 #Python
如何分离django中的媒体、静态文件和网页
Nov 12 #Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 #Python
Python实现元素等待代码实例
Nov 11 #Python
You might like
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
2011/10/09 PHP
php开发文档 会员收费1期
2012/08/14 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
2018/06/24 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
Python Pexpect库的简单使用方法
2019/01/29 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
医学院四年学习生活的自我评价
2013/11/06 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
大学新闻系求职信
2014/06/03 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
异地恋情人节寄语
2015/02/28 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL