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转换HTML到Text纯文本的方法
Jan 15 Python
python集合用法实例分析
May 30 Python
利用Python破解验证码实例详解
Dec 08 Python
python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解
Nov 24 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Python requests发送post请求的一些疑点
May 20 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
解决Python3.5+OpenCV3.2读取图像的问题
Dec 05 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
Python os库常用操作代码汇总
Nov 03 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 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 define的第二个参数使用方法
2013/11/04 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
校长岗位职责
2013/11/26 职场文书
廉洁自律演讲稿
2014/05/22 职场文书
关于美容院的活动方案
2014/08/14 职场文书
优秀教师单行材料
2014/12/16 职场文书
七年级地理教学计划
2015/01/22 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
公司费用报销管理制度
2015/08/04 职场文书
2019年妇科护士的自我鉴定(3篇)
2019/09/26 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python