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判定IP地址合法性的三种方法
Mar 06 Python
python opencv3实现人脸识别(windows)
May 25 Python
浅谈Python中的bs4基础
Oct 21 Python
详解python调用cmd命令三种方法
Jul 08 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
基于Python中的yield表达式介绍
Nov 19 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Python selenium如何打包静态网页并下载
Aug 12 Python
Python性能测试工具Locust安装及使用
Dec 01 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代码
2007/03/08 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP实现验证码校验功能
2017/11/16 PHP
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
vue实现通讯录功能
2018/07/14 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
javascript自定义右键菜单插件
2019/12/16 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
django Serializer序列化使用方法详解
2018/10/16 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
django 实现简单的插入视频
2020/04/07 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
国旗下演讲稿
2014/05/08 职场文书
乡镇党委书记个人整改措施
2014/09/15 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
刑事附带民事代理词
2015/05/25 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书