• 【软件测试】Requests库中处理cookie的几种方式


    前言

    发送请求时经常需要利用请求头中的cookie字段来做用户访问状态的保持,关于的cookie的处理常见有下面一些处理方式,这里做个小小的总结

    1.直接在请求中传递cookies参数

    1. import requests
    2. host = 'http://119.91.144.93:82'
    3. api = r'/ecshop/user.php'
    4. url = host + api
    5. data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
    6. res = requests.request('POST',url=url,data=data) #登录
    7. cookies = res.cookies #获取登录cookies
    8. data1 = {'msg_type':0,'msg_title':'aaaaaaa','msg_content':'1111111111','act':'act_add_message'}
    9. = requests.request('POST',url=url,data=data1,cookies=cookies) #发表留言,直接将获取的登录cookies添加到请求中

    结果:发表留言成功

    2.将获取的登录cookie添加到headers中

    1. import requests
    2. host = 'http://119.91.144.93:82'
    3. api = r'/ecshop/user.php'
    4. url = host + api
    5. data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
    6. res = requests.request('POST',url=url,data=data) #登录
    7. cookies = res.cookies #获取登录cookies
    8. cookies_str  = '' #将获取的登录cookies拼接为字符串
    9. for k,v in cookies.items():
    10.     cookies_str += f'{k}={v};' #key=value;的方式拼接
    11. headers = {'cookie':cookies_str} #组装headers
    12. data1 = {'msg_type':0,'msg_title':'bbbbb','msg_content':'22222','act':'act_add_message'}
    13. = requests.request('POST',url=url,data=data1,headers=headers) #发送留言请求

    结果:发表留言成功

    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036

    3.通过RequestsCookieJar构造cookies

    1. import requests
    2. host = 'http://119.91.144.93:82'
    3. api = r'/ecshop/user.php'
    4. url = host + api
    5. data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
    6. res = requests.request('POST',url=url,data=data) #登录
    7. cookies = res.cookies #获取登录cookies
    8. jar = requests.cookies.RequestsCookieJar() #创建RequestsCookieJar对象
    9. for k,v in cookies.items():
    10.     jar.set(k,v) #通过RequestsCookieJar对象构造cookies
    11. data1 = {'msg_type':0,'msg_title':'cccccc','msg_content':'33333','act':'act_add_message'}
    12. = requests.request('POST',url=url,data=data1,cookies=jar) #发送留言请求

    结果:发表留言成功

    4.通过session会话处理

    1. import requests
    2. host = 'http://119.91.144.93:82'
    3. api = r'/ecshop/user.php'
    4. url = host + api
    5. = requests.session() #创建会话s
    6. data = {'username':'wangke','password':'123456','act':'act_login','back_act':'./index.php','submit':None}
    7. res = s.request('POST',url=url,data=data) #通过会话发送登录请求
    8. data1 = {'msg_type':0,'msg_title':'dddddd','msg_content':'44444','act':'act_add_message'}
    9. = s.request('POST',url=url,data=data1) #通过会话发送留言请求,不需要处理cookie,自动关联

    结果:发表留言成功


    敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

  • 相关阅读:
    淘宝服务端高并发分布式架构演进之路
    new和 delete 细细碎记录
    Java:为什么2022年Java应用开发很流行?
    Mojo:为Web应用程序提供了完整的框架,包括路由、模板、插件、Websocket、HTTP客户端、HTTP服务器、配置文件管理等功能
    LiveGBS流媒体平台GB/T28181常见问题-安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口
    论基于架构的软件设计方法及应用
    基于LSTM-Adaboost的电力负荷预测(Matlab代码实现)
    Python爬虫防止被封的方法:动态代理ip
    新冠病毒分型和突变分析(SARS-CoV2_ARTIC_Nanopore)
    Hyperledger Fabric 2.x 自定义智能合约
  • 原文地址:https://blog.csdn.net/qq_43371695/article/details/133817953