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里对list中的整数求平均并排序
Sep 12 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
Python实现的读取/更改/写入xml文件操作示例
Aug 30 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
tensorflow模型转ncnn的操作方式
May 25 Python
python语言中有算法吗
Jun 16 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python爬虫之爬取二手房信息
Apr 27 Python
python基于opencv批量生成验证码的示例
Apr 28 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
浅析php单例模式
2014/11/25 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
jQuery1.6 使用方法一
2011/11/23 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
js单词形式的运算符
2014/05/06 Javascript
常用jQuery代码分享
2015/07/14 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
彻彻底底地理解Python中的编码问题
2018/10/15 Python
python 接收处理外带的参数方法
2018/12/03 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
tensorflow 模型权重导出实例
2020/01/24 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
中专自我鉴定
2014/02/05 职场文书
大学生自我鉴定书
2014/03/24 职场文书
新闻发布会策划方案
2014/06/12 职场文书
授权委托书格式范文
2014/08/02 职场文书
2014年个人售房协议书
2014/10/30 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
开学第一周总结
2015/07/16 职场文书
2019年教师入党申请书
2019/06/27 职场文书