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

软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/28000

一、后端接口鉴权常用方法

  • cookie

    1. 携带身份信息请求认证
    2. 之后的每次请求都携带cookie信息,cookie记录在请求头中
  • token

    1. 携带身份信息请求认证
    2. 之后的每次请求都携带token认证信息
    3. 可能记录在请求头,可能记录在url参数中
  • auth

    1. 每次请求携带用户的username和password,并对其信息加密
  • oauth2(选修)

    1. 携带身份信息请求认证
    2. 服务端向指定回调地址回传code
    3. 通过code获取token
    4. 之后的请求信息都携带token。

二、cookie 鉴权

  1. cookie 的获取(根据接口文档获取)

  2. 发送携带 cookie 的请求

    • 直接通过 cookies 参数
    • 通过 Session() 对象
class TestWithSession:proxy = {"http": "http://127.0.0.1:8888", "https": "https://127.0.0.1:8888"}req = requests.Session()def setup_class(self):url = "http://train-manage.atstudy.com/login"data = {"username": "199****9999", "password": "a1***56"}resp = self.req.request("post", url, data=data, proxies=self.proxy)print(self.req.headers)def test_get_userinfo(self):url = "http://train-manage.atstudy.com/api/manage/User/Info"resp = self.req.request("get", url, proxies=self.proxy)print(resp.text)def test_manage_tag(self):url = "http://train-manage.atstudy.com/api/manage/Tag?type=1"resp = self.req.request("get", url, proxies=self.proxy)print(resp.text)

三、token 鉴权

  1. token 的获取(根据接口文档获取)
  2. 发送携带 token 的请求(根据接口文档获取)
class TestWithToken:proxy = {"http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}headers = {}def setup_class(self):token = self.login().json()["data"]["token"]print(token)self.headers["x-litemall-admin-token"] = token@classmethoddef login(cls):url = "https://litemall.hogwarts.ceshiren.com/admin/auth/login"data = {"username": "hogwarts", "password": "test12345", "code": ""}resp = requests.request("post", url, json=data, proxies=cls.proxy, verify=False)return respdef test_get_dashboard(self):url = "https://litemall.hogwarts.ceshiren.com/admin/dashboard"resp = requests.request("get", url, headers=self.headers, proxies=self.proxy, verify=False)print(resp.text)# print(1)def test_category_list(self):url = "https://litemall.hogwarts.ceshiren.com/admin/category/list"resp = requests.request("get", url, headers=self.headers, proxies=self.proxy, verify=False)print(resp.text)
http://www.lryc.cn/news/231732.html

相关文章:

  • 08 robotframework 修改乱码问题
  • 门店如何设置多个联系电话和营业时间
  • 第5章 字典和结构化数据
  • 2023年咸阳市《网络建设与运维》赛题
  • Spring Cloud Netflix微服务组件-Eureka
  • FreeRTOS_任务创建与删除
  • 什么是Vue的前端微服务架构(Micro Frontends)?
  • 什么是原生IP与广播IP?原生IP有何优势?
  • vnodeToString函数把vnode转为string(innerhtml)
  • 【Halcon】C# HTuple多参数设置小技巧
  • 此芯科技加入绿色计算产业联盟,参编绿色计算产业发展白皮书
  • webrtc 生成unpack_aecdump工具
  • 数据结构第四课 -----线性表之队列
  • 蓝桥杯 第 3 场算法双周赛4,7题
  • 西安有哪些比较好的设计院?西安名企设计院介绍!
  • Java获取Jar、War包路径,并生成可编辑修改的本地配置文件
  • FPGA UDP RGMII 千兆以太网(4)ARP ICMP UDP
  • 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM
  • Python交易-通过Financial Modeling Prep (FMP)选择行业
  • AI创作系统ChatGPT网站源码+详细搭建部署教程+支持DALL-E3文生图/支持最新GPT-4-Turbo-With-Vision-128K多模态模型
  • 快速生成力扣链表题的链表,实现快速调试
  • threejs(13)-着色器设置点材质
  • 计算机网络专栏 学习导航or使用说明
  • git clone:SSL: no alternative certificate subject name matches target host name
  • 代码随想录图论|130. 被围绕的区域 417太平洋大西洋水流问题
  • Outlook无法显示阅读窗格
  • tensorflow 1.15 gpu docker环境搭建;Nvidia Docker容器基于TensorFlow1.15测试GPU;——全流程应用指南
  • 一个22届被裁前端思想上得转变
  • Python开源项目GPEN——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践
  • Android studio2022.3项目中,底部导航菜单数多于3个时,只有当前菜单显示文本,其他非选中菜单不显示文本