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 GAE、Django导出Excel的方法
Nov 24 Python
Python中Random和Math模块学习笔记
May 18 Python
利用Python开发微信支付的注意事项
Aug 19 Python
python查看微信好友是否删除自己
Dec 19 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
numpy中矩阵合并的实例
Jun 15 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
Python 实现try重新执行
Dec 21 Python
django 模型中的计算字段实例
May 19 Python
Pycharm如何自动生成头文件注释
Nov 14 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 Class 文章
2007/04/04 PHP
php 短链接算法收集与分析
2011/12/30 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php中stream(流)的用法
2014/03/25 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
Python封装shell命令实例分析
2015/05/05 Python
Python解析nginx日志文件
2015/05/11 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
pywinauto自动化操作记事本
2019/08/26 Python
wxPython实现画图板
2020/08/27 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
七年级数学教学反思
2016/02/17 职场文书