接口测试之文件上传

 在日常工作中,经常有上传文件功能的测试场景,因此,本文介绍两种主流编写上传文件接口测试脚本的方法。

  首先,要知道文件上传的一般原理:客户端根据文件路径读取文件内容,将文件内容转换成二进制文件流的格式传输给服务端,而服务端接受客户端传过来的二进制文件流以及文件名称等信息(此时这些二进制文件流存储在内存中),然后将其写入存储空间(即磁盘中),完成上传操作,返回给客户端信息。

  ok,知道原理后,开始操作。

  本文将根据示例接口,编写文件上传接口脚本(示例接口demo采用python+django编写,后面会讲如何实现),接口信息如下:

接口信息:127.0.0.1:8001/case/upload_file
请求方式:post
参数名称:myfile
参数类型:file

方法1:postman编写测试脚本

  a.将接口信息填入请求中,请求参数类型勾选File

  b.点击【select Files】,调用系统文件弹窗选择文件,将文件信息赋值给接口中myfile参数

  c.选择文件参数后,点击【send】按钮发送请求。

  至此,请求发送完毕,查看postman接收到接口返回上传完成信息,上传文件成功出现在目录中(如下图)。

方法2:使用python+requests编写脚本文件

  原理同postman,文件参数要使用File,而非一般接口的body参数(当然,接口其他参数仍然要以body传输)   

       注意:要传入文件所在路径

import requestsurl = "http://127.0.0.1:8001/case/upload_file"
payload = {}
files = [('myfile', ('测试1.mp4', open('C:\\Users\EEO\Videos\Captures\测试1.mp4', 'rb'), 'application/octet-stream'))
]
headers = {}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)

   如图所示,文件已成功上传至服务器。


以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55271.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[疑难杂症2023-007]multiprocessing.Process使用时遇到的几个棘手问题

本文由Markdown编辑器编辑完成。 1. 背景 近日,为了解决自己负责的一个组件,在处理大量数据时,由于内存释放不及时,而导致整个组件占用了较高的内存。 这主要是因为目前我们在使用python的一个采用多进程的框架——Celery. 关于…

SpringIoc-个人学习笔记

Spring的Ioc、DI、AOP思想 Ioc Ioc思想:Inversion of Control,控制反转,在创建Bean的权利反转给第三方 DI DI思想:Dependency Injection,依赖注入,强调Bean之间的关系,这种关系由第三方负责去设…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(20)-Fiddler精选插件扩展安装让你的Fiddler开挂到你怀疑人生

1.简介 Fiddler本身的功能其实也已经很强大了,但是Fiddler官方还有很多其他扩展插件功能,可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了,为了更好的扩展Fiddler&#xff0c…

PostMan调用metersphere接口 ,copy完事~

获取token接口: http://192.****:8081/signin ,接下来就可以调用其他功能的接口了 例:创建账户,将获取到的access_token放置在接口请求的token中 其他接口调用同上

K8s中的Secret

Secret作用:加密数据存在etcd里面,让pod容器以挂载Volume方式进行访问。场景:凭据

K8S系列文章 之 容器存储基础 Volume

Volume Volume是容器数据卷。我们经常创建删除一些容器,但有时候需要保留容器中的一些数据,这时候就用到了Volume。它也是容器之间数据共享的技术,可以将容器中产生的数据同步到本地。实际就是把容器中的目录挂载到运行着容器的服务器或个人…

git报错:Error merging: refusing to merge unrelated histories

碰对了情人,相思一辈子。 打命令:git pull origin master --allow-unrelated-histories 然后等一会 再push 切记不要有冲突的代码 需要改掉~

零代码爬虫平台SpiderFlow的安装

什么是 Spider Flow ? Spider Flow 是一个高度灵活可配置的爬虫平台,用户无需编写代码,以流程图的方式,即可实现爬虫。该工具支持多数据源、自动保存至数据库、任务监控、抓取 JS 动态渲染页面、插件扩展(OCR 识别、邮…

【IMX6ULL驱动开发学习】22.IMX6ULL开发板读取ADC(以MQ-135为例)

IMX6ULL一共有两个ADC&#xff0c;每个ADC都有八个通道&#xff0c;但他们共用一个ADC控制器 1.设备树 在imx6ull.dtsi文件中已经帮我们定义好了adc1的节点部分信息 adc1: adc02198000 {compatible "fsl,imx6ul-adc", "fsl,vf610-adc";reg <0x0219…

【性能测试】关于系统用户数,并发用户数,在线用户数,吞吐量

目录 1、概念 系统用户数 在线用户数 并发用户数 计算公式 2、吞吐量 资料获取方法 1、概念 系统用户数 狭义上来说&#xff0c;可以理解为系统注册用户数&#xff1b;广义上来说&#xff0c;可以理解为所有访问过系统的用户数 在线用户数 狭义上来说&#xff0c;可以…

无涯教程-Lua - Arrays(数组)

数组是对象的有序排列&#xff0c;可以是包含行集合的一维数组&#xff0c;也可以是包含多行和多列的多维数组。 在Lua中&#xff0c;数组是使用带有整数的索引表实现的。数组的大小不是固定的&#xff0c;并且可以根据无涯教程的要求(取决于内存限制)来增长。 一维数组 一维…

6.6.tensorRT高级(1)-mmdetection框架下yolox模型导出并推理

目录 前言1. yolox导出2. yolox推理3. 补充知识3.1 知识点3.2 mmdetection 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习…