700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python自动化上传文件_python接口自动化测试二十三:文件上传

python自动化上传文件_python接口自动化测试二十三:文件上传

时间:2020-01-20 03:01:32

相关推荐

python自动化上传文件_python接口自动化测试二十三:文件上传

# 以禅道为例:

一、创建一个类,类里面写一个登录方法:

import requests

class LoginZentao():

def __init__(self, s): # 初始化

self.s = s # 定义一个全局的s

def login(self):

r = self.s.post() # self.s调用全局的s

pass

if __name__=='__main__':

s = requests.session()

zentao = LoginZentao(s) # 类实例化为对象,传入参数s

zentao.login() # 调用zentao里面的login() 方法

二、上传图片接口:

# 文件上传: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)

# # 调登录方法

# login = LoginZentao(s) # 实例化类LoginZentao为对象

# login.login()

# # 上传文件

# send = SendFile(s) # 把类sendfile()实例化为对象

# send.sendImg() # 调用sendfile()里面的sendImg方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。