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中变量交换的例子
Aug 25 Python
理解Python中的With语句
Feb 02 Python
举例讲解Python中的算数运算符的用法
May 13 Python
Python中一些不为人知的基础技巧总结
May 19 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
使用python实现画AR模型时序图
Nov 20 Python
Python如何省略括号方法详解
Mar 21 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
Python decorator拦截器代码实例解析
Apr 04 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 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速度全攻略
2006/10/09 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
2015/04/14 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
jQuery横向擦除焦点图特效代码分享
2015/09/06 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
form表单序列化详解(推荐)
2017/08/15 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
Python使用requests发送POST请求实例代码
2018/01/25 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python实现归并排序算法
2018/11/22 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python MD5加密的示例
2020/10/19 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
超市商业计划书
2014/05/04 职场文书
教师个人读书活动总结
2014/07/08 职场文书
十佳党员事迹材料
2014/08/28 职场文书
法人授权委托书样本
2014/09/19 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
医生个人年终总结
2015/02/28 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏