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脚本
Sep 01 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
Python实现自动为照片添加日期并分类的方法
Sep 30 Python
python实现kMeans算法
Dec 21 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
python爬虫基础教程:requests库(二)代码实例
Apr 09 Python
Python文件操作函数用法实例详解
Dec 24 Python
python字典按照value排序方法
Dec 28 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
基于python制作简易版学生信息管理系统
Apr 20 Python
python实现简单区块链结构
Apr 25 Python
Python词云的正确实现方法实例
May 08 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 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
Display SQL Server Version Information
2007/06/21 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
Python学习思维导图(必看篇)
2017/06/26 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
详解用python计算阶乘的几种方法
2019/08/14 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
自我推荐书
2013/12/04 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
课外小组活动总结
2014/08/27 职场文书
小学庆六一活动总结
2014/08/28 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js