当前位置: 首页 > news >正文

接口自动化测试yaml+requests+allure技术,你学会了吗?

前言

接口自动化测试是在软件开发过程中常用的一种测试方式,通过对接口进行自动化测试,可以提高测试效率、降低测试成本。在接口自动化测试中,yaml、requests和allure三种技术经常被使用。

一、什么是接口自动化测试

接口自动化测试是指通过编写自动化脚本来模拟用户请求系统接口,并对返回结果进行验证和比对的过程。它可以帮助测试人员快速检查接口是否正常工作,并及时发现和修复潜在问题。

二、为什么要进行接口自动化测试

提高测试效率:与手动测试相比,接口自动化测试可以更快地执行测试,从而加快测试速度。

降低测试成本:自动化测试可以大大减少测试人员的工作量,并减少测试需要的时间与资源。

更好的测试覆盖率:通过自动化测试,可以对每一个接口进行全面测试,在保证测试质量的同时,提高了测试覆盖率。

方便持续集成:接口自动化测试可以方便地与持续集成工具(如Jenkins等)结合,实现自动化构建和测试。

三、接口自动化测试的流程

接口自动化测试的主要流程包括:

定义测试用例和测试数据:根据接口文档和需求规格书,定义需要进行测试的接口以及对应的测试用例和测试数据。

编写自动化脚本:使用yaml语言编写自动化脚本,模拟用户发送请求并对返回结果进行验证和比对。

执行测试:执行自动化脚本,验证接口是否正常工作,并记录测试结果。

生成报告:使用allure技术生成测试报告,帮助测试人员更好地理解测试结果和找到问题。

四、yaml语言介绍

YAML是一种轻量级的数据序列化格式,它可以用来表示复杂数据结构,如列表、字典等。在接口自动化测试中,我们可以使用YAML来定义测试用例和测试数据。

以下是一个简单的YAML文件示例:

- name: get user infourl: /api/user/infomethod: GETheaders:Content-Type: application/jsonAuthorization: Bearer {token}params:id: 123expected:status_code: 200body:id: 123name: John Doeemail: john.doe@example.com

在这个例子中,我们通过YAML定义了一个名为“get user info”的测试用例,该用例向服务器发出GET请求,获取id为123的用户信息,并验证返回的状态码为200,返回的响应体中包含id、name和email三个字段。

五、requests库介绍

Requests是一个Python第三方库,用于发送HTTP请求。在接口自动化测试中,我们可以使用Requests库来模拟用户向服务器发送请求,并获取返回结果。

以下是一个简单的Requests代码示例:

import requestsurl = 'http://localhost:8080/api/user/info'
headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}
params = {'id': 123}response = requests.get(url, headers=headers, params=params)assert response.status_code == 200
assert response.json()['id'] == 123
assert response.json()['name'] == 'John Doe'
assert response.json()['email'] == 'john.doe@example.com'

在这个例子中,我们使用Requests库发送了一个GET请求,获取id为123的用户信息,并对返回结果进行验证和比对。

六、allure技术介绍

Allure是一款开源测试报告框架,它可以帮助

测试人员更好地记录和展示测试结果,包括测试用例的执行情况、错误信息、截图等。在接口自动化测试中,我们可以使用Allure来生成漂亮、易读的测试报告。

以下是一个简单的Allure代码示例:

import allure
import requests@allure.feature('用户管理')
def test_get_user_info():url = 'http://localhost:8080/api/user/info'headers = {'Content-Type': 'application/json', 'Authorization': 'Bearer {token}'}params = {'id': 123}with allure.step('发送请求'):response = requests.get(url, headers=headers, params=params)with allure.step('验证返回结果'):assert response.status_code == 200assert response.json()['id'] == 123assert response.json()['name'] == 'John Doe'assert response.json()['email'] == 'john.doe@example.com'allure.attach(requests.request.method, "请求方法")allure.attach(requests.request.url, "请求URL")allure.attach(str(requests.request.headers), "请求Headers")allure.attach(str(requests.request.body), "请求Body")allure.attach(str(response.status_code), "响应状态码")allure.attach(str(response.headers), "响应Headers")allure.attach(str(response.json()), "响应Body")

在这个例子中,我们使用Allure装饰器来标记测试用例的属性,如feature(测试用例所属模块)、step(测试用例步骤)、attach(附加信息),然后通过Allure的API将相关信息以HTML格式输出到测试报告中。

七、总结

接口自动化测试是一种重要的测试方式,可以提高测试效率、降低测试成本。在接口自动化测试中,yaml、requests和allure三种技术经常被使用。具体而言,我们可以通过YAML来定义测试用例和测试数据,使用Requests库来模拟用户向服务器发送请求,并获取返回结果,最后使用Allure技术生成漂亮、易读的测试报告。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

接口自动化测试yaml+requests+allure技术,你学会了吗?

前言 接口自动化测试是在软件开发过程中常用的一种测试方式,通过对接口进行自动化测试,可以提高测试效率、降低测试成本。在接口自动化测试中,yaml、requests和allure三种技术经常被使用。 一、什么是接口自动化测试 接口自动化测试是指通…...

android 获取局域网其他设备ip

Android 通过读取本地Arp表获取当前局域网内其他设备信息_手机查看arp-CSDN博客...

angular中使用 ngModel 自定义组件

要创建一个自定义的 Angular 组件,并使用 ngModel 进行双向数据绑定,您可以按照以下步骤操作: 创建自定义组件:首先,使用 Angular CLI 或手动创建一个新的组件。在组件的模板中,添加一个输入元素或其他适合…...

kubernetes pod日志查看用户创建

目录 1.创建用户 1.1证书创建 1.2创建用户 1.3允许用户登陆 1.4切换用户 1.5删除用户 2.RBAC 1.创建用户 1.1证书创建 进入证书目录 # cd /etc/kubernetes/pki创建key # openssl genrsa -out user1.key 2048 Generating RSA private key, 2048 bit long modulus .....…...

HTML5+CSSday4综合案例二——banner效果

bannerCSS展示图&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wi…...

关于红包雨功能的探索

【高并发优化手段】基于Springboot项目 【红包雨功能的】环境部署&#xff08;弹性伸缩、负载均衡、Redis读写分离、云服务器部署&#xff09; jemeter压测【2万用户每秒5次请求在30秒内处理完请求】 【红包雨压测】提供2万用户30秒内5次请求的并发服务支持 使用工厂模式、策略…...

【已解决】Python打包文件执行报错:ModuleNotFoundError: No module named ‘pymssql‘

【已解决】Python打包文件执行报错&#xff1a;ModuleNotFoundError: No module named pymssql 1、问题2、原因3、解决 1、问题 今天打包一个 tkinter pymssql 的项目的时候&#xff0c;打包过程很顺利&#xff0c;但是打开软件的时候&#xff0c;报错 ModuleNotFoundError: …...

华为云云耀云服务器L实例评测|测试CentOS的网络配置和访问控制

目录 引言 1 理解几个基础概念 2 配置VPC、子网以及路由表 3 配置安全组策略和访问控制规则 3.1 安全组策略和访问控制简介 3.2 配置安全组策略 3.3 安全组的最佳实践 结论 引言 在云计算时代&#xff0c;网络配置和访问控制是确保您的CentOS虚拟机在云环境中安全运行的…...

CSP模拟51联测13 B.狗

CSP模拟51联测13 B.狗 文章目录 CSP模拟51联测13 B.狗题目大意题目描述输入格式输出格式样例样例 1inputoutput 思路 题目大意 题目描述 小G养了很多狗。 小G一共有 n n n\times n nn 条狗&#xff0c;在一个矩阵上。小G想让狗狗交朋友&#xff0c;一条狗狗最多只能交一个…...

GEO生信数据挖掘(七)差异基因分析

上节&#xff0c;我们使用结核病基因数据&#xff0c;做了一个数据预处理的实操案例。例子中结核类型&#xff0c;包括结核&#xff0c;潜隐进展&#xff0c;对照和潜隐&#xff0c;四个类别。本节延续上个数据&#xff0c;进行了差异分析。 差异分析 计算差异指标step12 加载…...

JAVA-SpringBoot入门Demo用IDEA建立helloworld

使用编辑器IDEA做SpringBoot项目最近几年比较红红&#xff0c;作为JAVA语言翻身的技术&#xff0c;用户量激增。由于java平台原来的占有率&#xff0c;相比net core在某些方面更有优势。 我把本次我下载完成后Maven项目的过程记录下来了&#xff0c;仅供参考&#xff01; 安装J…...

Unity布料系统Cloth

Unity布料系统Cloth 介绍布料系统Cloth(Unity组件)组件上的一些属性布料系统的使用布料约束Select面板Paint面板Gradient Tool面板 布料碰撞布料碰撞碰撞适用 介绍 布料系统我第一次用是做人物的裙摆自然飘动&#xff0c;当时我用的是UnityChan这个unity官方自带的插件做的裙摆…...

漏电继电器 LLJ-630F φ100 导轨安装 分体式结构 LLJ-630H(S) AC

系列型号&#xff1a; LLJ-10F(S)漏电继电器LLJ-15F(S)漏电继电器LLJ-16F(S)漏电继电器 LLJ-25F(S)漏电继电器LLJ-30F(S)漏电继电器LLJ-32F(S)漏电继电器 LLJ-60F(S)漏电继电器LLJ-63F(S)漏电继电器LLJ-80F(S)漏电继电器 LLJ-100F(S)漏电继电器LLJ-120F(S)漏电继电器LLJ-125F(S…...

数据结构和算法(10):B-树

B-树&#xff1a;大数据 现代电子计算机发展速度空前&#xff0c;就存储能力而言&#xff0c;情况似乎也是如此&#xff1a;如今容量以TB计的硬盘也不过数百元&#xff0c;内存的常规容量也已达到GB量级。 然而从实际应用的需求来看&#xff0c;问题规模的膨胀却远远快于存储能…...

VR会议:远程带看功能,专为沉浸式云洽谈而生

随着科技的不断发展&#xff0c;VR技术已经成为当今市场上较为热门的新型技术之一了&#xff0c;而VR会议远程带看功能&#xff0c;更是为用户提供更加真实、自然的沉浸式体验。 随着5G技术的发展&#xff0c;传统的图文、视频这种展示形式已经无法满足消费者对信息真实性的需求…...

实验室管理系统LIMS

在数字化浪潮中&#xff0c;越来越多的企业开始有数字化转型的意识。对于实验室而言&#xff0c;数字化转型是指运用新一代数字技术&#xff0c;促进实验室业务、生产、研发、管理、服务、供应链等方面的转型与升级&#xff0c;实现实验室业务“人、机、料、法、环”的多维度发…...

开源ERP和CRM套件Dolibarr

什么是 Dolibarr &#xff1f; Dolibarr ERP & CRM 是一个现代软件包&#xff0c;用于管理您组织的活动&#xff08;联系人、供应商、发票、订单、库存、议程…&#xff09;。它是开源软件&#xff08;用 PHP 编写&#xff09;&#xff0c;专为中小型企业、基金会和自由职业…...

视频号双11激励政策,快来看一看

双十一即将来临&#xff0c;不少平台都公布了自己的双十一政策。这篇文章&#xff0c;我们来看看视频号推出的激励政策&#xff0c;看有哪些需要准备的。...

Maven最新版本安装及配置

Maven是一个Java项目管理和构建工具&#xff0c;它可以定义项目结构、项目依赖&#xff0c;并使用统一的方式进行自动化构建&#xff0c;是Java项目不可缺少的工具。 本章我们详细介绍如何使用Maven。 一、Maven是什么&#xff1f; 如果每一个项目都自己搞一套配置&#xf…...

探索ClickHouse——使用MaterializedPostgreSQL同步PostgreSQL数据库

安装PostgreSQL sudo apt install postgresql修改配置 sudo vim /etc/postgresql/14/main/postgresql.conf 解开并修改wal_level 的配置项 wal_level logical 重启服务 /etc/init.d/postgresql restartRestarting postgresql (via systemctl): postgresql.service AUTHENTI…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益&#xff08;IG&#xff09; 分类器设计贝叶斯理论&#xff1a;线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别&#xff0c; 有单标签多类别文本分类和多…...