在做接口自动化时,需要用到cookie登录时

方案一,原生态cookie,如果后续接口不需要再增加其他参数认证,就直接使用这个cookie

import requests
def login(inData):
    url = "http://120.55.190.222/api/mgr/loginReq"
    payload=inData
    reps=requests.post(url,data=payload)
    #print(reps.cookies)
    return reps.cookies
cookie1=login({'username':'auto','password':'sdfsdfsdf'})
#print(cookie1)
#其他接口请求不需要再增加参数认证,直接传入cookie1
resp2=requests.post('路径',cookie1)

方案二,如果后续的接口使用这个cookie,需再增加其他参数认证重新封装cookie

import requests
def login(inData):
    url1 = "http://120.55.190.222/api/mgr/loginReq"
    payload=inData
    reps=requests.post(url1,data=payload)
    #print(reps.cookies['sessionid'])
    return reps.cookies['sessionid']  #返回sessionid值

#取出seeionid值
session_id = login({'username':'auto','password':'sdfsdfsdf'})
#重新封装cookie,传入再增加认证的token
user_cookie = {"sessionid":session_id,'token':'hsdksjkdsk'}
#其他接口请求调用时,传入封装好的user_cookie
resp2 = requests.post('路径',cookies=user_cookie)

 如:新增课程接口,需要用到sessionid才能发起请求

#新增课程接口,使用方案二
import requests
import json
def login(inData):
    url1 = "http://120.55.190.222/api/mgr/loginReq"
    payload=inData
    reps=requests.post(url1,data=payload)
    return reps.cookies['sessionid']  #返回sessionid值

def add_lesson(inBody,cookie):
    url="http://120.55.190.222:7080/api/mgr/sq_mgr/"
    payload={
                'action':'add_course',
                'data':inBody   #这里要求json格式,如'''{"name":"tom"}'''
    }
    reps = requests.post(url,data=payload,cookies=cookie)
    reps.encoding = 'unicode_escape'  #响应编码
    return reps.json()

if __name__ == '__main__':
    session_id = login({'username':'auto','password':'sdfsdfsdf'})#取出seeionid值
    user_cookie = {"sessionid":session_id}#重新封装cookie
    data={
        "name":"初中化学1",
        "desc":"初中化学课程1",
        "display_idx":"5"
    }
    #新增课程接口请求调用#data数据接口要求是json格式,用json.dumps()转为json格式
    print(add_lesson(json.dumps(data),cookie=user_cookie))
原文地址:https://www.cnblogs.com/king2/p/13762820.html