news 2026/5/21 0:12:16

JMeter接口测试之文件上传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JMeter接口测试之文件上传

最近用JMeter做接口测试,频繁遇到了文件上传的接口,与其他一般接口的处理方式不一样,想着分享下,希望能给测试同学一点启发。

文章将围绕三个部分进行展开:

一、用户场景

二、接口请求参数

三、JMeter脚本编写步骤

四、JMeter脚本执行

一、用户场景

有一个新建用户凭证页面,填写字段信息,上传图片文件,点击提交,即新建成功。

这个步骤包含两个接口,一个上传图片文件接口,返回一个路径字段值,在新建凭证接口的请求参数中带上路径,即可新建成功。

实现脚本的基本思路就是先调用上传接口,利用JSON提取器将返回的路径字段值提取出来,存在一个变量${get_picture_url}中,再调用新建接口,直接将路径变量的值赋给请求参数attachUrl。

二、接口请求参数

1、文件上传接口

对于文件上传类的接口,注意观察Request Headers的Content-Type,值为:multipart/form-data

请求体,参数为file

响应值,返回上传文件的路径信息,即data字段的值

2、新建用户凭证接口

Request Headers的Content-Type,值为:application/x-www-form-urlencoded

请求体,参数为有6个,主要关注attachUrl,这个参数是上传接口返回字段data的值

响应值,新建成功则返回success

三、JMeter脚本编写步骤

一)上传接口脚本编写

1、添加一个线程组:财务管理

2、添加一个简单控制器

加不加都不重要,主要是为了规范脚本,使脚本更便于阅读,一般是一个简单控制器下一个http请求

3、添加http请求

协议,服务器名称,请求方法,请求路径等照常填写,但是要勾选 Use multipart/form-data for POST,如果还有其他参数,直接在Parameters里面照常填写,示例中的接口没有,就不写了

切换至File Upload,填写上传文件信息

文件名称:写本地的上传文件路径即可(注意,脚本部署到Linux服务器上时,注意切换路径)

参数名称:填写文件路径的参数名称,示例中的参数是file

MIME类型:multipart/form-data

4、添加响应断言

根据实际接口填写即可

5、添加JSON提取器

Names of Created variables:作为引用的变量名称,多个变量名通过分号;隔开,自定义

JSON Path expessions:格式为 . (层级名称),本次示例即为 .(层级名称),本次示例即为.(层级名称),本次示例即为.data

Match No.:取第几个数值,0代表随机,-1代表取全部数组数据,1代表取一个变量数值,与设置的变量名称有关,本次示例填-1(说明:如果填写1,后面引用变量的时候直接用g e t p i c t u r e u r l 即可,如果填写 − 1 ,返回的是一个数组,后面引用变量的时候要用 {get_picture_url}即可,如果填写-1,返回的是一个数组,后面引用变量的时候要用getp​ictureu​rl即可,如果填写−1,返回的是一个数组,后面引用变量的时候要用{get_picture_url_1},${get_picture_url_2}的形式)

Compute concatenation var(suffix_ALL):匹配到的所有数值并保存,默认为空即可

Default Value:取值失败时展示的内容,默认为空即可

二)新建用户凭证接口

1、添加一个简单控制器

加不加都不重要,主要是为了规范脚本,使脚本更便于阅读,一般是一个简单控制器下一个http请求

3、添加http请求

协议,服务器名称,请求方法,请求路径等照常填写,不需要勾选 Use multipart/form-data for POST,attachUrl参数,直接将变量${get_picture_url_1}的值赋给attachUrl

File Upload也不用填写任何信息了

4、添加响应断言

根据实际接口填写即可

四、JMeter脚本执行

执行脚本,除了查看结果数,看接口全部执行成功外,还要去页面看新建的用户凭证详情中,上传图片是否成功。

今天在调试过程中发现,即使新建用户凭证接口的路径不正确,也能成功新建用户凭证,只不过在查看详情的时候,图是裂的,就像这种效果,所以即使脚本调通了,也要去页面看看,图片是不是真的上传成功了。

这样,一个完整的接口上传脚本就成功了。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 12:22:51

java计算机毕业设计商洛学院培训过程管理平台 高校继续教育与技能培训全周期在线管理系统 基于SpringBoot的校企联合培训跟踪与评价平台

计算机毕业设计商洛学院培训过程管理平台7jd419(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。商洛学院每年承接中小学教师再教育、公务员技能提升等30余类培训项目,…

作者头像 李华
网站建设 2026/5/20 22:29:24

Redis 缓存

Redis 缓存 缓存的通用模型 缓存与数据库的协同工作有三种经典模式:Cache Aside(旁路缓存):由应用层负责维护缓存与数据库的一致性 查询:先查缓存,命中则返回;未命中则查数据库,并将…

作者头像 李华
网站建设 2026/5/20 8:25:16

MySQL索引优化实战指南:SOAR与SQLAdvisor在Archery平台的应用对比

MySQL索引优化实战指南:SOAR与SQLAdvisor在Archery平台的应用对比 【免费下载链接】Archery hhyo/Archery: 这是一个用于辅助MySQL数据库管理和开发的Web工具。适合用于需要管理和开发MySQL数据库的场景。特点:易于使用,具有多种数据库管理功…

作者头像 李华
网站建设 2026/5/17 8:10:34

Meiam System 企业级权限框架终极指南:构建现代化前后端分离应用

Meiam System 企业级权限框架终极指南:构建现代化前后端分离应用 【免费下载链接】Meiam.System .NET 7 / .NET 5 WebAPI Vue 2.0 RBAC 企业级前后端分离权限框架 项目地址: https://gitcode.com/gh_mirrors/me/Meiam.System 项目魅力展示 在数字化转型浪…

作者头像 李华
网站建设 2026/5/20 22:00:03

3分钟快速集成eventpp:C++事件处理库的终极入门指南

3分钟快速集成eventpp:C事件处理库的终极入门指南 【免费下载链接】eventpp eventpp - 一个为C提供的事件分派器和回调列表库。 项目地址: https://gitcode.com/gh_mirrors/ev/eventpp eventpp是一个功能强大的C事件处理库,提供事件分发器、回调列…

作者头像 李华