zoukankan      html  css  js  c++  java
  • python中requests.session的妙用

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息。

    1、requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。

    s = requests.session()
    # req_param = '{"belongId": "300001312","userName": "alitestss003","password":"pxkj88","captcha":"pxpx","captchaKey":"59675w1v8kdbpxv"}'
    # res = s.post('http://test.e.fanxiaojian.cn/metis-in-web/auth/login', json=json.loads(req_param))
    # # res1 = s.get("http://test.e.fanxiaojian.cn/eos--web/analysis/briefing")
    # print(res.cookies.values()) 获取登陆的所有session

    2、requests库的session对象还能为我们提供请求方法的缺省数据,通过设置session对象的属性来实现
    eg:

    # 创建一个session对象  

    s = requests.Session()  

    # 设置session对象的auth属性,用来作为请求的默认参数  

    s.auth = ('user', 'pass')  

    # 设置session的headers属性,通过update方法,将其余请求方法中的headers属性合并起来作为最终的请求方法的headers  

    s.headers.update({'x-test': 'true'})  

    # 发送请求,这里没有设置auth会默认使用session对象的auth属性,这里的headers属性会与session对象的headers属性合并  

    r = s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})  

    上面的请求数据等于:{'Authorization': 'Basic dXNlcjpwYXNz', 'x-test': 'false'}

    # 查看发送请求的请求头  

    r.request.headers      #打印响应中请求的所有header数据

    res3 = s.get("http://pre.n.cn/irs-web/sso/login",cookies = cookie)
    print(res3.request.headers.get("Cookie").split("IRSSID=")[-1])
    print(type(res3.request.headers.get("Cookie").split("IRSSID=")[-1]))
    print(res3.request._cookies)
  • 相关阅读:
    JavaScript学习笔记(六)----内置对象Global 和Math
    JavaScript学习笔记(五)--- String类型
    线性筛素数
    线性筛欧拉函数
    POJ 3090 Visble Lattice Points
    1091 合唱队形(最长上升子序列模板)
    P1018 乘积最大
    P1020 导弹拦截(弱数据)
    P2757 导弹的召唤(数据加强)
    P1313 计算系数
  • 原文地址:https://www.cnblogs.com/lingxia/p/9074620.html
Copyright © 2011-2022 走看看