• 在做接口自动化时,需要用到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))
  • 相关阅读:
    AD域渗透测试笔记
    ctf之WEB练习一
    CTF之crpto练习三
    ctf之WEB练习二
    ctf之WEB练习三
    [转]Ant学习笔记——自己构建Ant编译环境
    [转]【NoSQL】NoSQL入门级资料整理(CAP原理、最终一致性)
    啥叫异步调用
    C++中虚函数的作用是什么?它应该怎么用呢?
    [转]Thrift连接池实现
  • 原文地址:https://www.cnblogs.com/king2/p/13762820.html
Copyright © 2020-2023  润新知