一文2000字从0到1详解requests接口自动化测试!

news2024/12/23 16:05:14

前言

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

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)

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

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

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

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

相关文章

【JaveEE】——(手把手教你)用IDEA手搓一个定时器Timer

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:什么是定时器 二:IDEA中的定时器Timer 1:实例化Timer 2&#…

C语言-动态内存分配讲解

目录 ✨1.什么是动态内存分配 💕2.动态内存开辟函数 malloc ✨3.malloc函数的检查(两种方法) 💕4.动态内存释放函数 free ✨5.free 函数接收空指针 ✨6.为什么要释放动态内存 💕7.动态内存开辟函数calloc &#…

免杀笔记 ---> 一种有想法的Indirect-Syscall

今天来分享一下,看到的一种Indirect-Syscall,也是两年前的项目了,但是也是能学到思路,从中也是能感受到杀软对抗之间的乐趣!!说到乐趣,让我想起看到过一位大佬的文章对"游褒禅山记"的…

学习RocketMQ

RocketMQ是一个分布式消息和流平台,它被设计为具有简单和可复制的架构,同时具有高性能和高可靠性。以下是RocketMQ从入门到精通的一些关键概念和示例代码。 1、安装和启动RocketMQ 1.1、下载并解压RocketMQ二进制文件。 wget https://archive.apache.…

JavaWeb--08BeanUtils:自定义转换器

在07创建了表单,但是获取网页信息的java代码太繁杂了,每次获取数据都要书写依次如下的: 重新创建一个web工程项目test1010---需要配置tomacat,具体传送门:CSDN 配置好了如下: 在里面web目录下创建一个reg…

JVM 基础知识(基础组成 )

使用场景 线上系统突然宕机,系统无法访问,甚至直接 O0M;线上系统响应速度太慢,优化系统性能过程中发现 CPU 占用过高,原因也许是因为 JVM的 GC 次数过于频繁;新项目上线,需要设置 JVM的各种参数;等 JDK / JRE / JVM JDK JDK 全称 ( Java Development Kit ) ,是 Ja…

Git 使用方法

简介 Git常用命令 Git 全局设置 获取Git 仓库 方法二用的比较多 将仓库链接复制 在 git base here ----> git clone 仓库链接 工作区、暂存区、版本库 Git 工作区中文件中的状态 本地仓库的操作 远程仓库操作 git pull 将代码推送到远程仓库 1. git add 文件名 ---放…

C++:继承和多态,自定义封装栈,队列

1.栈: stack.cpp #include "stack.h"Stack::Stack():top(nullptr),len(0){} //析构函数 Stack::~Stack() {while(!empty()){pop();} }bool Stack::empty() //判断栈是否为空 {return topnullptr; }int Stack::size()//获取栈的大小 {return len; } //压…

万字长文详解Java线程知识

什么是进程、线程、协程? 进程 进程是计算机科学中的一个核心概念,它指的是在操作系统中正在执行的一个程序的实例。进程是操作系统中的一个独立执行单元,具有独立的内存空间和系统资源。每个进程都有自己独立的地址空间和文件描述符&#x…

循环神经网络笔记

循环神经网络学习 RNN训练方法–BPTT BPTT (Backpropagation Through Time),这是一种用于训练循环神经网络(RNNs)的算法。由于 RNNs 能够处理序列数据,并且在每个时间步上都有内部状态,因此需…

南京自闭症寄宿学校:打造温馨的第二家

南京自闭症寄宿学校的愿景与广州星贝育园的温馨实践 在探讨自闭症儿童教育的广阔领域中,寄宿制学校以其独特的优势,为这些特殊的孩子提供了全方位的支持与关怀,致力于打造一个温馨如家的第二生活环境。虽然本文的主题是围绕南京自闭症寄宿学…

Chirp通过Sui让IoT世界变得更简单

据估计,未来十年内,联网设备的数量将增长到近400亿台。无论是追踪共享出行车辆的移动、改善食品追溯性、监控制造设施,还是保障家庭安全,物联网 ( Internet of Things,IoT) 对企业和消费者来说都已经成为一项关键技术。…

刷题学习日记 (1) - SWPUCTF

写这篇文章主要是想看看自己一个下午能干啥,不想老是浪费时间了,所以刷多少题我就会写多少题解,使用nss随机刷题,但是今天下午不知道为啥一刷都是SWPUCTF的。 [SWPUCTF 2021 新生赛]gift_F12 控制台ctrlf搜索flag即可&#xff0…

什么是竞争条件?

竞争条件,简单来说就是多个进程同时访问同一个共享资源,导致出现预期结果以外的错误的情况。 出现竞争条件的本质原因是cpu对程序的调度是没有特定规律的,某一时刻cpu处理哪个进程是不确定的。 简单写一个测试程序,先需要子进程和…

ubuntu安装emqx

目录 1.预先下载好emqx压缩包 2.使用tar命令解压 3.进入bin目录 5.放开访问端口18083 6.从通过ip地址访问emqx后台 7.默认用户名密码为admin/public 8.登录后台 9.资源包绑定在此博文可自取 1.预先下载好emqx压缩包 2.使用tar命令解压 sudo tar -xzvf emqx-5.0.8-el8-…

手机轻松解压 RAR 文件指南

手机通常不直接支持 RAR 文件打开,主要有以下几个原因。首先,手机操作系统的设计初衷并非为了处理各种复杂的压缩文件格式。 大多数手机内置的文件管理器主要侧重于管理手机内部存储和常见的文件类型,如图片、音频、视频等。对于像 RAR 这样…

【UR #1】外星人(dp思维技巧)

考虑去除后效性,常用方法排序状态可以直接以答案为状态来判断合法性考虑转移方向,向后转移,选与不选来定向答案 f[i][j]表示前i个数答案为j的方案数 不选i 则加上f[i][j] 的方案数 * (n-i),ai可以在后面随便选。 选…

Python 课程20-Scikit-learn

前言 Scikit-learn 是 Python 中最流行的机器学习库之一,它提供了多种用于监督学习和无监督学习的算法。Scikit-learn 的特点是简单易用、模块化且具有高效的性能。无论是初学者还是专业开发者,都可以借助它进行快速原型设计和模型开发。 在本教程中&a…

为何专利对企业创新与竞争至关重要?

在当今这个技术飞速发展的时代,每一个创新的火花都可能成为推动行业进步的关键力量。然而,创新并非一蹴而就,它需要时间、资金与智慧的共同投入,更需要一套完善的保护机制来确保其成果不被轻易窃取或模仿。这一重任,便…

WebPage-Bootstrap框架(container类,container-fluid类,栅格系统)

1.Bootstrap Bootstrap为页面内容和栅格系统包裹了一个.container容器,框架预先定义类 1.1container类 响应式布局容器的宽度 手机-小于768px 宽度设置100%; 平板-大于等于768px 设置宽度为750px 桌面显示器-大于等于992px 设置宽度 970px 大屏幕显…