$http如何在向后台传递文件的同时传递参数_上传下载文件接口测试

简介

在做接口测试的过程中,我们会遇到需要处理文件上传和下载的情况,我们可以使用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里,正常填写请求参数

33788336d27bd94b249bfa9a012e2b26.png

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

7d16a83294f6a64dd1ba5325e84296f4.png

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

b92ce9e789c0b035da3939b22914de46.png

成功返回响应结果

2a2258469a0a15c6ff151698a6dd2751.png

文件下载处理

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

发起图片下载请求

27a5c97ad76a8bd4711440a0b4d02340.png

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

c4498ad05e073af522de6fd25879d0d9.png

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

3e0d6af520460da1f0fce09731366624.png

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

d47127fab77a1f164da4db1ed57a703f.png

作  者:Testfan Kitty

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值