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脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
python3学生名片管理v2.0版
Nov 29 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
Python PO设计模式的具体使用
Aug 16 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
Jun 18 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
Python获取指定网段正在使用的IP
Dec 14 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 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 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
php之可变变量的实例详解
2017/09/12 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python调用C++程序的方法详解
2017/01/24 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
django实现用户注册实例讲解
2019/10/30 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
基于keras中的回调函数用法说明
2020/06/17 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
白血病募捐倡议书
2014/05/14 职场文书
班级文化建设标语
2014/06/23 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL