zoukankan      html  css  js  c++  java
  • 在做接口自动化时,需要用到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))
  • 相关阅读:
    【笔记】C++自学笔记系列02:类的组合与类的友元
    【windows程序设计】系列02:显示屏幕分辨率
    【笔记】C++自学笔记系列01:基础知识
    【windows程序设计】系列03:窗口与消息
    【windows程序设计】系列04:文本输出
    【Boost】系列05:数值与字符串转换
    【windows程序设计】系列01
    【Boost】系列04:实用技巧之禁止类拷贝构造和赋值
    【gdb】基本操作
    性能测试基本流程介绍(《软件性能测试过程详解与安全剖析》)
  • 原文地址:https://www.cnblogs.com/king2/p/13762820.html
Copyright © 2011-2022 走看看