JMeter请求头添加删除方法(解决请求头类型冲突)

JMeter请求头添加删除方法(解决请求头类型冲突)

1. 为什么会有冲突

请求头的Content-Type类型在做上传和请求图片地址是,请求头类型是不一样的
请求图片地址:Content-Type: image/jpeg
一般的Restful接口:Content-Type: application/json;charset=UTF-8
请求头我们添加了请求头管理器后,后面所有的接口都会用定义的这个参数,当需要进行图片地址请求时 ,默认也使用这个请求头,会导致请求图片地址报错,这个时候需要把默认的请求头数据清除或修改对应的请求头参数
在这里插入图片描述
请求图片地址报错
在这里插入图片描述

2. 对图片接口请求头的修改

全局请求头
在这里插入图片描述

添加BeanShell 预处理程序,使用代码删除全局的请求头信息

import org.apache.jmeter.protocol.http.control.HeaderManager;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 打印全部请求头信息
log.info("删除前" + headers.getHeaders().getStringValue());
// 删除请求头指定的信息
sampler.getHeaderManager().removeHeaderNamed("Content-Type");
sampler.getHeaderManager().removeHeaderNamed("Authorization");
// 打印全部请求头信息
log.info("删除后" + headers.getHeaders().getStringValue());

在这里插入图片描述
删除之后,图片地址请求就可以正常请求了,但此时会发现,后面Restful接口,不能正常访问了,提示没有token了,这个是因为在图片请求时添加的BeanShell 预处理程序删除请求头信息
在这里插入图片描述

3. 图片接口请求完成后,添加全局请求头

下个接口上添加【BeanShell 预处理程序】,注意是【BeanShell 预处理程序】

import org.apache.jmeter.protocol.http.control.HeaderManager;
import org.apache.jmeter.protocol.http.control.Header;
// 获得请求头信息
HeaderManager headers = sampler.getHeaderManager();
// 打印全部请求头信息
log.info("添加前" + headers.getHeaders().getStringValue());
// new一个Header对象
myHeader = new Header("Content-Type", "application/json");
token = new Header("Authorization", "${token}");
// 添加Header到请求头管理器
headers.add(myHeader);
headers.add(token);
// 打印全部请求头信息
log.info("添加后" + headers.getHeaders().getStringValue());

在这里插入图片描述
这个添加完成后,全局的请求头恢复正常,后面接口正常请求访问。
在这里插入图片描述

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

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

相关文章

stm32 + w25qxx + EasyFlash

一,软件介绍 EasyFlash 是一款开源的轻量级嵌入式Flash存储器库,方便实现基于Flash存储器的常见应用开发。适合智能家居、可穿戴、工控、医疗等需要断电存储功能的产品,资源占用低,支持各种 MCU 片上存储器。 [1] 该库目前提供…

Qt/C++编写超精美自定义控件(历时9年更新迭代/超202个控件/祖传原创)

一、前言 无论是哪一门开发框架,如果涉及到UI这块,肯定需要用到自定义控件,越复杂功能越多的项目,自定义控件的数量就越多,最开始的时候可能每个自定义控件都针对特定的应用场景,甚至里面带了特定的场景的…

chatgpt赋能python:如何通过Python赚钱

如何通过Python赚钱 介绍 Python是一种高级编程语言,广泛用于Web开发、数据分析、机器学习等领域。Python具有简单易学、功能强大、易于维护等特点,因此非常受欢迎。而且,Python开源免费,可以在各个平台上运行,不需要…

CH543乐得瑞单C口显示器方案(LDR6020)

首先显示器的种类很多,有桌面显示器,便携显示器,智能显示器,甚至AR眼镜也可以算是一个微型显示器。以往的显示器传输视频信号多为VGA和HDMI,当然DP也有,只是占少数,再早之前还有模拟信号接口等等&#xff0…

第4章 信息系统管理

文章目录 4.1.1 管理基础1 层次结构2 系统管理 4.1.2 规划和组织1 规划模型2 组织模型1)业务战略(竞争力优势模型:差异化、总成本领先、专注 战略)2)组织机制战略(莱维特钻石模型:信息与控制、人…

进程间通信之共享内存

一、共享内存实现进程间通信的原理 共享内存实际是操作系统在实际物理内存中开辟的一段内存。 共享内存实现进程间通信,是操作系统在实际物理内存开辟一块空间,一个进程在自己的页表中,将该空间和进程地址空间上的共享区的一块地址空间形成…

数字孪生场景渲染能力中的WebGL技术路线

使用三维建模技术构建出的虚拟现实场景后,需要通过渲染引擎实现场景的高精度、高保真和实时渲染。同时,需要将现实场景中的数据信息融合到虚拟场景中,实现对现实情况的监测和控制。 目前大多数数字孪生城市项目在三维渲染引擎的技术选型上通…

测试工程师首chatGPT,编写python读取xmind测试用例chatgtp+python+xmind

背景 有用xmind写测试用例的吧,统计一个xmind的条,需要花大量的时间,还有要统计有多少条冒烟的,多少条不通过的,还有通过的条数。 需求 快速使用python,写一个简单的脚本,统计所有xmind节点&…

c++ 内存管理一:初识内存分配工具

文章目录 前言1 new 和 delete2 new[]和delete[]3 operator new4 placement new5 malloc和free6 allocator 前言 侯捷 c内存管理学习总结笔记。 在C中,有几种常用的内存分配工具可以帮助进行动态内存管理。 从c应用程序自上而下,通常会有这样的几种分配…

算法分析基础题目

第一章-算法概述 递归算法必须具备的两个条件是边界条件或停止条件和递推方程或递归方程冒泡排序时间复杂度是___,堆排序时间复杂度是___。 O ( n 2 ) O(n^2) O(n2), O ( n l o g n ) O(nlogn) O(nlogn)斐波那契数列的第1项为1,第2项为2,以…

[RocketMQ] Producer发送消息的总体流程 (七)

单向发送: 把消息发向Broker服务器, 不管Broker是否接收, 只管发, 不管结果。同步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步发送: 把消息发向Broker服务器, 如果Broker成功接收, 可以得到Broker的响应。异步所以发送消息后, 不用等待, 等…

LLaMA模型微调版本:斯坦福 Alpaca 详解

项目代码:https://github.com/tatsu-lab/stanford_alpaca 博客介绍:https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca 总览 Alpaca 是 LLaMA-7B 的微调版本,使用Self-instruct[2]方式借用text-davinct-003构建了52K的数据&#x…