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实现的防DDoS脚本
Feb 08 Python
Fabric 应用案例
Aug 28 Python
Python中装饰器学习总结
Feb 10 Python
opencv python 2D直方图的示例代码
Jul 20 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
python 数据提取及拆分的实现代码
Aug 26 Python
python实现监控阿里云账户余额功能
Dec 16 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
python3中确保枚举值代码分析
Dec 02 Python
python解决12306登录验证码的实现
Apr 18 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
python实现简易动态时钟
2018/11/19 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
2014世界杯球队球队口号
2014/06/05 职场文书
淘宝店策划方案
2014/06/07 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
2014年转正工作总结
2014/11/08 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS