zoukankan      html  css  js  c++  java
  • 自动化测试第八节---base64、zip方法、异常处理、接口签名、网络编程

    1、base64加密

    import base64
    s='1234'
    new_s = base64.b64encode(s.encode())#加密
    print('加密完的',new_s)
    old_s = base64.b64decode(new_s.decode()).decode() #解密回来的
    print('解密回来的',old_s)

    def bs64_data_encode(st):
    '''这个函数是用来base64加密的'''
    salt='12345'
    new_str = str(st)+salt
    encode_str = base64.b64encode(new_str.encode()).decode()
    return encode_str

    def bs64_data_decode(st):
    '''这个函数是用来base64解密的'''
    salt='12345'
    res = base64.b64decode(st).decode()
    res=res.replace(salt,'')
    return res
    2、zip方法
    a1=['姓名','年龄','电话']
    a2=['nyy',28,110]
    for k,v in zip(a1,a2):#zip函数接受任意可迭代的对象作为参数
    print('%s:%s'%(k,v))
    '''打印出:
    姓名:nyy
    年龄:28
    电话:110'''
    print(zip(a1,a2))#只是用zip方法打印的是内存地址
    print(list(zip(a1,a2)))#对象中对应的元素打包成一个个tuple,打印tuples组成的list,如[('姓名', 'nyy'), ('年龄', 28), ('电话', 110)]
    3、异常处理
    try:
    price = input('请输入价格:')
    if price.isdigit():
    pass
    else:
    raise ValueError#主动抛出异常
    except Exception as e: #如果上面的代码出错了,才走except #python3 里面处理异常这么写
    print(e)
    else:#如果上面的代码未出错,走else
    print('11')
    finally:#不管try的代码是否出错,都走finally
    print('x')

    4、接口签名
    说白了就是登录之后给你的通行证
    接口签名规则,如:
    md5(username+当前登录的时间戳+salt)
    sign_str = username + str(int(time.time())) + SALT
    sign=md5_passwd(sign_str)#md5后的签名
    1、有一些参数就从cookie里面获取到了。因为浏览器会自动把cookie里面的东西发给服务端
       获取cookie的话,就是request.cookies.get('k')
    2、如果你想setcookie的话,那你就用
       res = make_response('{"msg":"xxxx"}')
       res.set_cookie(k,v)#setcookie
       但是呢,一般这样的关键信息不要写到cookie里面因为会导致cookie盗用

    5、网络编程
    url编码、url解码:
    from urllib.parse import quote,unquote
    a=' 奥迪% jdskfiewklew'
    print(a)
    print(quote(a))#url编码
    print(unquote(quote(a)))#url解码

    urllib模块:
    from urllib.request import urlopen #从urllib里面导入urlopen,它是用来打开一个连接的
    from urllib.parse import urlencode #是把字典转成k=v这种形式的
    url="http://127.0.0.1:8001/login"
    data = {"username":"nina","password":123456}
    param = urlencode(data)
    # res = urlopen(url+'?'+param).read().decode() #发get请求
    res = urlopen(url,param.encode()).read().decode() #发post请求
    print(res)

    requests模块:
    import requests
    url = "http://127.0.0.1:8001/login"
    data={"username":"nina","password":"123456"}
    req = requests.get(url,data)
    # req = requests.get(url+"?"+"username=nina&pwd='123456'")#这样直接拼接url也可以
    print(req.text) #.text时返回一个字符串
    print(req.json()) #.json()时返回一个字典,前提时接口必须返回json串

    #********#获取签名sign***************************************************************************************
    def get_sign(url,data):
    res = requests.post(url,data).json()
    print(res)
    return res['sign']

    #********请求报文为json类型的*******************************************************************************
    sign = get_sign(url,data)
    data2 = {
    "username":'jackzhao',
    "real_name":"赵赵",
    "class":"巨蟹座",
    "phone":"18877770001",
    "sign":sign
    }
    r = requests.post('http://127.0.0.1:8001/add_stu',json=data2)
    print(r.text)

    # ********发带cookie的 header*********************************************************************************
    sign = get_sign(url,data)
    cookie = {'sign':sign}
    header = {'nieyy':'dsdswww'}
    data2 = {
    "username":'mmaj',
    "real_name":"玛丽",
    "class":"巨蟹座",
    "phone":"19800090002"
    }
    r = requests.post('http://127.0.0.1:8000/add_stu',json=data2,cookies=cookie,headers=header) #header里面传的时候不能有中文
    print(r.text)

    #********上传文件************************************************************************************************
    file ={'file_name':open('hahah.py',encoding='utf-8')}
    url="http://127.0.0.1:8001/upload"
    r = requests.post(url,files=file)
    print(r.text)

     
     
     
  • 相关阅读:
    swf上传地址
    Nape 获取碰撞点加特效
    vbs打包exe工具
    Air打包exe
    JDK12的安装搭建
    Dubble 入门
    FastDFS 集群
    PAT Advanced 1077 Kuchiguse (20 分)
    高可用4层lvs——keepalived
    PAT Advanced 1035 Password (20 分)
  • 原文地址:https://www.cnblogs.com/ninanie/p/7865880.html
Copyright © 2011-2022 走看看