zoukankan      html  css  js  c++  java
  • python接口自动化5-session关联

    前言

    我们不难发现浏览器中存在着cookie缓存等,但我们在python中如果像浏览器这样的缓存,我们就很难的需要关联cookie或会话了。

    但python的requests库,就封装了Session方法、Session类实现会话对象。就好比如是python中的浏览器。

    一、Cookie 与 Session 的区别

    1、Cookie,也用复数Cookies,就是为了辨别用户身份、进行 Session 跟踪而储存在用户本地终端上的数据,通常要加密,而Cookie数据存放在客户的浏览器上;

    2、Cookie保存在客户端本地,最大是4kb,key、value形式的字典;

    3、Session:会话控制,或者会话对象,Session对象存储特定用户会话所需的属性及配置信息;

    4、Session由服务器端生成,响应给客户端,客户端每次带上Session,就可以跨请求,相当于身份识别;

    无论是基于Session的还是基于Cookie的认证方式,都需要客户端上传标识,都需要服务端下发这个标识,并且对这个标识进行加密。

    虽然加密,但是不法之人一旦拿到这个标识还是可以进行一系列非法操作,所以这个标识里边最好能加上来源IP和过期时间这些属性,再配置上https,可以更加有效的保护整个认证流程和数据。

    二、禅道登录实例

    1、正常浏览器操作登录-抓包,请求头部信息有个cookies,如下标红色字为登录必传的cookies的token,抓包数据如下。

    cookies = Cookie: lang=zh-cn; theme=default; keepLogin=on; za=admin; lastProduct=1; preBranch=0; preProductID=1; preCaseLibID=1; lastCaseLib=1; libCaseModule=2; caseModule=0; checkedItem=2%2C1; zp=d8486c87280cdfe6c3f4e53b44612c0ad486aa2f; windowWidth=1920; windowHeight=968; csrftoken=WAUVNHlXBnWmPfBPdQoK80PLq9NJcJcR6Ew1KIHBfht4Cs1Z0fhaJFn7LDdNnRt3; zentaosid=h6r0cho8eiq4na767vgjcan886

     2、fiddler 断点将cookies 删除再发送请求。

    如下图一,断点已将cookies传的参数删除,接下来允许发送。图二,明显发现登录没有成功,没有到达禅道-我的地盘这个html的返回。

    由此我们能知道,如果在接口测试中,我们没能自动关联cookies与session的话会非常不方便。

     

     3、没有关联session、cookies,明显登录没有成功。

     4、requests.session() 方法能做到控制会话。session关联后登录成功了!

    import requests
    s = requests.session()      # session() 控制会话
    print(s.cookies)            # 没请求前cookies为空
    
    url = 'http://127.0.0.1:81/zentao/user-login-L3plbnRhby8=.html'
    par = 'account=admin&password=e10adc3949ba59abbe56e057f20f883e&keepLogin%5B%5D=on&referer=%2Fzentao%2F'
    r = s.post(url, params=par)
    # 登录后查看 cookies
    print(s.cookies)
    
    r1 = s.get('http://127.0.0.1:81/zentao/my/')  # 断言
    print(r1.content.decode('utf-8'))

     requests 库是不是很简单的让session关联了呢?学会了吗?欢迎来QQ交流群:482713805

  • 相关阅读:
    android数据恢复
    UVA 690 Pipeline Scheduling
    2017 国庆湖南 Day4
    2017 国庆湖南 Day5
    2017 国庆湖南 Day6
    2017国庆 清北学堂 北京综合强化班 Day1
    2017 国庆湖南Day2
    bzoj 2962 序列操作
    UVA 818 Cutting Chains
    UVA 211 The Domino Effect
  • 原文地址:https://www.cnblogs.com/gsxl/p/11964171.html
Copyright © 2011-2022 走看看