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

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接: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

    @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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值