接口测试 Python3 接口测试,测试需要带登录态的接口 A,登录 cookie 以什么样的格式传到接口 A

张小强 · 2016年09月11日 · 最后由 张小强 回复于 2016年10月26日 · 2077 次阅读

Python3 接口测试,测试需要带登录态的接口 A,requests.cookies 获取到的登录态 cookie 以什么样的语句/格式/语法传到接口 A ?

已经尝试过 requests.Session()、cookiejar 的方法,还是不能成功。http://blog.csdn.net/falseen/article/details/46962011
#方法一:requests.Session
coding = utf-8
import requests,json,urllib

login_url = http://'xxx'
payload = {'postData':'{"userName":"xxx","password":"xxx",\
        "validateCode":"","validateSession":"","appId":"","jump":""}'}
s = requests.Session()
req=s.post(login_url,data=payload)

#需要登录态的接口
newurl = 'http://xxx'
req_new = s.post(newurl)
req_new_value = req_new.json()
print(req_new_value)
code = req_new.json()['code']
print(code)
#方法二:手动带上cookies/headers
coding = utf-8
import requests,json,urllib

login_url = http://'xxx'
payload = {'postData':'{"userName":"xxx","password":"xxx",\
        "validateCode":"","validateSession":"","appId":"","jump":""}'}
req=requests.post(login_url,data=payload)
headers = req.headers
#把requests.cookies获取到的cookies转化成字典格式
cookies = requests.utils.dict_from_cookiejar(login_cookies)

#需要登录态的接口
newurl = 'http://xxx'
req_new = requests.post(newurl,cookies=cookies)

#headers和cookies都试过,依然提示登录态失效
#req_new = requests.post(newurl,headers=headers,cookies=cookies)

code = req_new.json()['code']
print(code)
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

添加 header

  1. markdown 格式不对,代码需使用代码块,标题样式和超链接的格式都有问题。具体语法请参考 排版说明 更新格式。
  2. 一般 cookie 是放在请求的 header 里面的。具体是怎么做的建议你先抓包看看,然后再通过程序模拟你抓包时的数据包把。

#2 楼 @chenhengjie123 sorryy,第一次发帖不懂格式,已修改

#1 楼 @onecd 添加 headers 还是没有请求成功,#req_new = requests.post(newurl,headers=headers,cookies=cookies)
格式不对吗?

你强调 python3 难道 python2 可以么,我一般都用的 requests.session()

cookie = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)

#5 楼 @wanxi3 强调 Python3 因为我用的 python3 呀,难道我用 3 要去强调 2

—— 来自 TesterHome 官方 安卓客户端

目前还没有找到可执行自动写入登录 cookie 的方法,暂时写死,通过 charles 获取 cookie、token 以及接口请求需要的 jsondata 格式,进行接口测试,r.requests(url,cookies=xxx,data=xxx)

张小强 关闭了讨论 12月16日 09:49
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册