HTTP Authentication之Bearer认证

本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/113756423

之前写过一期Basic认证、Digest认证 的分享 ,可以看看。

最近我在看公司大佬写的某项目的接口脚本,因为不是我的项目,不太熟悉接口;是翻着测试用例+代码+大佬亲自指导,大概明白整个流程:

  1. 他们的项目 是公司App的某2个模块a、b
  2. 整个流程:【一】某账号登录App(获取JSESSIONID);【二】通过 对内部接口A、B的访问,拿到accessToken(JWT);【三】可访问他们的接口(请求头设Bearer Token)
  3. 接口:【一】公司App的login接口;【二】内部获取token的接口A、B;【三】项目的某个请求

【A接口对应a模块,B接口对应b模块;但下方只讲述其中一个】

本期分享,极有可能翻车;我尽量保持客观真实。

个人博客:https://blog.csdn.net/zyooooxie

需求

本期是讲 使用Postman、requests、JMeter如何来请求; 后续会再加一篇 【二】接口自动化测试框架如何写

(因为不是我的需求,所以很多传参、请求头的细节 我都没去扣,直接“拿来主义”;)

如何来请求呢?

A. 用Postman来看下

1.login接口

在这里插入图片描述

在这里插入图片描述

2.get_token接口

在这里插入图片描述

在这里插入图片描述

3.某接口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Postman请求过程+实际结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

C.用JMeter来看下

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

JMeter请求过程+实际结果

在这里插入图片描述

在这里插入图片描述

B. 用requests来看下

1.使用requests.session()

class SessionRequestCash(object):

    @staticmethod
    def session_req():
        s = requests.session()

        login_url = "https://zyooooxie/user/login.do"
        login_dict = {
    
    
            "deviceType": "zyooooxie",
            "password": "zyooooxie",
            "phoneNumber": "zyooooxie"
        }
        res = s.post(login_url, data=login_dict, verify=False)
        print(res.text)
        print(res.headers)
        print(res.cookies)
        if res.json()['data']['uid'] == 50010833:
            print('登录成功')

        url_token = "https://zyooooxie/redirection/status.do"
        header_token = {
    
    'Referer': "https://zyooooxie",
                  "dt": "zyooooxie"}
        res_token = s.post(url=url_token, verify=False, headers=header_token)
        print(res_token.text)
        print(res_token.headers)
        print(res_token.cookies)

        tm_token = res_token.json()['data']['accessToken']

        url_cr = 'https://zyooooxie/receive'
        header_cr = {
    
    
            "lc": "zyooooxie",
            "pt": "zyooooxie",
            'Authorization': 'Bearer ' + tm_token
        }
        test_dict = {
    
    "couponTemplateId": "zyooooxie", "couponReceiveSource": "zyooooxie"}
        res_cr = s.post(url=url_cr, verify=False, headers=header_cr, data=test_dict)
        print(res_cr.headers)
        print(res_cr.cookies)
        print(res_cr.text)         # 这是正常的
        

在这里插入图片描述

2.普通请求



class NormallyRequestCash(object):

    @staticmethod
    def login():
        login_url = "https://zyooooxie/user/login.do"
        login_dict = {
    
    
            "deviceType": "zyooooxie",
            "password": "zyooooxie",
            "phoneNumber": "zyooooxie"
        }
        res = requests.post(login_url, data=login_dict, verify=False)       # TODO 开了Fiddler抓包
        # res = requests.post(login_url, data=login_dict)
        print(res.headers)
        print(res.cookies)
        print(res.text)
        if res.json()['data']['uid'] == 50010833:
            print('登录成功')

        cookie_jar = res.cookies
        return cookie_jar

    @staticmethod
    def get_token(cookie_jar):
        url_token = "https://zyooooxie/redirection/status.do"
        header_token = {
    
    'Referer': "https://zyooooxie",
                  "dt": "zyooooxie"}
        res = requests.post(url=url_token, cookies=cookie_jar, verify=False, headers=header)
        # res = requests.post(url=url_token, cookies=cookie_jar)
        print(res.headers)
        print(res.cookies)
        print(res.text)
        # 其实acw_tc 是系统自动设定的,无关了
        # tm_cookie_jar = res.cookies

        tm_token = res.json()['data']['accessToken']
        print('成功获取token')
        return tm_token

    @staticmethod
    def cash_loan_coupon_receive(bearer_token):
        url_cr = 'https://zyooooxie/receive'
        header_cr = {
    
    
            "lc": "zyooooxie",
            "pt": "zyooooxie",
            'Authorization': 'Bearer ' + tm_token
        }
        test_dict = {
    
    "couponTemplateId": "zyooooxie", "couponReceiveSource": "zyooooxie"}

        res = requests.post(url=url_cr, verify=False, headers=header, data=test_dict)
        print(res.headers)
        print(res.cookies)
        print(res.text)         # 这是正常的
        


在这里插入图片描述

这篇分享就这些内容;后面第二篇 Bearer Token的接口自动化测试框架如何写

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/113756423
今日推荐