url
=
""
# 上传文件的接口地址
header
=
{
"Content-Type"
:
""
,
"Cookie"
:
""
}
# 请求头部信息,大部分上传照片不要
"Content-Type"
值
data
=
{
}
# data传参(部分接口需要data传参)
file_path
=
""
# 图片或文件的绝对路径
file
=
{
"multipartFile"
:
(
"a.jpg"
,
open
(
file_path
,
"rb"
)
,
"image/jpeg"
)
}
#
"image/jpeg"
照片格式
#file
=
{
"multipartFile"
:
(
"产品导入.zip"
,
open
(
path
,
"rb"
)
,
"application/zip"
)
}
#
"application/zip"
zip格式
r
=
requests
.
post
(
url
,
headers
=
header
,
data
=
data
,
files
=
file
)
print
(
r
.
json
(
)
)
# 打印接口返回数据
继续优化下,上面代码运行后虽然上传图片成功,但是会报文件未关闭的错误。因此我们改造下,使用with方法打开,它会自动关闭。
代码如下:
# coding=utf-8
# 导入requests包
import requests
url = "" # 上传文件的接口地址
header = {"Content-Type":"", "Cookie":"" } # 请求头部信息,大部分上传照片不要"Content-Type"值
data= {} # data传参(部分接口需要data传参)
file_path = "" # 图片或文件的绝对路径
with open(self.img_path, 'rb')as f: # 使用with打开图片后自动关闭,直接用open后面会报未关闭图片错误
file = {"multipartFile": ("a.jpg", f.read(), "image/jpeg")} # "image/jpeg"照片格式
#file = {"multipartFile": ("产品导入.zip", f.read(), "application/zip")} # "application/zip"zip格式
r = requests.post(url, headers=header, data=data, files=file)
print(r.json()) # 打印接口返回数据
本文介绍如何使用requests上传图片或文件一般上传都需要使用到post请求,使用files参数上传图片或文件代码如下# coding=utf-8# 导入requests包import requestsurl = "" # 上传文件的接口地址header = {"Content-Type":"", "Cookie":"" } # 请求头部信息data= {} # data传参(部分接口需要data传参)file_path = "" # 图片或文件的绝对路径file = {"
from
requests_toolbelt.multipart.encoder import MultipartEncoder
def upload_portrait(self):
encoder = MultipartEncoder(
{"file": ('docker.jpeg', open("E:/work/XXX/docker.jpeg", "rb"), 'image/jpeg'),
"appBiz": "auth_pic",
python+requests接口自动化1. 介绍2. 快速上手(发送get和post请求<含json>)3. 接口<参数>的关联与cookie提取4. 接口实现文件(图片)上传结尾
1. 介绍
Python+Requests接口自动化介绍、协议及环境搭建
2. 快速上手(发送get和post请求<含json>)
发送get请求与post请求(包含json格式的请求)
3. 接口<参数>的关联与cookie提取
接口<参数>的关联与cookie提取
4. 接口
1. 一切的脚本都是为了偷懒
随着一个程序的开发周期增加,不管是代码还是静态资源都会不断的增加,每次图片上传服务器都是一件比较繁琐的事情,如果多让后端上传几次,估计就要打架,所以为了公司的团结,本人决定写个自动上传的脚本,一劳永逸!
2. 准备工作
脚本需要使用的库
import requests,json,os
模拟上传的图片放到脚本所在文件夹的images文件,统一方便管理
4. 配置上传接口和参数
url = 'https://xxxx/uploadToSoa'
data = {"to
框架代码已封装 小白 3行代码即可实现接口自动化
使用教程:https://blog.csdn.net/weixin_41121249/article/details/125162171?spm=1001.2014.3001.5502
框架搭建历程如下
1pytest插件,运行规则以及参数,pytest.ini配置文 件,跳过用例,用例执行顺序,夹具等
2Fixture固件,contest.py,断言以及Allure报告生成!
3Allure报告定制以及Parametrize数据驱动
4
requests模块详解以及Cookie,Session关联处理
5接口统一请求封装和接口关联封装
6接口自动化框架封装之规范YAML测试用例&接口关联封装改进&基础路径封装改进
7热加载封装以及断言封装
8数据类型处理以及DDT数据驱动封装
9异常日志与BaseUrl封装
官方文档:https://2.python-requests.org//en/master/
工作中涉及到一个功能,需要上传附件到一个接口,接口参数如下:
使用http post提交附件 multipart/form-data 格式,url : http://test.com/flow/upload,
字段列表:
md5: //md5加密(随机值_当时时间戳)
filesize: //文件大小
file: //文件内容(须含文件名)
{"success":true,"uploadName":"tmp.xml","uploadPath":"uploads\/2
接口自动化框架(1-4)(5)(6)(7)(8)(终极版)共6个分支
1pytest插件,运行规则以及参数,pytest.ini配置文 件,跳过用例,用例执行顺序,夹具等
2Fixture固件,contest.py,断言以及Allure报告生成!
3Allure报告定制以及Parametrize数据驱动
4requests模块详解以及Cookie,Session关联处理
5接口统一请求封装和接口关联封装
6接口自动化框架封装之规范YAML测试用例&接口关联封装改进&基础路径封装改进
7热加载封装以及断言封装
8数据类型处理以及DDT数据驱动封装
9异常日志与BaseUrl封装
import base64
session =
requests.session()
url = 'http://ipadmin.zhaopingou.cn/add_userVerification_upload_zc'
session.headers = {
'Host': 'ipadmin.zhaopingou.cn',
'User-Agent': 'Mozilla/5.
轻烟飘荡:
Python报错集合篇9-SyntaxError: positional argument follows keyword argument
sonnyuu:
Python报错集合篇9-SyntaxError: positional argument follows keyword argument
asfvdvc:
Python+Selenium练习篇15-如何抓取一闪而过的弹窗信息
qq_42373923: