Python接口自动化测试框架运行原理及流程


Posted in Python onNovember 30, 2020

本文总结分享介绍接口测试框架开发,环境使用python3+selenium3+unittest+ddt+requests测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman、Jmeter等接口测试工具,为什么还要开发接口测试框架呢?因接口测试工具也有存在几点不足。

  • 测试数据不可控制。比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据。接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。
  • 无法测试加密接口。实际项目中,多数接口不是可以随便调用,一般情况无法摸拟和生成加密算法。如时间戳和MDB加密算法,一般接口工具无法摸拟。
  • 扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,又想让接口测试集成到CI中,做持续集成定时任务。

测试框架处理流程

Python接口自动化测试框架运行原理及流程

测试框架处理过程如下:

  • 首先初始化清空数据库表的数据,向数据库插入测试数据;
  • 调用被测试系统提供的接口,先数据驱动读取excel用例一行数据;
  • 发送请求数据,根据传参数据,向数据库查询得到对应的数据;
  • 将查询的结果组装成JSON格式的数据,同时根据返回的数据值与Excel的值对比判断,并写入结果至指定Excel测试用例表格;
  • 通过单元测试框架断言接口返回的数据,并生成测试报告,最后把生成最新的测试报告HTML文件发送指定的邮箱。

测试框架结构目录介绍

Python接口自动化测试框架运行原理及流程

目录结构介绍如下:

  • config/: 文件路径配置
  • database/: 测试用例模板文件及数据库和发送邮箱配置文件
  • db_fixture/: 初始化接口测试数据
  • lib/: 程序核心模块。包含有excel解析读写、发送邮箱、发送请求、生成最新测试报告文件
  • package/: 存放第三方库包。如HTMLTestRunner,用于生成HTML格式测试报告
  • report/: 生成接口自动化测试报告
  • testcase/: 用于编写接口自动化测试用例
  • run_demo.py: 执行所有接口测试用例的主程序

接口测试用例的主程序GitHub项目地址:https://github.com/yingoja/DemoAPI

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中stdout输出不缓存的设置方法
May 29 Python
python下载文件时显示下载进度的方法
Apr 02 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
Python发送邮件封装实现过程详解
May 09 Python
python 调整图片亮度的示例
Dec 03 Python
Django数据模型中on_delete使用详解
Nov 30 #Python
Django数据统计功能count()的使用
Nov 30 #Python
Python常用断言函数实例汇总
Nov 30 #Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 #Python
Django 用户认证Auth组件的使用
Nov 30 #Python
python tqdm库的使用
Nov 30 #Python
Python+unittest+DDT实现数据驱动测试
Nov 30 #Python
You might like
linux命令之调试工具strace的深入分析
2013/06/03 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
jQuery实现表格隔行换色
2018/09/01 jQuery
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
原生js实现照片墙效果
2020/10/13 Javascript
讲解Python中的递归函数
2015/04/27 Python
python基础教程之匿名函数lambda
2017/01/17 Python
Python查看微信撤回消息代码
2018/06/07 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
儿科主治医生个人求职信
2013/09/23 职场文书
期末自我鉴定
2014/01/23 职场文书
军神教学反思
2014/02/04 职场文书
小学清明节活动方案
2014/03/08 职场文书
创业计划书之校园超市
2019/09/12 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers