接口自动化测试(二)

1|0一. 为请求添加cookies


在上一篇文章中,可以看出,如果不给request请求加上cookie,当我们获取登录后的页面的考勤信息时,会自动跳转到登录页面。由于http是无状态协议,cookie的作用就是跟踪会话

注意cookies也要按照**kwargs传参的方式,即以key=value的形式传入,其中value是字典形式,这和params比较类似

import requests #调用登录接口——生成cookies #从响应的消息头中,获取身份令牌 url = "https://www.ketangpai.com/SummaryApi/attence?courseid=MDAwMDAwMDAwMLOGy9yHz7ev" params = {"courseid": "MDAwMDAwMDAwMLOGy9yHz7ev"} cookies = {"ketangpai_home_remember": "think%3A%7B%22username%16293798223OGpZaIudFqhc6Gl7LQetmZtmfOk2RhbQ%292038012%22expire%22%3A%22MDAwMDAwMDAwMLOGud6Gub9phd523rG2dZ4%22%2C%22token%22%3A%22MDAwMDAwMDAwMMurrpWavLehhs1-3LLfgduEt4OWepuomcWmmqaMiHtnr5ylzYWosKKZq6HQxtOK0ZCme5p-q6iZu2yrn4uNhJ3KedDYk7ivboS4it6xuZGShN1z3n6KYW0%22%7D"} res = requests.request("get", url, params=params, cookies=cookies) print(res.status_code) print(res.text.encode('latin-1').decode('unicode_escape'))

运行结果

200 {"status":1,"data":[{"id":"MDA193023MLR2qZ18983","title":"2018.07.13","createtime":"1531484669","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qZaHqauw","title":"2018.07.11","createtime":"1531312035","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qZWHz81s","title":"2018.07.09","createtime":"1531139222","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qZSIuc1s","title":"2018.07.06","createtime":"1530879957","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qd6IubNo","title":"2018.07.04","createtime":"1530707056","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qd2IubOv","title":"2018.07.02","createtime":"1530534412","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qd2Gqadt","title":"2018.06.29","createtime":"1530275097","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2qduHudFq","title":"2018.06.27","createtime":"1530102228","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2pZmGqa-w","title":"2018.06.25","createtime":"1529929607","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2pZeIqdFo","title":"2018.06.22","createtime":"1529672088","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2pZWHz82x","title":"2018.06.20","createtime":"1529499309","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2pd6Gqbey","title":"2018.06.15","createtime":"1529065618","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLR2pduG36-w","title":"2018.06.13","createtime":"1528892832","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsz5eGz9Gy","title":"2018.06.11-jenkins","createtime":"1528719713","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsz5WG39Fo","title":"2018.06.08-接口自动化(五)","createtime":"1528460682","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsz92Gz9Fp","title":"2018.06.06-接口实战(四)","createtime":"1528287924","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsy5mGqa-x","title":"2018.06.04-接口自动化实战(三)","createtime":"1528115207","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsy96H379o","title":"2018.05.30--接口实战(二)","createtime":"1527683074","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsy9uG37uw","title":"2018.05.28--接口自动化实战","createtime":"1527510322","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsx5iGz7ux","title":"2018.05.25--接口测试","createtime":"1527251091","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsx5SIqc2y","title":"2018.05.23-接口测试","createtime":"1527078219","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsx9yGubtt","title":"2018.05.21-作业+邮件","createtime":"1526905679","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsvZiIqb-x","title":"2018.05.18--复习课","createtime":"1526646290","type":"1","state":"3"},{"id":"MDAwMDAwMDAwMLOsvZWG369r","title":"2018.05.16-配置+logger","createtime":"1526473605","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsvdyHudGx","title":"2018.05.14-数据库+配置","createtime":"1526300819","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsuZmGqdGw","title":"2018.05.11-单元测试+excel操作","createtime":"1526041334","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsuZWHqaey","title":"2018.05.09-单元测试","createtime":"1525868625","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsudyHz6ex","title":"2018.05.07-类和对象-单元测试","createtime":"1525695789","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOstZWHuclq","title":"2018.05.02-类和对象(二)","createtime":"1525263806","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOstdyHz7ex","title":"2018.04.27-类和对象 一","createtime":"1524831912","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOssZeIqdGv","title":"2018.04.25-os操作异常处理","createtime":"1524658975","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOssd6Iqbto","title":"2018.04.23-作业讲解+文件操作","createtime":"1524486144","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOssdyG369s","title":"2018.04.20-嵌套循环和函数","createtime":"1524227178","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsrZiGuc2x","title":"2018.04.18 - 控制流","createtime":"1524054279","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsrZSHqatq","title":"2018.04.16-作业讲解+数据类型","createtime":"1523881366","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsrdyHz81s","title":"2018.04.13 - 列表和字典","createtime":"1523622079","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsqZiGuadr","title":"2018.04.11-python环境和基本语法","createtime":"1523449326","type":"1","state":"0"},{"id":"MDAwMDAwMDAwMLOsqd6Iuc1q","title":"2018.04.09-开学典礼","createtime":"1523274686","type":"1","state":"0"}],"attenceCount":37,"lateCount":0,"absentCount":0,"pleaseCount":1,"privateLeaveCount":0,"sickLeaveCount":0,"statutoryCount":0,"leaveEarlyCount":0,"info":"success"}

2|0二. 从响应结果中获取cookies


此外,还可以通过响应结果来获取cookies

import requests url = "https://fanyi.baidu.com" res = requests.request("get", url) #res.cookies获得的是RequestCookieJar的实例 print(res.cookies) print(type(res.cookies)) #从响应结果当中获取cookies中键值对的值——参数为键名 print(res.cookies.get("BAIDUID"))

运行结果

<RequestsCookieJar[<Cookie BAIDUID=BEE625F269183991307D1097F72E:FG=1 for .baidu.com/>, <Cookie locale=zh for .baidu.com/>]> <class 'requests.cookies.RequestsCookieJar'>
BEE625F269183991307D1097F72E:FG=1

 


__EOF__

本文作者cnhkzyy
本文链接https://www.cnblogs.com/my_captain/p/9314801.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cnhkzyy  阅读(702)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示