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的logging模块在stdout输出的两种方法
May 17 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
python爬取淘宝商品详情页数据
Feb 23 Python
通过Python模块filecmp 对文件比较的实现方法
Jun 29 Python
python里运用私有属性和方法总结
Jul 08 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
python 实现mysql自动增删分区的方法
Apr 01 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
Node.js实现数据推送
2016/04/14 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
vue路由跳转传递参数的方式总结
2020/05/10 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
python hough变换检测直线的实现方法
2019/07/12 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
J2EE面试题集锦(附答案)
2013/08/16 面试题
毕业论文评语大全
2014/04/29 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
JavaScript实现栈结构详细过程
2021/12/06 Javascript
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
python中urllib包的网络请求教程
2022/04/19 Python