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

Python+requests实现接口自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

1、理解什么是接口

接口一般来说有两种:一种是程序内部的接口,一种是系统对外的接口

系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。

程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

2、常见的接口

1)webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等;

2)http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等;

3、requests接口自动化基本流程

requests 是一个用于发送 HTTP 请求的 Python 库,它非常适合用于接口测试。以下是如何使用 requests 进行接口测试的基本步骤:

1)安装 requests:

如果你还没有安装 requests,可以使用 pip 进行安装:

pip install requests

2)发送 GET 请求:

import requests  response = requests.get('https://api.example.com/data')  
print(response.text)

3)发送 POST 请求:

import requests  data = {  'key1': 'value1',  'key2': 'value2'  
}  response = requests.post('https://api.example.com/data', data=data)  
print(response.text)

4)处理 JSON 数据:

如果 API 返回 JSON 数据,你可以使用 response.json() 方法将其解析为 Python 对象:

response = requests.get('https://api.example.com/data')  
data = response.json()  
print(data)

5)检查响应状态码:

你可以检查 HTTP 响应的状态码以确保请求成功:​​​​​​​


if response.status_code == 200:  print("请求成功")  
else:  print(f"请求失败,状态码:{response.status_code}")

6)添加请求头:

如果需要添加自定义的请求头,如 Authorization,可以这样做:


headers = {  'Authorization': 'Bearer YOUR_TOKEN'  
}  response = requests.get('https://api.example.com/data', headers=headers)

​​​​​​​7)错误处理:

如果请求失败,requests 会抛出一个异常。你可以使用 try-except 结构来处理这些异常:

try:  response = requests.get('https://api.example.com/data')  response.raise_for_status()  # 如果不是 2xx 响应,会抛出 HTTPError 异常  
except requests.exceptions.HTTPError as errh:  print ("Http Error:",errh)  
except requests.exceptions.ConnectionError as errc:  print ("Error Connecting:",errc)   
except requests.exceptions.Timeout as errt:  print ("Timeout Error:",errt)  
except requests.exceptions.RequestException as err:  print ("Something Else:",err)

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

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

相关文章:

Python+requests实现接口自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传…...

java------------常用API preiod duration 计算时间差

1,preiod 如果末天数比初天数小,需要进一位 package API;import java.time.LocalDate; import java.time.Period;public class preiod {public static void main(String[] args) {// 计算时间差// LocalDate获取对象其中的一个方法LocalDate d1 LocalD…...

Android水波纹效果

Android水波纹效果 需要到水波纹效果的场景还蛮少的。万一刚好你需要呢 一、思路: 自定义组件SpreadView 二、效果图: 看视频更直观点: Android轮子分享-水波纹效果 三、关键代码: public class SpreadView extends View {pr…...

yolov8 转华为昇腾om脚本

目录 yolov8 转华为昇腾 om脚本 测试ok 推理demo: yolov8 转华为昇腾 om脚本 测试ok import sys import osos.chdir(os.path.dirname(os.path.abspath(__file__)))import torchcurrent_dir = os.path.dirname(os.path.abspath(__file__))paths = [os.path.abspath(__file__)…...

【人工智能】从基础到实践:用Python和PyTorch实现深度学习图像分割模型

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图像分割是计算机视觉中的核心任务之一,旨在将图像划分为具有语义意义的区域,在自动驾驶、医疗影像分析等领域有广泛应用。本篇文章将从图像分割的基础知识出发,详细讲解分割任务的目标、评价指标以及常…...

AI绘画设计实战-Day2

Stable Diffusion 提示词前缀 FF,(masterpiece:1.2),best quality,highres,extremely detailed CG,perfect lighting,8k wallpaper,anime,comic,game CG, FF,(杰作:1.2),最高质量,高分辨率,极其…...

详解LeetCode地下城游戏(动态规划)——区分两种状态表示形式

地下城游戏 题目链接:174. 地下城游戏 状态表示: 按照以往题的表示,dp[i][j]表示:从起点(0,0)位置到达(i,j)位置时,所需的最小初始健康值。但是…...

CV(3)--噪声滤波和特征

前言 仅记录学习过程,有问题欢迎讨论 图像噪声(需要主动干扰的场景): 添加高斯噪声:概率密度函数服从高斯分布的一类噪声 通过设置sigma和mean生成符合高斯分布的随机数,然后计算输出像素,放缩…...

[C++]常对象、常对象成员、指向对象的常指针、指向常对象的指针变量以及对象的常引用

一、 常对象 1.定义: 一个常对象就是声明为常量的对象。我们不能改变这个对象的任何成员数据。具体来说,它是通过const关键字来声明的。 2.语法格式: const 类名 对象名;3.代码示例: class MyClass { public:int x;void setX…...

Spring Boot微服务应用实战:构建高效、可扩展的服务架构

在当今的软件开发领域,微服务架构凭借其高度的灵活性、可扩展性和可靠性,已成为众多企业的首选。而Spring Boot,作为Spring框架的一个子项目,以其简洁的API、快速的应用启动以及内嵌的Servlet容器等特点,成为了构建微服…...

如何通过 Windows 自带的启动管理功能优化电脑启动程序

在日常使用电脑的过程中,您可能注意到开机后某些程序会自动运行。这些程序被称为“自启动”或“启动项”,它们可以在系统启动时自动加载并开始运行,有时甚至在后台默默工作。虽然一些启动项可能是必要的(如杀毒软件)&a…...

力扣每日一题 - 1812. 判断国际象棋棋盘中一个格子的颜色

题目 还需要你前往力扣官网查看详细的题目要求 地址 1.给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。2.如果所给格子的颜色是白色,请你返回 true,如果是黑色&#xff…...

Python subprocess.run 使用注意事项,避免出现list index out of range

在执行iOS UI 自动化专项测试的时候,在运行第一遍的时候遇到了这样的错误: 2024-12-04 20:22:27 ERROR conftest pytest_runtest_makereport 106 Test test_open_stream.py::TestOpenStream::test_xxx_open_stream[iPhoneX-xxx-1-250] failed with err…...

UI自动化测试框架:PO模式+数据驱动

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1. PO 设计模式简介 什么是 PO 模式? PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Pa…...

第四十六篇 Vision Transformer论文翻译

论文连接:https://arxiv.org/abs/2010.11929 GitHub:https://github.com/google-research/vision_transformer 摘要 虽然Transformer架构已成为自然语言处理任务的实际标准,但其在计算机视觉中的应用仍然有限。在计算机视觉中,注意力机制要么与卷积网络结合使用,要么在保…...

如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP

01-设置git的用户名和邮箱 git config --global user.name "suwenhao" git config --global user.email "2487872782qq.com"这里不设置的话后面在第5步的repo配置中还是会要求输入,而且以后进行相关操作都要输入,不妨现在就进行配置…...

redis数据结构和内部编码及单线程架构

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. 数据结构和内部编码 Redis会在合适的场景选择合适的内部编码 我们可以通过objectencoding命令查询内部编码 : 2. 单线程架构 …...

2412d,d的6月会议

信息:gtkD的文档位置 原文 总结 DMDARM后端 Razvan问Walter他对DMD的ARM后端的分发,并想知道他是否考虑过其他选择,如整合DMD前端与LDC后端. Walter说,人们写信告诉他,他们喜欢使用DMD,因为它体积小,速度快.多年来,就要求他实现ARM后端. 有的人想写一个,但后来因为太难或太耗…...

提升网站流量的关键:AI在SEO关键词优化中的应用

内容概要 在当今数字时代,提升网站流量已成为每个网站管理员的首要任务。而人工智能的技术进步,为搜索引擎优化(SEO)提供了强有力的支持,尤其是在关键词优化方面。关键词是连接用户需求与网站内容的桥梁,其…...

【模型对比】ChatGPT vs Kimi vs 文心一言那个更好用?数据详细解析,找出最适合你的AI辅助工具!

在这个人工智能迅猛发展的时代,AI聊天助手已经深入我们的工作与生活。你是否曾在选择使用ChatGPT、Kimi或是百度的文心一言时感到一头雾水?每款AI都有其独特的魅力与优势,那么,究竟哪一款AI聊天助手最适合你呢?本文将带…...

利润表在Zebra BI 中的应用(一)

效果如图。本案例采用极简式对比 需要注意的是:如原始数据是一维的,则需要确保比较的各年份所含项目一致,缺失的也要占位,否则会出错! 2022% of Revenue(占收入%) DIVIDE( [值_2022], CALCULA…...

12.09 C++作业2

利用函数重载&#xff0c;实现对整形数组的冒泡排序&#xff0c;对浮点型数组的冒泡排序 #include <iostream>using namespace std;int maopao(int(&ra)[10]) {//求数组长度int len sizeof(ra)/sizeof(ra[0]);int i,j,t;for(int i0;i<len;i){cin >>ra[i];}…...

MongoDB性能监控工具

mongostat mongostat是MongoDB自带的监控工具&#xff0c;其可以提供数据库节点或者整个集群当前的状态视图。该功能的设计非常类似于Linux系统中的vmstat命令&#xff0c;可以呈现出实时的状态变化。不同的是&#xff0c;mongostat所监视的对象是数据库进程。mongostat常用于…...

如何防范顶级应用程序安全威胁

如今的网络攻击数量是五年前的两倍多。因此&#xff0c;掌握最新的应用程序安全威胁对于防止数据泄露、经济损失和声誉受损至关重要。您还需要实施强大的安全实践&#xff0c;以保护应用程序免受最常见和最危险的威胁。 顶级应用程序安全威胁......以及如何防范这些威胁 1. 注…...

Java版-图论-拓扑排序与有向无环图

拓扑排序 拓扑排序说明 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列…...

汽车一键启动开关 、一键启动按键 、一键启动按钮

‌汽车一键启动按钮是智能汽车的重要部分&#xff0c;通常用于启动和关闭引擎‌。 ‌具体功能‌&#xff1a; ‌启动引擎‌&#xff1a;在许多现代汽车中&#xff0c;一键启动按键取代了传统的钥匙启动方式。只需轻轻按下一键启动按钮&#xff0c;车辆电源即被接通&#xff0c…...

SWIRL:有望成为2025年顶级AI搜索引擎

现在几乎每家公司都会有内部文档系统&#xff0c;如阿里的语雀、钉钉&#xff0c;字节的飞书&#xff0c;Confluence&#xff0c;印象笔记等等都可以提供给B端在局域网部署。因此&#xff0c;如果能把搜索功能做得高效&#xff0c;就能提高自家产品的竞争力。 想象一下&#xf…...

QT requested database does not belong to the calling thread.线程中查询数据报错

QT requested database does not belong to the calling thread.线程中查询数据报错 QString name "ttx"; QSqlQueryModel* sql_model; QString sql_comm QString("select * from dssb_moddve_loddt_tab where name%1").arg(name); sql_model->set…...

活着就好20241210

亲爱的朋友们&#xff0c;大家早上好&#xff01;&#x1f31e; 今天是10号&#xff0c;星期二&#xff0c;2024年12月的第十天&#xff0c;同时也是第50周的开始&#xff0c;农历甲辰[龙]年十一月初六日。在这晨光熹微的美好时刻&#xff0c;愿那温暖而明媚的阳光轻轻拂过你的…...

Flutter动画(二)内建隐式动画Widget

动画效果介绍中给出了选择动画的决策树&#xff1a; 使用动画框架不在我们讨论的话题内。flutter支持的动画包括隐式动画和显式动画。 隐式动画和显式动画 隐式动画和显示动画是两种不同的动画实现方式&#xff0c;它们的主要区别在于控制权和动画的重复性。 隐式动画&#…...

【人工智能基础08】卷积神经网络习题:卷积神经网络计算、图像填充、卷积的表达与设计

文章目录 1. 卷积核计算2. 卷积神经网络计算3. 卷积核关注的特征问题解答水平边缘检测与水平条纹检测45度条纹检测 4. 图像检测5. 卷积网络是特殊的全连接网络6. 输出矩阵的三种填充方法7. 卷积设计8.9 成像公式10. 卷积的计算次数11. 全连接层的计算 1. 卷积核计算 卷积操作过…...

前端-使用vue-cli脚手架创建项目

1.下载node&#xff1a;2.下载完检查是否安装成功 在cmd中输入&#xff1a;node --version或node -v 再在cmd中输入: npm -v npm默认的仓库地址是在国外&#xff0c;速度慢&#xff0c;所以设置淘宝镜像&#xff0c;速度就提升了&#xff0c;不设淘宝镜像也可以。 3.设置…...

功能篇:JAVA实现自定义注解

在Java中创建自定义注解可以通过使用interface关键字来完成。自定义注解可以包含元素&#xff08;即参数&#xff09;&#xff0c;并且你可以指定这些元素的默认值、保留策略以及应用的目标。以下是实现自定义注解的基本步骤和示例代码。 ### 自定义注解的组成部分 1. **元素…...

调度系统:Temporal 在大数据领域的局限分析

在大数据领域的任务管理中&#xff0c;Temporal 和 Apache Airflow 各有优劣。要选择更适合的工具&#xff0c;需根据具体需求&#xff08;如任务复杂性、依赖管理、分布式能力等&#xff09;权衡。 以下是两者的比较及 Temporal 在大数据领域的局限分析&#xff1a; Tempora…...

保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码

一、获取二维码 uni.request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${getStorage("token")},responseType: "arraybuffer",method: "POST",data: {path: "/pages/index/index"},success(res) {// 转换为 Uint…...

不是“我应该做什么”,而是“我想做什么”

1. 识别内心的渴望 首先&#xff0c;我们需要识别自己真正的愿望和激情所在。这可能需要一些时间和自我反思。问自己&#xff1a;在没有任何外界压力的情况下&#xff0c;我真正想做的是什么&#xff1f;是赚钱、生活、旅行、追星&#xff0c;还是其他什么&#xff1f;识别这些…...

【openwrt】openwrt-21.02 基于IP地址使用ipset实现策略路由操作说明

openwrt版本信息 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=r0-6bf6af1d5 DISTRIB_TARGET=mediatek/mt7981 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-SNAPSHOT r0-6bf6af1d5 DISTRIB_TAINTS=no-all busybox override …...

Linux内核Kernel启动过程

一、内核启动的基本流程 1. 启动加载程序 (Bootloader) 启动加载程序&#xff08;如GRUB、LILO、syslinux等&#xff09;负责将内核映像从存储设备加载到内存中&#xff0c;并准备好内核启动所需的环境。 加载内核映像&#xff1a;启动加载程序将压缩的内核映像&#xff08;如…...

苍穹外卖复习(持续更新)

文章目录 苍穹外卖复习Day01Day02&#xff08;新增员工&#xff09; 苍穹外卖复习 Day01 Day02&#xff08;新增员工&#xff09;...

子网划分实例

看到有人问这个问题&#xff1a; 想了一下&#xff0c;这是一个子网划分的问题&#xff1a; 处理方法如图&#xff1a; 这是一个子网划分的问题 设备1用三层交换机&#xff0c;端口设置为路由模式&#xff0c;设备2和设备3为傻瓜交换机模式 设备2和设备3下挂设备都是26为掩码&…...

二进制部署Prometheus+grafana+alertmanager+node_exporter

Prometheus 是一个开源的监控和告警工具包&#xff0c;旨在提供高可靠性和可扩展性。它最初由 SoundCloud 开发&#xff0c;现已成为云原生计算基金会&#xff08;CNCF&#xff09;的一部分。以下是 Prometheus 的一些关键特性和概念&#xff1a; 1. **时间序列数据库**&#…...

数据结构——图(遍历,最小生成树,最短路径)

目录 一.图的基本概念 二.图的存储结构 1.邻接矩阵 2.邻接表 三.图的遍历 1.图的广度优先遍历 2.图的深度优先遍历 四.最小生成树 1.Kruskal算法 2.Prim算法 五.最短路径 1.单源最短路径--Dijkstra算法 2.单源最短路径--Bellman-Ford算法 3.多源最短路径--Floyd-…...

Android APK打包流程

文章目录 前言1. 资源打包&#xff08;通过 AAPT&#xff09;2. 处理 AIDL 文件3. Java 源代码编译4. Dex 转换5. APK 打包6. APK 签名7. APK 对齐总结 前言 Android APK 打包过程包括多个关键步骤&#xff0c;每个环节都提供了不同的操作机会。开发者可以在这些步骤中进行自定…...

《Liunx系统》之基础操作命令

目录 简介 1. 文件和目录操作 1.1 查看当前目录 1.2 列出目录内容 1.3 切换目录 1.4 创建目录 1.5 删除目录 1.6 创建文件 1.7 删除文件 2. 文件内容操作 2.1 查看文件内容 2.2 搜索文件内容 2.3 复制文件 2.4 移动文件 3. 系统信息和进程管理 3.1 查看系统信息…...

linux 编译、交叉编译 opencv+ffmpeg 为动态库

文章目录 x86 编译先编译 ffmpeg再编译 opencv验证 opencv 的安装是否链接了 ffmpeg 交叉编译&#xff08;目标系统 armv8 即 arrch64&#xff09;准备交叉编译工具链&#xff08;arm 版 gcc、g&#xff09;先编译 ffmpeg再编译 opencv验证 opencv 的安装是否链接了 ffmpeg 参考…...

Robust Univariate Mean Estimation算法简介

Robust Univariate Mean Estimation 是一种统计算法&#xff0c;主要用于在单变量场景中估计样本的均值&#xff0c;同时对异常值&#xff08;outliers&#xff09;具有鲁棒性。传统的均值估计使用样本的算术平均值&#xff0c;但它对异常值高度敏感。为了缓解这个问题&#xf…...

区块链智能合约( solidity) 安全编程

引言&#xff1a;本文由天玄链开源开发者提供&#xff0c;欢迎报名公益天玄链训练营 https://blockchain.163.com/trainingCamp 一、重入和竞态 重入和竞态在solidity 编程安全中会多次提及&#xff0c;历史上也造成了重大的损失。 1.1 问题分析 竞态的描述不严格&#xf…...

断点续传【授权访问】

本文介绍如何使用STS以及签名URL临时授权访问OSS资源。 授权方式 OSS支持多种授权方式进行客户端授权&#xff0c;以下提供了三种不同授权方式的简要说明&#xff0c;并提供了使用相应授权方式实现简单上传的代码示例&#xff0c;您可以根据使用场景对认证和授权的要求&#…...

中华国际游艇会出席第六届地博会助世界酒中国菜地理标志走向全球

中华国际游艇会积极参与第六届知交会暨地博会&#xff0c;助力世界酒中国菜地理标志产品走向全球 第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会于2024年12月9日至11日在中新广州知识城盛大举行。此次盛会汇聚了众多行业精英和企业代表&#xff0c;共同探…...

Python爬虫——HTML中Xpath定位

Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置&#xff0c;进而将其写入到本地或者数据库中。 学习Xpath爬虫&#xff0c;我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…...