JMeter接口测试之文件上传(参数提取与传递)

参考文档:

Jmeter接口测试-文件上传(全网最详细的教程)_jmeter 文件上传-CSDN博客

1、首先通过fiddler抓取文件上传接口,在Raw的tab页中查看默认请求头以及请求参数 如图所示

2、在jmeter中导入抓取的接口,首先需要配置token传递(有教程不赘述),然后配置默认消息请求头,因为该接口与其它接口的默认请求头不一致最简单的方式就是每个接口配置一个请求头,该上传文件请求头配置如下

如步骤1获取到的接口请求头所示,直接将请求头的信息复制过来即可,但是需要修改获取新的token,以及删除如下图所示的两个请求头,Content-Disposition只需输入form-data; name="file"即可,最终配置如上图所示。

3、接口的默认请求消息头配置完成后m,需要对接口进行配置;首先需要勾选对POST使用multipart/form-data;其次查看fiddler的接口消息头中是否有其他参数如果有则添加在对应的参数/消息体数据中,没有的话就只需要配置文件上传tab,我这边是没有的。只需要配置文件文件上传即可。

4、在文件上传的接口界面,点击文件上传tab,点击浏览在本地选择需要上传的文件,输入参数名以及MIME类型;

file和MIME类型对应关系如下图所示:

参数名称根据fillder中的Content-Disposition: form-data; name="file"; 填写file;MIME类型根据fiddler中的Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document;填写 application/vnd.openxmlformats-officedocument.wordprocessingml.document;

配置完成如图所示:

file和MIME类型对应关系如下图所示

5、上述步骤完成后就可以实现接口上传文件的效果了,这时可以通过添加其他组件来实现接口响应结果的参数传递;我这边一般是用正则表达式提取器,之前token传递教程中有使用,这次就换个组件使用Json提取器。

6、在对应接口下添加JSON提取器,添加步骤如下图所示。

7、添加JSON提前器之后,需要根据该接口的响应数据以及所需要提取的参数对该组件进行配置,接口响应参数如下(使用JSON格式显示);

我这边需要提取接口结果中的createTime;imageUrl;id

8、查看接口响应数据以及找到需要提取的参数后,则需要配置JSON提取器组件,

  8.1:第一行参数名,需要几个参数则写几个参数,直接用;隔开;如:imageUrl;createTime;id

  8.2:第二行提取表达式,有几个参数则需要写几个对应表达式;如:$.data.imageUrl;$.data.createTime;$.data.id      ;$.是固定格式;data代表接口响应数据中的大括号的参数(如步骤7的图中所示);imageUrl则是接口响应数据中所需要抓取的参数值。

   8.3:第三行默认取值范围,都取找到的第一个值 如:1;1;1

   8.4:最后一行则表示默认值,抓取不到数据显示的值,如:error1;error2;error3

   8.5:有几个参数,下方对应必须有几个。如上方,有3个参数名(imageUrl;createTime;id),下方一一对应,每行有3个

9、获取到上传文件响应数据的参数值后,可以将参数传递给与上传文件相关联的添加数据接口。

在对应的参数上填写:${id}  ${imageUrl}  ${createTime};如下图所示

10、在步骤8配置完JSON提取器后可以在该接口下再添加一个JSON断言来判断是否提取到对应的参数值。

11、在JSON断言中配置,根据上传文件接口的响应数据

 "code": 200,来填写,AssertJSON Path exists(JSON断言路径)输入$.code;在Expected Value:输入200

至此上传文件接口以及相关的参数值传递就配置完成了。

下面链接是接口上传图片的相关教程,过程应该是上传文件差不多。

JMeter接口测试之文件上传!_jmeter图片上传(2),2024年最新被大佬问到自闭_jmeter 文件上传-CSDN博客

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

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

相关文章

新书速览|深入理解Hive:从基础到高阶:视频教学版

《深入理解Hive:从基础到高阶:视频教学版》 本书内容 《深入理解Hive:从基础到高阶:视频教学版》采用“理论实战”的形式编写,通过大量的实例,结合作者多年一线开发实战经验,全面地介绍Hive的使用方法。《深入理解Hiv…

AI算法18-最小角回归算法Least Angle Regression | LARS

​​​ 最小角回归算法简介 最小角回归(Least Angle Regression, LAR)是一种用于回归分析的统计方法,它在某些方面类似于最小二乘回归,但提供了一些额外的优点。最小角回归由Bradley Efron等人提出,主要用于处理具有…

【Linux】安装PHP扩展-redis

说明 本文档是在centos7.6的环境下,安装PHP7.4之后,安装对应的PHP扩展包redis。 一、下载redis扩展 pecl官方地址:PECL :: The PHP Extension Community Library 下载的版本是:redis-5.3.7.tgz 二、安装redis扩展 1.上传 redis 压缩包到…

基于STM32设计的物联网智能鱼缸(微信小程序)(187)

基于STM32设计的物联网智能鱼缸(微信小程序)(187) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】设计需求总结【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】ESP8266工作模式配置1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献1.4 开发工具的…

Amazon Bedrock 常用场景及 Python 实现

Amazon Bedrock 是 AWS 提供的一项全托管服务,它为开发者提供了一系列高性能的基础模型(Foundation Models,FMs)。通过单一 API,开发者可以访问来自 AI21 Labs、Anthropic、Cohere、Meta、Stability AI 和 Amazon 等领先 AI 公司的模型。本文将介绍 Amazon Bedrock 的几个…

深入异步JavaScript:掌握Promises与async/await

引言 异步编程允许JavaScript代码在等待某些耗时操作(如网络请求、文件读写等)完成时,继续执行其他任务,而不是阻塞整个程序的运行。这种编程模式极大地提高了应用的响应速度和效率。 JavaScript中的异步编程基础 同步与异步代…

【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示DS1307 RTC时间数据

LCD ST7789显示DS1307 RTC时间数据 文章目录 LCD ST7789显示DS1307 RTC时间数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS1307 RTC 集成电路构建简单的实时时钟和日历 (RTCC),其中时间和日期打印在 ST7789 TFT 显示模块上。 ST7789 TFT 模块包…

MySQL面试题-重难点

mysql中有哪些锁?举出所有例子,各个锁的作用是什么?区别是什么? 共享锁:也叫读锁,简称S锁,在事务要读取一条记录时,先获取该记录的S锁,别的事务也可以继续获取该记录的S…

[Linux CMD] 文件编辑 nano (待更新)

【Linux】:文本编辑与输出命令 轻松上手nano、echo和cat_linux终端内容输出文本-CSDN博客

【海外云手机】静态住宅IP集成解决方案

航海大背景下,企业和个人用户对于网络隐私、稳定性以及跨国业务的需求日益增加。静态住宅IP与海外云手机的结合,提供了一种创新的集成解决方案,能够有效应对这些需求。 本篇文章分为三个部分;静态住宅优势、云手机优势、集成解决…

OpenCV一个简单的摄像头调用与关闭

在使用OpenCV(Open Source Computer Vision Library)进行摄像头调用与关闭时,通常使用cv2.VideoCapture()函数来调用摄像头,并通过适当的方式关闭它。 调用摄像头 首先,需要导入OpenCV库(通常简写为cv2&a…

gemini-pro-vision 看图说话

一、安装 pip install -U langchain-google-vertexai 二、设置访问权限 申请服务账号json格式key 三、完整代码 import gradio as gr import json import base64 from pathlib import Path import os import time import requests from fastapi import FastAPI, UploadFile,…

android的跨进程通讯方式

android的跨进程通讯方式 在Android中,跨进程通信(IPC)可以通过多种方式实现,以下是几种常见的方法: 使用Intent:通过Intent传递数据,启动另一个应用的Activity或Service。 使用AIDL&#…

无缝集成的艺术:在Conda中启用pip与Conda的互操作性

无缝集成的艺术:在Conda中启用pip与Conda的互操作性 引言 Conda是一个强大的包管理器和环境管理器,广泛用于Python和其他科学计算语言。它不仅能够管理包的依赖关系,还能创建和维护独立的开发环境。然而,在某些情况下&#xff0…

K8S私有云裸金属服务器负载均衡器OpenELB——筑梦之路

OpenELB介绍 OpenELB 是一个专为裸机 Kubernetes 集群设计的开源负载均衡器实现。 在云服务环境中的 Kubernetes 集群里,通常可以用云服务提供商提供的负载均衡服务来暴露 Service,但是在本地没办法这样操作。而 OpenELB 可以让用户在裸金属服务器、边缘…

RocketMQ~架构与工作流程了解

简介 RocketMQ 具有高性能、高可靠、高实时、分布式 的特点。它是一个采用 Java 语言开发的分布式的消息系统,由阿里巴巴团队开发,在 2016 年底贡献给 Apache,成为了 Apache 的一个顶级项目。 在阿里内部,RocketMQ 很好地服务了集…

怎么关闭Windows安全中心?

Windows安全中心是Windows操作系统中的一项重要功能,系统提供这个功能的目的是保护电脑免受各种安全威胁。尽管如此,有时候我们可能出于某些原因需要关闭它。本文将详细介绍如何关闭Windows安全中心,以及需要注意的事项。 重要提醒&#xff1…

搞清c++中的队列(queue)以及双端队列(deque),以及常用的接口!

1. 队列 概念:Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口 特征: 队列容器允许从一端新增元素,从另一端移除元素 队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 队列…

这个工具居然能让你的微信暴露得一览无余!!

今天在github看到一个不错的项目,叫做wx-dump-4j,不看不知道,一看吓一跳,这个工具完全的解析了我的微信!这个工具准确显示好友数、群聊数和当日消息总量,并且!!这个工具提供过去15天…

第59期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…