上传下载文件接口测试

Posted 自动化软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传下载文件接口测试相关的知识,希望对你有一定的参考价值。

简介
在做接口测试的过程中,我们会遇到需要处理文件上传和下载的情况,我们可以使用Jmeter来完成文件的上传下载处理,本文提供两个小示例来展示如何使用Jmeter完成文件上传和文件下载并保存的功能


首先来看看普通的Http接口请求的过程:

填写服务器环境信息
填写接口请求方法和接口路径
填写参数信息
发送请求
接受响应


文件处理上传


文件上传的处理完全遵循上述流程,只需要在步骤3中去申明请求的类型是multipart/form-data和相应的Content-Type

multipart/form-data是Http协议规定的一种表单类型 ,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。 既可以上传键值对,也可以上传文件。 当上传的字段是文件时,会有Content-Type来表明文件类型

Content-Type: 互联网媒体类型; 也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息,可以是:

image/gif : gif图片格式  
application/pdf : pdf格式
application/msword: Word文档格式
application/octet-stream: 二进制流
binary:相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件


示例:上传图片到baidu实现baidu搜图
在HttpSampler里,正常填写请求参数

上传下载文件接口测试

切换到File Upload 参数页,填写文件路径和MimeType(Content-Type)即可

上传下载文件接口测试

运行脚本,查看请求数据,图片被以二进制形式的表单参数传递到服务器

上传下载文件接口测试

成功返回响应结果

上传下载文件接口测试


文件下载处理


文件下载的步骤也和普通的Http请求一样,只不过返回的是二进制的文件流,需要额外添加请求后置处理器去保存文件到本地电脑上,此处可以通过添加BeanshellPostProcessor来实现文件的保存和文件内容的解析。Beanshell是一种Java脚本语言,本示例展示如何把文件下载保存到本地:


发起图片下载请求

上传下载文件接口测试

添加Beanshell Post Processor,使用内置变量prev获取接口响应数据,并通过Java代码把响应的二进制流保存到本地E盘

上传下载文件接口测试

运行脚本,查看结果和本地文件

上传下载文件接口测试

如果想解析文件内容可以使用Java来读取文件并进行值得校验

上传下载文件接口测试

上传下载文件接口测试
Bye~


我就知道你“在看”

以上是关于上传下载文件接口测试的主要内容,如果未能解决你的问题,请参考以下文章

Python接口测试,requests库的post请求进行文件下载

Jmeter之下载文件

使用Jmeter如何测试下载接口

jmeter接口测试实例-文件下载

python测试开发django-112.文件下载功能

Jmeter学习随笔文件下载接口