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

【接口自动化测试】第二节.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文档封装
  • 重点关注如何调用接口
  • 请求参数从测试脚本层传递
  • 接口响应结果返回给脚本层

总结

相关文章:

  • 异构集成封装类型2D、2.1D、2.3D、2.5D和3D封装技术
  • 注意力机制新突破!21种创新融合思路汇总!让技术持续飞跃!
  • C# —— while循环语句
  • C++ day5
  • Perl语言快速入门学习
  • php配合fiddler批量下载淘宝天猫商品数据分享
  • 探索 JQuery EasyUI:构建简单易用的前端页面
  • 服务器数据恢复—热备盘未完全启用导致raid5阵列崩溃的数据恢复案例
  • 如何在服务器上部署一个java程序
  • 电脑提示d3dcompiler_47.dll丢失的解决方法,实测靠谱的5种方法
  • Linux C++
  • 图卷积网络(Graph Convolutional Network, GCN)
  • 一文详解扩散模型
  • 王思聪隐形女儿曝光
  • Centos离线安装Python3
  • 4. 路由到控制器 - Laravel从零开始教程
  • AngularJS指令开发(1)——参数详解
  • angular学习第一篇-----环境搭建
  • codis proxy处理流程
  • iOS | NSProxy
  • Java程序员幽默爆笑锦集
  • leetcode388. Longest Absolute File Path
  • mac修复ab及siege安装
  • tensorflow学习笔记3——MNIST应用篇
  • 构建二叉树进行数值数组的去重及优化
  • 基于axios的vue插件,让http请求更简单
  • 将回调地狱按在地上摩擦的Promise
  • 前端技术周刊 2019-02-11 Serverless
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 小程序01:wepy框架整合iview webapp UI
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • puppet连载22:define用法
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何用纯 CSS 创作一个货车 loader
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (Java数据结构)ArrayList
  • (JS基础)String 类型
  • (pojstep1.1.2)2654(直叙式模拟)
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (回溯) LeetCode 77. 组合
  • (三)docker:Dockerfile构建容器运行jar包
  • .gitignore文件设置了忽略但不生效
  • .libPaths()设置包加载目录
  • .NET Core Web APi类库如何内嵌运行?
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET中的Exception处理(C#)
  • .php文件都打不开,打不开php文件怎么办
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • :class的用法及应用
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪