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

文章目录

  • 前言
  • 一、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.mzph.cn/bicheng/32365.shtml

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

相关文章

仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮

, mWidth - mCircleWidth, mHeight - mCircleWidth); canvas.drawRoundRect(rectF, mHintBgRoundValue, mHintBgRoundValue, mHintPaint); //前景文字 mHintPaint.setColor(mHintFgColor); // 计算Baseline绘制的起点X轴坐标 int baseX (int) (mWidth / 2 - mHintPaint.m…

【面试实战】# 并发编程之线程池配置实战

1.先了解线程池的几个参数含义 corePoolSize (核心线程池大小): 作用: 指定了线程池维护的核心线程数量,即使这些线程处于空闲状态,它们也不会被回收。用途: 核心线程用于处理长期的任务,保持最低的线程数量,以减少线程的创建和…

springboot中,将某个函数的日志单独输出的方法

背景 项目中有个节点健康检查扫描功能,每10秒扫描一次节点。 如果节点挂掉,会输出健康检查失败的日志。 测试环境,虽然配置了多个节点,但并没有都启动,所以在扫描的时候,会不断的出现报错, 对于…

【low-ui-vue】实现原生可扩展动态表格组件

本文字数:3520字 预计阅读时间:20分钟 所谓动态列的表格,就是列数不固定。像广为使用的elementUI的table组件就是表头写死的,这种也叫列数固定的表格。 01 效果 当然,动态性增加了,当然要做出一定“牺牲”。…

【前端vue3】TypeScrip-Class类用法

类型声明 TypeScrip定义Class类 语法: // 定义一个名为 Person 的类 class Person {constructor () {// 构造函数:稍后定义}run () {// 方法:稍后定义} }在TypeScript是不允许直接在constructor 定义变量的 需要在constructor上面先声明 例…

csdn上传源码资源卖钱能买房买车吗?每天最高收入200-500?

csdn上传源码卖钱能买房买车吗,最高收入200-500? 作者收入日榜 不***孩 收益617.32元 程***妍 收益534.56元 s***n 收益323.71元 盈***客 收益315.05元 极***计 收益284.17元

2024-06-23 编译原理实验4——中间代码生成

文章目录 一、实验要求二、实验设计三、实验结果四、附完整代码 补录与分享本科实验,以示纪念。 一、实验要求 在词法分析、语法分析和语义分析程序的基础上,将C−−源代码翻译为中间代码。 要求将中间代码输出成线性结构(三地址代码&#…

企业级Web项目中应该如何做单元测试、集成测试和功能测试?

先自我介绍下: 本人有过10年测试经验,也参与过公安部网络安全产品测试交付、华为4G 网络设备测试交付、腾讯QQ空间APP产品测试交付。 关于“企业级Web项目中应该如何做单元测试、集成测试和功能测试”这个问题,我想给大家唠唠,我…

38 - 换座位(高频 SQL 50 题基础版)

38 - 换座位 -- 方法一 select(casewhen id%21 and id(select max(id) from seat) then idwhen id%20 then id-1else id1end) as id, student fromseat order byid;-- 方法二selectif(id%20,id-1,if(id(select max(id) from Seat),id,id1)) as id,student fromSeat order by id…

陀螺仪LSM6DSV16X与AI集成(7)----FIFO数据读取与配置

陀螺仪LSM6DSV16X与AI集成.6--检测自由落体 概述视频教学样品申请源码下载主要内容生成STM32CUBEMX串口配置IIC配置CS和SA0设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置设置量程设置FIFO水印设置速率使用流模式设置FIFO时间戳批处理速率使能时间戳FIFO状态寄存器演示…

Django数据驾驶舱

Django数据驾驶舱 1.项目介绍2.项目结构3.库表结构3.1 appcsdn的models3.2 appssq的models3.3 appweather的models3.4 appweibo的models 4.功能展示5.解决问题5.1 路由配置5.2 后端数据与前端echarts展示5.3 长图表丝滑滚动条 6.遗留问题7.资源分享 1.项目介绍 这里介绍本人最…

阿里云发送验证码流程

目录 1. 阿里云短信服务简介 2. 阿里云验证码发送流程 2.1 申请阿里云短信服务 2.2 短信模板及阿里云秘钥 1.开发者可以在自己的应用程序中集成短信发送功能。绑定发起测试的手机号,需要绑定的手机号才能成功发送验证码,其他的用户手机号发送的验…

如何在 Ubuntu 12.04 VPS 上安装和配置基本的 LDAP 服务器

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 LDAP(轻量级目录访问协议)是一种通过文件和目录层次结构管理相关信息的协议,它可以从集中位置管…

【4003】基于springboot实现的线上阅读系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

ARM裸机:基础了解

ARM的几种版本号 ARM内核版本号 ARMv7 ARM SoC版本号 Cortex-A8 芯片型号 S5PV210 ARM型号的发展历程 m microcontroller微控制器 就是单片机 a application应用级处理器 就是手机、平板、电脑的CPU r realtime实时处理器 响应速度快,主要用在工业、航天等领域 soc 、cpu、…

ubutu 18.04源码编译安装freeswitch 1.10.7支持视频通话——筑梦之路

软件版本说明 ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包:https:…

VB计算圆柱体积和表面积

已知圆半径和圆柱的高,计算圆柱体积和表面积。 Public Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickConst PI 3.14159Dim r As Integer, h As IntegerDim t As Single, s As Singler Val(TextBox1.Text)h V…

免杀笔记 ---> C语言

这次的更新可能有点慢,因为这段时间也比较忙,加上C语言还得和汇编结合,导致小编一个知识点总是得反复揣摩(太菜了),所以免杀的更新篇幅长度可能会达到两个月和三个月,但是小编能保证&#xff0c…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-24深度卷积神经网络AlexNet

24深度卷积神经网络AlexNet import torch from torch import nn import liliPytorch as lp import liliPytorch as lp import matplotlib.pyplot as pltdropout1 0.5 #Alexnet架构 net nn.Sequential(nn.Conv2d(1, 96, kernel_size11, stride4, padding1),nn.ReLU(),nn.MaxPo…

智慧校园综合管理系统的优点有哪些

在当今这个信息化飞速发展的时代,智慧校园综合管理系统正逐步成为教育领域的一股革新力量,它悄然改变着我们对传统校园管理的认知。这套系统如同一个无形的桥梁,将先进的信息技术与学校的日常运作紧密相连,展现出多维度的优势。 …