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 相关文章推荐
在java中如何定义一个抽象属性示例详解
Aug 18 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
python字典值排序并取出前n个key值的方法
Oct 17 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
Pycharm Git 设置方法
Sep 15 Python
python爬虫中抓取指数的实例讲解
Dec 01 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
Matplotlib animation模块实现动态图
Feb 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
php删除左端与右端空格的方法
2014/11/29 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
拖动一个HTML元素
2006/12/22 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
使用javascript做在线算法编程
2018/05/25 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python re模块的高级用法详解
2018/06/06 Python
django项目搭建与Session使用详解
2018/10/10 Python
python实现简易数码时钟
2021/02/19 Python
python中强大的format函数实例详解
2018/12/05 Python
python Web flask 视图内容和模板实现代码
2019/08/23 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
水上运动奥特莱斯:Wasterports Outlet
2018/08/08 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
关于运动会的口号
2014/06/07 职场文书
物业管理专业自荐信
2014/07/01 职场文书
师德师风个人总结
2015/02/06 职场文书
漂亮妈妈观后感
2015/06/08 职场文书