【接口自动化测试】第二节.Requests库和接口对象封装

news2025/2/22 14:42:35

文章目录

  • 前言
  • 一、Requests库
  •       1.1 Requests介绍
  •       1.2 Requests发送请求
  •       1.3 Requests查看响应
  •       1.4 案例1登录接口调试-获取验证码
  •       1.5 案例2登录接口调试-登录
  •       1.6 归纳小结
  • 二、接口对象封装
  •       2.1 当前代码待优化问题
  •       2.2 接口对象封装思路
  •       2.3 案例1实现登录接口对象封装与调用
  •       2.4 当前代码待优化问题


前言


一、Requests库

1.1 Requests介绍

(1)定义:

Requests库:python中的“浏览器”,基于urllib的HTTP库

(2)安装和验证:
安装:pip3 install requests

验证:pip3 show requests


(3)操作步骤:

① 导包
② 发送接口请求
③ 查看响应数据

1.2 Requests发送请求

(1)代码实现:
requests.请求方法(url, params=None, data=None, json=None, headers=None)

(2)说明:

• 常见的请求方法: get/post/put/delete
• url: 请求的url地址
• params: 请求查询参数
data: 请求体为form表单参数
json: 请求体为json参数
• headers: 请求头参数

1.3 Requests查看响应

属性/方法:                             说明

response.status_code   状态码
response.json()             JSON形式的响应内容
response.text                 文本形式的响应内容
response.url                    请求url
response.encoding          查看响应头部字符编码
response.headers            头信息
response.cookies            cookie信息

1.4 案例1登录接口调试-获取验证码

(1)需求 :使用requests访问验证码接口,并查看响应结果。

(2)地址:http://kdtx-test.itheima.net/api/captchaImage


(3)分析:
1. 导包
import requests
2. 发送接口请求
response = requests.get(url=“ http://kdtx-test.itheima.net/api/captchaImage”)
3. 查看响应结果
print(response.status_code)
print(response.text)

1.5 案例2登录接口调试-登录

(1)需求 :使用requests访问登录接口,并查看响应结果。

(2)接口信息

• 地址:http://kdtx-test.itheima.net/api/login
• 方法:Post
请求数据:
     • 请求头:Content-Type: application/json
     • 请求体:{"username":”admin", "password": " admin123","code":"2", "uuid":"验证码接口返回数据"}

(3)实现步骤
1. 导包
2. 发送接口请求
login_data =
{"username":”admin", "password": " admin123","code":"2", "uuid":”xxxxxx"}
response = requests.post(url=http://kdtx-test.itheima.net/api/login, json=login_data )
3. 查看响应结果

1.6 归纳小结

1. 如何使用requests发送GET/POST/PUT/DELETE请求?
requests.请求方法(url)

2. 如何使用requests提交JSON数据?

requests.请求方法(url, json)

3. 如何使用requests设置请求头信息?

requests.请求方法(url, headers)

二、接口对象封装

2.1 当前代码待优化问题(脚本实现)

(1)问题每次登录之前都需要手动复制验证码数据


(2)思路:


2.2 接口对象封装思路

(1)核心思想:
代码分层思想。

分层1:测试脚本层

  • 重点关注测试数据准备和断言
  • 重点关注业务流程的处理
  • 直接调用接口对象层发送请求

分层2:接口对象层

  • 根据接口API文档封装
  • 重点关注如何调用接口
  • 请求参数从测试脚本层传递
  • 接口响应结果返回给脚本层

总结

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

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

相关文章

互联网应用主流框架整合之SpingMVC运转逻辑及高级应用

Spring MVC处理器的执行过程 在SpringMVC的流程中,它会把控制器的方法封装为处理器(Handler),为了更加灵活,SpringMVC还提供了处理器的拦截器,从而形成了一条包括处理器和拦截器的执行链,即HandlerExecutionChain&…

Linux-安装及管理程序

目录 一、Linux应用程序基础 1、应用程序与系统命令的关系 2、 典型应用程序的目录结构 3、常见的软件包封装类型 二、RPM包管理工具 1、RPM包管理器 2、RPM软件包 ​3、RPM的命令格式 4、RPM命令的常用选项 5、RPM安装 三、 yum安装 1、yum源介绍 1.1、本地yum源 …

给日期加上15天

// 给当前日期加上15天 function toAndTimeFifteen(params) {let startDate new Date(params); // 创建一个Date对象表示2024年5月31日startDate.setDate(startDate.getDate() 15); // 给当前日期加上15天let dateString formatDate(startDate)// 转换时间格式return dateSt…

自动水位雨量站:用于水库防汛预警

TH-SW2自动水位雨量站是一种现代化的监测设备,主要用于水库等水域的防汛预警系统。它通过集成水位和雨量监测功能,为水库的管理和调度提供实时、准确的数据支持。 工作原理: 自动水位雨量站通过内置的水位计和雨量计实时监测水库的水位变化和…

C++封装TCP类,包括客户端和服务器

头文件 XTcp.h #ifndef XTCP_H #define XTCP_H#ifdef WIN32 #ifdef XSOCKET_EXPORTS #define XSOCKET_API __declspec(dllexport) #else #define XSOCKET_API __declspec(dllimport) #endif #else #define XSOCKET_API #endif#include <string> XSOCKET_API std::string…

宁德时代华北首座电池工厂在北京开工

6月18日&#xff0c;由宁德时代与北汽集团、京能集团、小米集团等共同投资建设的北京时代电池基地项目开工仪式在北京举行。 北京市相关政府代表&#xff0c;宁德时代董事长兼CEO曾毓群&#xff0c;北汽集团董事长张建勇&#xff0c;京能集团副总经理张凤阳&#xff0c;小米集…

第6章 设备驱动程序(4)

目录 6.5 块设备操作 6.5.5 请求结构 6.5.6 BIO 6.5.7 提交请求 6.5.8 I/O调度 6.5.9 ioctl实现 本专栏文章将有70篇左右&#xff0c;欢迎关注&#xff0c;查看后续文章。 6.5 块设备操作 6.5.5 请求结构 struct request { //放在请求队列上&#xff0…

BFS 1块、算多少次

目录 1.矩阵内部的1块 2.从1开始&#xff0c;1或乘2&#xff0c;计算要多少次达到n 3.迷宫路径 1.矩阵内部的1块 #include <iostream> #include <vector> #include <cmath> #include <string> #include <cstring> #include <queue> usi…

现代谱估计分析信号的功率谱(1)---AR 模型谱估计

本篇文章是博主在通信等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对通信等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在通信领域笔记&#xff1a;…

1951–2021年欧洲地区木本植物的格网物候数据集

本数据集包含1951–2021年欧洲地区&#xff08;3457′N – 723′N&#xff0c;253′W – 403′E&#xff09;6种木本植物的逐年展叶始期和开花始期格网数据&#xff0c;空间分辨率为0.1&#xff0c;时间分辨率为1天。数据集的质量评估表明&#xff0c;欧洲地区各物种展叶始期和…

车载语音识别系统语音数据采集标注案例

随着人工智能技术的不断发展&#xff0c;其在我们日常生活工作场景中的应用也越来越普及&#xff0c;人工智能技术在不同场景的普及大大的提高了我们日常生活、工作的高效性和便利性。以我们的日常出行为例&#xff0c;车载语音识别系统便是一种典型的人工智能应用场景。 车载…

大咖专栏 | AI 时代下,我们可以拥有怎样的数据库?

Hi&#xff0c;各位朋友们&#xff0c;我是 KaiwuDB 高级架构师赵衎衎。 KaiwuDB 始于万物互联时代下千万条数据洪流中&#xff0c;我们持续打磨构造了更加灵活兼容的分布式多模架构&#xff0c;实现了海量异构数据高性能、低成本的集中管理… …这些底层特性都在为后续提供更…

初见DP

线性DP 例题1 1143. 最长公共子序列 &#xff08;LCS&#xff09; 子序列不连续 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#x…

单片机第五季-第八课:STM32CubeMx和FreeRTOS

1&#xff0c;FreeRTOS背景介绍 RTOS简介&#xff1a; 实时操作系统&#xff0c;本用于追求实时性的嵌入式系统&#xff0c;典型&#xff1a;ucos/uclinux/vxworks&#xff1b; 特点&#xff1a;中断响应快、一般可嵌套中断、使用实地址、多任务&#xff1b; &#xff08;实…

如何用Vue3构建一个交互式树状图

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 Vue 3 ApexCharts Treemap 组件&#xff1a;可视化多维数据 应用场景 树形图&#xff08;Treemap&#xff09;是一种可视化多维数据的有效方式&#xff0c;特别适用于展示层次结构数据或按类别分组的数据。它…

Flink 资源静态调度

本内容是根据 Flink 1.18.0-Scala_2.12 版本源码梳理而来。本文主要讲述任务提交时&#xff0c;为 Task 分配资源的过程。 以下是具体步骤讲解&#xff1a; TaskManager 资源注册 TaskManager 再启动时&#xff0c;会向 ResourceManager 注册资源。ResourceManager 会将 Tas…

Debian12安装Nvidia官方驱动

1、下载驱动&#xff08;下载到一个英文目录例如你的用户目录/home/用户名下&#xff0c;我下载到dowload目录&#xff0c;由于默认显示中文&#xff0c;在命令行不支持中文显示的是一串数字&#xff0c;当然你仍然可以cd 那串数字进目录&#xff0c;显示有有引号就加引号&…

香港优才计划申请打分、材料、递交攻略,2024年获批后我来分享

香港优才计划这两年很多人弄啊&#xff0c;糖爸作为获批过来人&#xff0c;我来给大家分享香港优才计划申请攻略。 一、香港优才计划如何计算分数&#xff1f; 香港优才计划申请条件分2部分&#xff1a;第一是基本资格要求&#xff0c;第二是计分制度&#xff1b; 基本条件简…

前端框架中的路由(Routing)和前端导航(Front-End Navigation)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的路由&#xff08;Routing&#xff09;和前端导航&#xff08;Front-End Navigation&#xff09;1. 路由&#xff08;Routing&#xff09;1.1 定义1.2 路由的核心概念1.2.1 路由表&#xff08;Route Table&#xff09;1…

Pentest Muse:一款专为网络安全人员设计的AI助手

关于Pentest Muse Pentest Muse是一款专为网络安全研究人员和渗透测试人员设计和开发的人工智能AI助手&#xff0c;该工具可以帮助渗透测试人员进行头脑风暴、编写Payload、分析代码或执行网络侦查任务。除此之外&#xff0c;Pentest Muse甚至还能够执行命令行代码并以迭代方式…