写点什么

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

作者:测试人
  • 2023-11-15
    北京
  • 本文字数:1257 字

    阅读完需:约 4 分钟

免费领取:测试资料+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/28000

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

  • cookie

  • 携带身份信息请求认证

  • 之后的每次请求都携带 cookie 信息,cookie 记录在请求头中

  • token

  • 携带身份信息请求认证

  • 之后的每次请求都携带 token 认证信息

  • 可能记录在请求头,可能记录在 url 参数中

  • auth

  • 每次请求携带用户的 username 和 password,并对其信息加密

  • oauth2(选修)

  • 携带身份信息请求认证

  • 服务端向指定回调地址回传 code

  • 通过 code 获取 token

  • 之后的请求信息都携带 token。

二、cookie 鉴权

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

  2. 发送携带 cookie 的请求

  3. 直接通过 cookies 参数

  4. 通过 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
@classmethod def 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 resp
def 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)
复制代码


发布于: 刚刚阅读数: 4
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式_软件测试_测试人_InfoQ写作社区