框架目录:

整体思路:

采用excle数据驱动维护用例,数据依赖:两种实现方法case依赖与sql依赖,优先使用case依赖,

最终运行的用例是:

维护用例在datacase目录下:

涉及到用例信息新增/修改时,请先执行此脚本,目的是合并所有用例至run/datacase_all.xlsx

1.使用caseID关联,通过caseId找到对应的excle函数执行,并返回项目数据,通过dependkey:对象是json表达式,获取响应数据中对应的内容,最后组装为dict,与请求数据进行交互完成请求参数替换

2.sql依赖:在excle中维护对应的sql语句,框架会自动执行对应行的sql,然后使查询结果与请求数据进行交互,完成参数替换

流程图如下:

3.断言分为普通的字符串断言与sql断言,sql断言将sql的执行结果与当前用例的执行结果进行交互,完成最终的断言处理

相关代码实现:

用到的核心第三库:

openpyxl、demjson、jsonpath_rw、xlsxwriter、pandas、codecs、redis、pymongo、pymysql、request、ruamel.yaml

框架是作者业务时间的兴趣爱好完成的,也还有很多不完善的地方,例如用例依赖目前没做成实时的,现在是通过脚本先把所有的依赖数据全部生成好了在执行的,

框架某些模块借用了网上的其他框架,感谢提供的相关思路

项目已上传github:

地址 https://github.com/qtclm/AutoInterfaceTest_Datadepend

运行用例时,会询问是否需要执行数据依赖写入,需结合实际情况是否需要完成词操作,这个操作相对比较耗时,后续考虑使用多线程实现

2020.4.11最近更新:支持多种content_type:application/json,application/x-www-form-urlencoded,text/html,multipart/form-data,XMLHttpRequest,excle用例增加对应支持,支持自定义关键字,在对应的content下维护对应的关键字即可

注意:关键字不能重复,关键字不能重复,关键字不能重复

关键字维护文件config.yaml,示例:

如需新增content_type,则需要改动对应代码和维护config.yaml(同上):

如果对自动化测试有兴趣,欢迎一起交流,qq:248313385

python接口自动化框架-case依赖与SQL依赖以及SQL断言实现的更多相关文章

  1. python接口自动化框架

    接口测框架 安装教程 需要3.5及以上版本的python pip install -r requirements.txt 使用说明 运行manage.py创建项目 创建的项目在projects目录下 ...

  2. python接口自动化框架搭建

    一.在搭建接口自动化测试框架前,我觉得先需要想明白以下几点: ① 目前情况下,绝大部分接口协议是http,所以需要对http协议有个基本的了解,如:http协议请求.响应由哪些部分组成,常用的meth ...

  3. 【python接口自动化框架-unittest】如何传参数到下一个case

    1.前提 平时我们用unittest的时候,都知道每个test_ 都是相互独立的,但是很多现实情况是,我们下一个接口参数,可能会用到上一个接口返回的json字段,那么,我们怎么去实现呢 2.实例 1. ...

  4. 【python接口自动化框架-unittest】【一】unittest单元测试框架概念

    一.unittst单元测试框架 概念参考:https://docs.python.org/2/library/unittest.html 使用方法:import unittest (引入unittes ...

  5. python3+request接口自动化框架

    首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https:/ ...

  6. 转载:python + requests实现的接口自动化框架详细教程

    转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实现的接口自动化框架详细教程 前段时间由于公司测试方向的转型,由 ...

  7. python + requests实现的接口自动化框架详细教程

    前段时间由于公司测试方向的转型,由原来的web页面功能测试转变成接口测试,之前大多都是手工进行,利用postman和jmeter进行的接口测试,后来,组内有人讲原先web自动化的测试框架移驾成接口的自 ...

  8. python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  9. python接口自动化24-有token的接口项目使用unittest框架设计

    获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...

  10. Python+Pytest+Allure+Git+Jenkins接口自动化框架

    Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...

随机推荐

  1. PIL 和 python-opencv 从内存字节码中读取图片并转为np.array格式

    把某个RGB格式的图片以字节码的形式读入到内存中,然后使用PIL 和 CV2 来进行读写,并转成np.array 格式. 代码: from PIL import Image import cv2 im ...

  2. (持续更新)国内计算机领域相关的SCI和EI期刊,以及好中的SCI和EI期刊(不限国内外)

    好中的: SCI刊: EI刊: EI会议: 参考: CCF发布计算领域高质量科技期刊分级目录   国内的: SCI-Expanded   1. <Journal of Computer Scie ...

  3. flex 左右布局-----在手机端,当左侧宽度固定,右侧宽度自适应时,右侧会超出浏览器窗口的问题解决方案

    废话不多说:直接上代码解决问题: 父级: .parent { display: flex; flex-flow: row; } 子级: .left-child { width:100px; } .ri ...

  4. manim边学边做--点

    几何图形是manim中最重要的一类模块,manim内置了丰富的各类几何图形,本篇从最简单的点开始,逐个介绍manim中的几何模块. manim中点相关的模块主要有3个: Dot:通用的点 Labele ...

  5. 直接在jsp页面上使用flex标签

    1:去ADOBE下载FLEX的TAGLIB for JSP. http://download.macromedia.com/pub/labs/flex2_tag_library_jsp/flex2_t ...

  6. 7E头的那些事儿(帧格式分析实例)

    0. 前言 作为一名嵌入式工程师,经常需要通过UART与外设打交道,而对于串行总线来说,往往我们必须要进行帧同步.通常的做法是把信令包含在2个0x7E的中间. 除此之外还有HDLC.PPP等协议也会到 ...

  7. CF650D Zip-line

    CF650D Zip-line 大概题面: 给定一个长度为 \(n\) 的序列以及\(m\)个操作,每个操作形如" \(a_i,b_i\) ",表示将序列中第 \(a_i\) 个数 ...

  8. 猜数游戏[USACO2008] Haybale Guessing G

    $ Haybale \ Guessing \ G $ (猜数游戏) 解题报告 \(Diffculty:\) \(\color{purple}省选/NOI-\) 传送门1:(HZOIER) 传送门2:( ...

  9. Pandas从入门到放弃

    公众号本文地址:https://mp.weixin.qq.com/s/mSkA5KvL1390Js8_1ZBiyw Pandas简介 Pandas是Panel data(面板数据)和Data anal ...

  10. Linux firewalld 的用法

    大乌龙事件之防火墙作祟: 在我的初始化环境中 selinux.iptables.firewalld 是关闭的, 莫名的firewalld 是没有关闭的这是我在安装完docker后一段时间后部署jenk ...