当前位置: 首页 > news >正文

接口自动化中对于文件上传的处理方法

正常的接口自动化基本都是json的格式,对于文件上传是一种特殊的格式是表单格式针对这种表单格式在接口自动化中怎么处理,主要通过工作中使用的一个实际的例子进行分享

举例:web上需要导入一个文件实现相关的功能,主要通过两个接口,第一个接口就是将文件进行上传或者上传到指定地点的token,第二个借口主要是将这个文件上传到指定的网址

接口1:入参-出参

接口2:入参-出参

 

import jsonimport jsonpath
import requestsurl1 = 'https://apigw-sit.ypshengxian.com/request'  # 接口调用的服务器的地址
url2 = 'https://sit-api-ypsx-resource.ypsx-internal.com/resource/upload'  # 将文件上传到终端的地址
filename = '库存导入模块.xlsx'  # 文件的地址
filepath='E:/testproject/库存导入模版.xlsx'
# 请求头的地址
headers1 = {'app-id': 'yptb','app-version': '1.0','app-platform': 'wxApp','Content-Type': 'text/plain'
}
data1 = {"api": "ylp.md.resource.service.getUploadToken", "version": "1.0", "token": "5dabc95eac7e4520ba96bbe481f785a0","nonce": "145a156d-d72b-11bc-bcbe-6f684dd2dca2", "login": "13270719291", "params": {"fileName": filename}}
#将data数据转换成json格式
data2=json.dumps(data1)
# 接口1获取上传的token
res = requests.request(method='POST',url=url1, data=data2,headers=headers1).json()idtoken=jsonpath.jsonpath(res,'$..params')[0]
print(idtoken)
idtoken1=json.loads(idtoken)['token']
print(idtoken1)
#接口2将文件上传到指定位置
files={"file": ("库存导入模版.xlsx", open(filepath, "rb"), "application/json")   #因为上传的文件是二进制所以要将文件以二进制的方式进行打开}
data2={"token": idtoken1}
response = requests.request(method='POST',url=url2, files=files, data=data2).json()
print(response)

http://www.lryc.cn/news/410307.html

相关文章:

  • Java高频面试题分享
  • kvm虚拟化平台部署
  • 利用arthas热更新class文件
  • 天机学堂 第四天 高并发优化总结
  • Canva收购Leonardo.ai,增强生成式AI技术能力
  • 前端练习<HtmlCSS>——照片墙(附完整代码及实现效果)
  • PHP基于微信小程序的打车平台-计算机毕业设计源码78689
  • Vue element ui分页组件示例
  • redis存储结构
  • SQL Server 数据误删的恢复
  • 墨烯的C语言技术栈-C语言基础-018
  • C端与B端 - 第一弹 - 理解和区分C端与B端软件开发
  • 穿越多元宇宙的.NET:一场跨平台的星际旅行
  • Python自学第五天
  • Cookie-Monster:一款针对Web浏览器的安全分析与数据提取工具
  • C语言的结构体
  • C语言 写一个函数days,实现某日在本年中是第几天计算。
  • 2-50 基于matlab的遗传模拟退火算法的聚类算法
  • 电脑屏幕录制软件,分享4款(2024最新)
  • 机械学习—零基础学习日志(高数16——函数极限性质)
  • 初识c++——list
  • angular入门基础教程(八)表单之双向绑定
  • 【C++】C++中的find方法介绍
  • JVM—HotSpot虚拟机对象探秘
  • AI测试:人工智能模型的核心测试指标,分类判别、目标检测、图像分割、定量计算分别有哪些指标?
  • 探索LLM世界:新手小白的学习路线图
  • Linux基础命令大全 持续更新中......
  • CPU的起源与发展历程
  • 【C语言】 二叉树创建(结构体,先序遍历,中序遍历,后续遍历)
  • 【和相同的二元子数组】python刷题记录