zoukankan      html  css  js  c++  java
  • python自动化测试_7

    接口测试:

    文件下载:

    Content-Type: octets/stream   一般为文件类型:
    将返回数据,导入excel 表格存储
    

    img

    img

    文件上传:

    # 文件上传:content-Type:  multipart/form-data类型
    import requests
    
    class SendFile():
        def __init__(self, s):
            self.s = s
    
        def sendImg(self, jpgpath, jpgname='1.jpg', jpgtype='image/jpeg'):
    
            # 登录并更新cookies
            f = open('1.jpg', 'rb')  # 绝对路径
            url2 = ''
            body = {
                'localurl': (None, jpgname),
                'imgFile': ('1.jpg', open(jpgpath, 'rb'), jpgtype)
                # 1、绝对路径  2、open('1.jpg', 'rb')  3、content-type的值
                }
            # 上传图片的时候,不data和json,用files
            r = self.s.post(url2, files=body)    # 1、调用全局的s,用self.s   2、files
            print(r.text)
            # 上传到服务器,每传一次地址都不一样
    
            # 解决抛异常
            try:
                jpg_url = r.json()['url']   # (相对路径)
                print(jpg_url)
                return jpg_url
    
            except Exception as msg:    # 返回报错信息
                print('图片上传失败,原因:%s'%msg)   # 打印报错信息
            #    raise   # 主动抛原始异常
            #    raise  ··· # 抛出异常内容为:“···”
                return ''
    
    if __name__=='__main__':
        s = requests.session()
        from test.test_009_003_zentaologin import LoginZentao
        # 调登录方法
        login = LoginZentao(s)      # 实例化类LoginZentao为对象
        login.login()
        # 上传文件
        send = SendFile(s)      # 把类sendfile()实例化为对象
        send.sendImg()          # 调用sendfile()里面的sendImg方法
    

    img

    测试:

    import unittest
    import requests
    from test.test_009_003_zentaologin import LoginZentao   # 从文件夹.文件名导入LoginZentao类
    from test.test_009_002_sendfile import SendFile         # 从文件夹.文件名导入sendfile类
    import os
    
    # 获取文件路径
    parpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))  # 定位当前文件夹
    jpgpath = os.path.join(parpath, 'testdata', '1.jpg')    # “testdata”:存放文件的文件夹名,“1.jpg”:文件名
    
    
    class TestSendFile(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            cls.s = requests.session()
            # 实例化调用的类
            cls.login = LoginZentao(cls.s )  # 实例化类LoginZentao为对象
            cls.send = SendFile(cls.s)   # 把类sendfile()实例化为对象
    
        def test_01(self):
            # 上传文件:第一步,登录
            self.login.login()
            # 第二步,传文件
            result = self.send.sendImg(jpgpath)
            # 第三步:断言:返回的结果里面包含'.jpg'
            self.assertIn('.jpg', result)
    
    

    img

    上传多个文件:

    files = [("1.png", "1.png")
             ("2.png", "2.png")
            ]
    def addFiles(files, n=1):
        file = []
        for i in list(range(n)):
            a =("files[]", (files[i][1], open(files[i][2], "rb"), "image/png"))
            b = ("labels[]", (None, '附件标题1')),
            ("files[]", ("2.png", open("d:\2.png", "rb"), "image/png")),
            ("labels[]", "tu2"),
            file.append(a)
            file.append(b)
            return file
    
  • 相关阅读:
    非常奇怪的VS2005无法调试的问题
    自已写的“动易PowerEasy2006暴库工具”
    用VBA去除Excel工作表保护密码
    mapgis同arcmap之间的数据转换, 投影变换,误差校正,坐标,基础资料,教程的相关信息的汇集
    HDU You Are the One (dp)
    HDU4291 A Short problem
    Mondriaan's Dream(poj2411)
    HDU 4277 USACO ORZ
    求欧拉回路的路径(usaco3.3Riding the Fences)
    poj2923 (状态压缩01背包)
  • 原文地址:https://www.cnblogs.com/shaozheng/p/12875657.html
Copyright © 2011-2022 走看看