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  连接字符串(join %)
Sep 06 Python
Pyramid Mako模板引入helper对象的步骤方法
Nov 27 Python
谈谈如何手动释放Python的内存
Dec 17 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
python 同时读取多个文件的例子
Jul 16 Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
django列表筛选功能的实现代码
Mar 27 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 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
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
vue3.0 搭建项目总结(详细步骤)
2019/05/20 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
python如何通过protobuf实现rpc
2016/03/06 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
python读取Excel实例详解
2018/08/17 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
django-初始配置(纯手写)详解
2019/07/30 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
详解Python模块化编程与装饰器
2021/01/16 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
意大利网上药房:Farmacia 33
2020/01/27 全球购物
养成教育经验材料
2014/05/26 职场文书
本科毕业生自荐信
2014/05/26 职场文书
高中综合实践活动总结
2014/07/07 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
安全教育第一课观后感
2015/06/17 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书