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方法
python自动化上传文件_python接口自动化测试二十三:文件上传相关推荐
- python 接口测试 如何写配置文件_python接口自动化测试二十九:yaml配置文件的写和读...
# 先安装ruamel.yaml模块 写入配置文件: import os # 先安装ruamel.yaml模块 from ruamel import yaml # 将字典写入到yaml dict = ...
- python 接口测试 如何写配置文件_python接口自动化测试 - configparser配置文件解析器详细使用...
configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...
- python接口自动化测试代码_python接口自动化测试二:python代码实现接口测试
url = '接口地址' r = requests.get(url) #发送get请求 print(r.status_code) #打印状态码,若有重定向,返回的是重定向之后的代码 print(r.h ...
- python写接口函数_python接口自动化测试二十:函数写接口测试
# coding:utf-8 import requests import re from bs4 import BeautifulSoup # s = requests.session() # 全局 ...
- python接口自动化测试二十四:上传多个附件,参数化
python接口自动化测试二十四:上传多个附件,参数化 # 添加多个附件参数化files = [("1.png", "1.png") ("2.png& ...
- endnote如何导入txt文件_python如何处理txt及excel文件
txt文件读取 首先我们需要新建一个txt文件,在里面可以输入一些内容: 我们可以看到上面在当前路径下新建了一个txt文本,并在里面输入了一些内容,那么我们应该如何读取里面的内容呢? f = open ...
- python做接口自动化测试仪器经销商_Python接口自动化测试的实现
接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,工具的使用相对来说都比较简单,重点是要搞清楚项目接口的协议是什么,然后有针对性的进行选择,甚至当 ...
- python 接口自动化_Python 接口自动化测试
1. 接口基础知识 1.1 接口分类 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口. (1) webservice接口:走soap协议通过http传输,请求报文和返回报文都是xml格 ...
- python 数据驱动接口自动化框架_python接口自动化测试 - 数据驱动DDT模块的简单使用...
DDT简单介绍 名称:Data-Driven Tests,数据驱动测试 作用:由外部数据集合来驱动测试用例的执行 核心的思想:数据和测试代码分离 应用场景:一组外部数据来执行相同的操作 优点:当测试数 ...
最新文章
- BAT七年经验,却抵不过外企面试的两道算法题?
- java关键字 面试_java面试 关键字
- Windows 10如何使用文件历史记录备份个人文件
- 程承熊LEE微购店的买家秀
- MySQL数据库优化技巧大全
- 话里话外:流程图绘制初级:六大常见错误
- pytorch学习入门 (二) Variable(变量)
- 02. Creating a Web Forms User Interface
- c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)
- 大数据中存在哪些误解
- 疯狂Java讲义(十一)---- 初始化块
- PMP考试有哪些技巧?
- 开源BI工具superset的汉化
- 等值面抽取技术(Iso-surfaces Extraction Technique)
- 窗口函数查询优化案例
- 2021年中国养老保险参保人数、基金收入、基金支出及未来发展趋势分析[图]
- php gbk转拼音
- 学5G网络优化,就业前景好?薪资高?
- 面试题之——乐观锁和悲观锁区别
- 常用的服务器响应的状态码