zoukankan      html  css  js  c++  java
  • pytest之基础,json,token,cookie,session,requests库易错点

    json有对象和数组两种结构,有字符串,数字,逻辑值,空值,四种数据类型

    口诀1:用大括号{}表示对象,对象是由属性组成的,属性是由键值对组成的,键值对用冒号隔开,属性之间用逗号隔开。键必须要用双引号引起来

    口诀2:用中括号[]表示数组,数组由单独的值组成

    口诀3:json可以嵌套

    token

    token是由服务器产生的,存在服务器内存或硬盘中

     1 #!/usr/bin/env python3
     2 # -*- coding: UTF-8 -*-
     3 """
     4 @author:zhaojian
     5 @file:login.py
     6 @time:2020/11/18
     7 """
     8 import requests
     9 #MD5加密
    10 import hashlib
    11 def get_md5(psw):
    12     '''
    13     :param psw:
    14     :return:
    15     '''
    16     md5 = hashlib.md5()#实例化对象
    17     md5.update(psw.encode('utf-8'))#加密操作
    18     return md5.hexdigest()#调用hexdigest,获取加密结果
    19 
    20 
    21 
    22 def login(inData,getToken=True):
    23     '''
    24 
    25     :param inData:
    26     :param getToken:
    27     :return:
    28     '''
    29     url = "http://121.4.1.39:8082/account/sLogin"
    30     inData['password'] = get_md5(inData['password'])
    31     payload = inData
    32     resp = requests.post(url,data=payload)
    33     # print(resp.request.body)
    34     # print(resp.request.headers)
    35     # print(resp.request.url)
    36     # print(resp.text)
    37     '''
    38     cookie的获取
    39     1.print(resp.cookies)#原生态提取cookies的方法,直接使用
    40     2.对cookie进行重新封装,再使用
    41       print(resp.cookies[sessionid])#直接提取cookie中的sessionid值
    42     
    43     return resp.cookies,resp.cookies[sessionid]
    44     #1.原生态使用方法
    45     cookie1 = login({'username':'sq0178','password':'a55427'})[0]  #因为上面return了两个返回值,所以要写下标为0,才能取到值
    46     res1 = requests.post(url,cookies=cookie1)
    47     #2.方案2
    48     sessionid2 = login({'username':'sq0178','password':'a55427'})[1]
    49     cookie2 = {'sessionid':sessionid2}
    50     res2 = requests.post(url,cookies=cookie2)
    51     '''
    52     if getToken:
    53         #获取响应是个字典 ,resp.json()方法,它的结果是一个字典
    54         return resp.json()['data']['token']
    55     else:
    56         return resp.json()#获取接口响应,只有明确响应是json格式时才能用这个方法
    57 
    58 
    59 if __name__ == '__main__':
    60     print(login({'username':'0178','password':'5'}))

    cookie

    cookie里一般是带有sessionId的

    cookie是分站点的,站点之间的cookie是相互独立的

    浏览器的cookie是保存在浏览器某个位置的

    服务器端可以通过:响应头中的set-Cookie参数,对客户端的Cookie进行管理

    浏览器每次请求,都会把该站点的cookie发送给服务器

    登录一般需要cookie和Session配合使用

    sessionId

    sessionId是一个对象,是服务器产生的,保存在服务器内存中

    sessionId是session对象的一个属性,是全局唯一的,永远不会重复的

    接口自动化遇到https的url的话,要在参数那加个verify = False

  • 相关阅读:
    NFramework开源AOP框架设计文档
    gdi+学习笔记(1)
    winform 二进制图片处理
    电脑屏幕分辨率多少合适
    c# winform AutoScaleMode属性 转
    Windows server 2008,Windows server 2008 R2,Windows 2008 SP2 区别
    视频分辨率
    ref和out(MSDN)
    转DirectX、Directshow介绍
    shell 命令的使用
  • 原文地址:https://www.cnblogs.com/zhaobobo001/p/14433112.html
Copyright © 2011-2022 走看看