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中声明只包含一个元素的元组数据方法
Aug 25 Python
python实现调用其他python脚本的方法
Oct 05 Python
浅析Python中的多条件排序实现
Jun 07 Python
python数据处理实战(必看篇)
Jun 11 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
Python 支付整合开发包的实现
Jan 23 Python
Django REST Swagger实现指定api参数
Jul 07 Python
python 实现批量图片识别并翻译
Nov 02 Python
python自然语言处理之字典树知识总结
Apr 25 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
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
CI框架常用函数封装实例
2016/11/21 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
原生js调用json方法总结
2018/02/22 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
python单线程实现多个定时器示例
2014/03/30 Python
Python获取文件ssdeep值的方法
2014/10/05 Python
python中引用与复制用法实例分析
2015/06/04 Python
python如何在终端里面显示一张图片
2016/08/17 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
房屋租赁协议书
2014/04/10 职场文书
学生个人评语大全
2015/01/04 职场文书
瘦西湖导游词
2015/02/03 职场文书
鉴史问廉观后感
2015/06/10 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电