# 以禅道为例:
一、创建一个类,类里面写一个登录方法:
import requestsclass 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 unittestimport requestsfrom 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方法
原文地址:https://www.cnblogs.com/zhongyehai/p/9160246.html
时间: 2024-10-08 23:46:03