打造高效接口测试:专栏介绍

在软件开发过程中,接口测试是非常重要的一环。它可以帮助我们确保系统的各个模块之间的交互是否正常,从而提高软件的质量和稳定性。本文将介绍如何使用Python编写一个自动化接口测试框架,包括框架对比、接口测试框架介绍、接口测试框架流程和接口测试框架代码结构等内容。

1 接口测试框架对比

unittest:

  • 不支持失败自动重新执行
  • 参数化依赖第三方库
  • HTMLTestRunner三方报告不够美观

pytest:

  • 支持失败自动重新执行
  • 参数化直接使用自带@pytest.mark.parametrize装饰器
  • 兼容allure报告,报告美观并且功能强大
  • 兼容unittest测试框架

2 接口测试框架介绍

Pytest测试框架:

  • 简单灵活,容易上手,文档丰富
  • 支持参数化
  • 很多第三方插件,运行失败重复运行、报告等

Requests:

  • 流行的接口http(s)请求工具
  • Assert断言
  • 结果验证

Yaml:

  • Yaml是一种所有编程语言可用的友好的数据序列化标准
  • 语法和其他高阶语言类似,并且可以简单表达字典、列表和其他基本数据类型的形态

Allure:

  • 一款非常轻量级并且非常灵活的开源测试报告生成框架
  • Allure是一个独立的报告插件,生成美观易读的报告,它支持绝大多数测试框架,例如TestNG、Pytest、JUint等
  • 它简单易用,易于集成Jenkins
  • 邮件报告
  • 运行结果发送报告

Jenkins+Docker:

  • Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要
  • Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上

3 接口测试框架流程

Requests实现接口调用:使用Requests库实现对接口的调用,获取接口返回的数据。

Yaml/Excel遍历测试用例:使用Yaml或Excel文件存储测试用例数据,通过遍历的方式执行测试用例。

结果断言验证:使用Assert断言方法进行结果验证,确保接口返回的数据符合预期。

生成测试报告:使用Allure或其他测试报告生成工具生成美观易读的测试报告。

自动发送邮件:将测试报告发送到指定的邮箱,方便团队成员查看和分析。

集成jenkins自动化接口测试:将接口测试框架集成到Jenkins中,实现自动化的接口测试和持续集成。

4 接口测试框架代码结构

├── common          # 公共模块,存放通用的工具函数和配置文件等
├── config          # 配置模块,存放配置文件和环境变量等
├── data            # 数据模块,存放测试数据和报告数据等
├── logs            # 日志模块,存放日志文件和日志处理函数等
├── pytest.ini      # Pytest配置文件,用于配置pytest的相关选项和插件等
├── report          # 报告模块,存放生成测试报告的相关函数和模板等
├── requirements.txt # 依赖管理文件,列出项目所需的第三方库和版本等信息
└── run.py          # 主程序入口文件,用于启动接口测试框架并执行相关任务等
├── testcase        # 测试用例模块,存放具体的接口测试用例和测试数据等
└── utils           # 工具模块,存放常用的工具函数和辅助类等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

原理图中VCC、VDD、VEE、VSS、VBAT各表示什么意思

一、名词解析 (1)VCC:Ccircuit 表示电路的意思, 即接入电路的电压 (2)VDD:Ddevice 表示器件的意思, 即器件内部的工作电压; (3)VSS:Sseries 表示公共连接的意思&#…

使用html+css+js+three.js写圣诞树

实现效果&#xff1a; <head><meta charset"UTF-8"><title>Musical Christmas Lights</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css"><sty…

网络编程:多进程和多线程编程

1. 多进程编程 1.1 fork #include <sys/types.h> #include <unistd.h> // 调用失败返回 -1 设置 errno pid_t fork( void );子进程返回 0&#xff0c;父进程返回子进程 PID&#xff1b; 信号位图被清除&#xff08;父进程的信号处理函数不再对新进程起作用&…

【网络编程】网络通信基础——简述TCP/IP协议

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、ip地…

sql_lab之sqli中的报错注入,less13

报错注入&#xff08;less-13&#xff09; 正常报错注入&#xff1a; 1.输入用户名和密码123 123显示登录错误 2.输入用户名和密码123’ 123显示登录错误 123后面有’)说明是’)注入 3.查询数据库名 1) and updatexml(<a><b></b></a>,concat(1111…

大数据知识图谱解码:从核心概念到技术实战

文章目录 大数据知识图谱解码&#xff1a;从核心概念到技术实战1. 概述什么是知识图谱知识图谱与自然语言处理的关系 2. 发展历程语义网络本体论大数据时代的知识图谱知识图谱与深度学习的融合 3. 研究内容知识图谱的建模与表示知识抽取知识图谱的融合与对齐知识图谱的推理知识…

KMP入门级别算法详解--终于解决了(next数组详解)

对于正常的字符串模式匹配&#xff0c;主串长度为m&#xff0c;子串为n&#xff0c;时间复杂度会到达O&#xff08;m*n&#xff09;&#xff0c;而如果用KMP算法&#xff0c;复杂度将会减少线型时间O&#xff08;mn&#xff09;。 设主串为ptr"ababaaababaa";&#…

Prometheus介绍和安装

Prometheus介绍和安装 1. Prometheus介绍 Prometheus&#xff08;普罗米修斯&#xff09;是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目&#xff0c;拥有非常活跃的开发人员和用户社区。为强调开源及独立维护&#xff0c;Prometheus于2016年加入云原生云…

P4 音频知识点——PCM音频原始数据

目录 前言 01 PCM音频原始数据 1.1 频率 1.2 振幅&#xff1a; 1.3 比特率 1.4 采样 1.5 量化 1.6 编码 02. PCM数据有以下重要的参数&#xff1a; 采样率&#xff1a; 采集深度 通道数 ​​​​​​​ PCM比特率 ​​​​​​​ PCM文件大小计算&#xff1a; ​…

[THUPC 2024 初赛] 二进制 (树状数组单点删除+单点查询)(双堆模拟set)

题解 题目本身不难想 首先注意到所有查询的序列长度都是小于logn级别的 我们可以枚举序列长度len&#xff0c;然后用类似滑动窗口的方法&#xff0c;一次性预处理出每种字串的所有出现位置&#xff0c;也就是开N个set去维护所有的位置。预处理会进行O(logn)轮&#xff0c;每…

KubeSphere金丝雀发布流量分布调节不生效(将所有流量按比例分配给灰度发布版本)

如题 金丝雀发布按照流量比例访问不能生效 1、自制应用生成的路由添加注释: nginx.ingress.kubernetes.io/service-upstream:"true" 2、项目网关开启 3、完成 以上&#xff0c;祝好。

什么是SpringMVC

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 SpringMVC之参数获取 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、概念二、Spring…

Tomcat远程调试

windows环境 写一个 startup-debug.bat&#xff0c;指定tomcat的根目录&#xff0c;端口自己定义 rem *******设置Tomcat目录*******-- set CATALINE_HOMED:\asd\A8-2\tomcat d: rem 8787为可用端口,为远程调试监听端口-- cd %CATALINE_HOME%/bin set JPDA_ADDRESS8787 set J…

5G核心网小百科:解锁数字未来的神奇密码

引言&#xff1a; 嘿&#xff0c;大家好&#xff01;今天我们要揭开一个数字魔法的奥秘&#xff0c;那就是5G核心网。这个网络的核心部分&#xff0c;其实蕴含了很多神奇的技术&#xff0c;它们如何点亮我们的数字未来呢&#xff1f;让我们一探究竟。 1. 服务化架构&#xff1…

IDEA必备常用快捷键

IDEA必备常用快捷键 Ctrl 快捷键介绍Ctrl F在当前文件进行文本查找Ctrl R在当前文件进行文本替换Ctrl Z撤销Ctrl Y删除光标所在行或者删除选中的行Ctrl D复制光标所在的行或者复制选中的内容,并把复制内容插到光标位置的下面Ctrl C复制光标所在的行或者复制选中的内容C…

Leetcode—445.两数相加II【中等】

2023每日刷题&#xff08;六十七&#xff09; Leetcode—445.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2…

RT-Smart elf 动态加载技术 : elf 加载原理与流程

前言 RT-Smart 类似于Linux,可以动态的加载与运行应用程序 elf 文件,也就是内核与应用可以分开,一个内核,多个应用,不同的应用可以按需加载执行 应用程序 elf 文件,有的是静态链接编译的,有的是动态链接编译的,动态链接编译的,elf 的运行依赖动态共享库 (.so) 本篇讲解…

蓝桥杯宝藏排序算法(冒泡、选择、插入)

冒泡排序: def bubble_sort(li): # 函数方式for i in range(len(li)-1):exchangeFalsefor j in range(len(li)-i-1):if li[j]>li[j1]:li[j],li[j1]li[j1],li[j]exchangeTrueif not exchange:return 选择排序: 从左往右找到最小的元素&#xff0c;放在起始位置…

Linux rm 命令

Linux rm&#xff08;英文全拼&#xff1a;remove&#xff09;命令用于删除一个文件或者目录。 语法 rm [options] name...参数&#xff1a; -i 删除前逐一询问确认。-f 即使原档案属性设为唯读&#xff0c;亦直接删除&#xff0c;无需逐一确认。-r 将目录及以下之档案亦逐一…

一个简单的 HTTP 请求和响应服务——httpbin

拉取镜像 docker pull kennethreitz/httpbin:latest 查看本地是否存在存在镜像 docker images | grep kennethreitz/httpbin:latest 创建 deployment&#xff0c;指定镜像 apiVersion: apps/v1 kind: Deployment metadata:labels:app: httpbinname: mm-httpbinnamespace: mm-…