接口测试:
文件下载:
Content-Type: octets/stream 一般为文件类型:
将返回数据,导入excel 表格存储
文件上传:
# 文件上传: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方法
测试:
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)
上传多个文件:
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