测试:JMeter如何获取非json格式的响应参数
JMeter如何获取非json格式的响应参数
在 JMeter 中获取非 JSON 格式的响应参数通常涉及使用后置处理器来提取这些参数。以下是一些常见的方法来获取不同类型的响应数据:
- 正则表达式提取器:
- 适用于提取文本、HTML、XML 等格式中的特定文本。
- 使用正则表达式来定义要提取的数据的模式。
- 可以提取响应中的动态数据,如会话ID、token等。
- CSS/JQuery 提取器:
- 适用于提取 HTML 响应中的数据。
- 使用 CSS 选择器或 JQuery 选择器来定位要提取的元素。
- 可以提取文本、属性值等。
- XPath 提取器:
- 适用于提取 XML 响应中的数据。
- 使用 XPath 表达式来定位要提取的节点。
- 可以提取节点文本、属性值等。
- beanshell 提取器:
- 适用于需要使用脚本进行复杂提取的情况。
- 使用 beanshell 脚本来处理响应数据。
- 可以执行任何 Java 代码,具有很高的灵活性。
- JSR223 提取器:
- 与 beanshell 提取器类似,但可以使用其他脚本语言,如 Groovy、Python 等。
- JSON 提取器(虽然问题中提到非 JSON 格式,但有时响应可能包含 JSON 数据):
- 适用于提取 JSON 响应中的数据。
- 使用 JSON Path 表达式来定位要提取的值。
以下是如何使用正则表达式提取器来获取非 JSON 格式响应参数的示例步骤:
- 在 JMeter 中添加一个 HTTP 请求或其他的取样器。
- 在该取样器下添加一个后置处理器,选择“正则表达式提取器”。
- 在“正则表达式提取器”中配置以下参数:
- 引用名称:为提取的数据设置一个引用名称。
- 正则表达式:输入用于匹配响应数据的正则表达式。
- 模板:通常设置为 1 1 1,表示正则表达式中第一个捕获组的内容。
- 匹配数字:设置为 1,表示使用第一个匹配的结果。
- 缺省值:如果正则表达式没有匹配到任何内容,则使用这个默认值。
- 在需要使用提取的参数的请求中,可以通过
${引用名称}的方式引用这些参数。 - 运行测试计划,并检查“查看结果树”监听器中的响应数据,验证是否正确提取了参数。
请注意,提取参数的具体方法取决于响应数据的格式和结构。您需要根据实际情况选择合适的提取器和配置参数。
beanshell 提取器 如何获取所有响应信息
在 JMeter 中,如果您想使用 BeanShell 提取器来获取所有响应信息,您可以利用 BeanShell 脚本访问 JMeter 的内置变量来获取响应数据。以下是获取整个响应体的步骤:
- 在您的测试计划中,添加一个 HTTP 请求或其他类型的请求器。
- 在该请求器下添加一个后置处理器,选择“BeanShell PostProcessor”。
- 在 BeanShell PostProcessor 的脚本区域中,编写如下脚本:
// 获取响应数据
String response = prev.getResponseDataAsString();
// 输出响应数据到 JMeter 日志
log.info("Response Data: " + response);
// 如果需要将响应数据存储为 JMeter 变量,可以这样做:
// 注意:变量名应该是唯一的,避免与其他变量冲突
String varName = "allResponseData";
vars.put(varName, response);
// 输出信息到 JMeter 日志,确认数据已存储
log.info("Stored response data in variable: " + varName);
- 如果您想在后续的请求中使用这个响应数据,可以通过
${allResponseData}(或您在脚本中定义的任何变量名)来引用它。 - 运行测试计划,并检查 JMeter 日志以确认响应数据已被正确获取和存储。
请注意,BeanShell 脚本中的prev对象代表前一个采样器的结果,getResponseDataAsString()方法用于获取响应数据作为字符串。log对象用于记录日志,vars对象是 JMeter 的内置变量容器,用于存储和访问变量。
使用 BeanShell 提取器时,请确保您的脚本符合 JMeter 的 BeanShell 脚本语法,并且已经正确配置了 JMeter 以支持 BeanShell。此外,由于 BeanShell 脚本执行可能会影响测试性能,因此在生产环境中进行大规模测试时,应谨慎使用。
log在哪里看?
在 JMeter 中,日志信息通常会输出到两个主要位置:
- JMeter GUI 的控制台:
- 当您通过 JMeter 的图形用户界面 (GUI) 运行测试时,日志信息会显示在底部的一个控制台窗口中。
- 您可以通过查看 GUI 中的“日志”部分来获取日志信息。
- JMeter 日志文件:
- 当您以非 GUI 模式运行 JMeter(例如,从命令行或使用 JMeter 测试计划 (jmx) 文件)时,日志信息会被写入到日志文件中。
- 日志文件的默认位置通常是在 JMeter 的
bin目录下的jmeter.log文件。 - 您可以直接打开这个文件来查看日志信息,或者使用文本编辑器或日志查看工具来查看。
要查看日志文件,您可以按照以下步骤操作:
- 找到 JMeter 安装目录。
- 进入
bin目录。 - 打开
jmeter.log文件。
如果您正在使用 JMeter GUI,只需在 GUI 中查看底部的“日志”部分即可。如果您正在使用命令行运行 JMeter,并且想要实时查看日志输出,可以在命令行窗口中查看。
此外,您可以通过修改 JMeter 的日志配置文件(bin/log4j2.xml)来调整日志级别和输出格式,以便更好地满足您的日志记录需求。
相关文章:
测试:JMeter如何获取非json格式的响应参数
JMeter如何获取非json格式的响应参数 在 JMeter 中获取非 JSON 格式的响应参数通常涉及使用后置处理器来提取这些参数。以下是一些常见的方法来获取不同类型的响应数据: 正则表达式提取器: 适用于提取文本、HTML、XML 等格式中的特定文本。使用正则表达…...
2024年刘谦魔术大揭秘,其中竟用到了约瑟夫环?
目录 前言 魔术过程 揭秘过程 结尾 前言 不知道昨天春晚时刘谦的魔术大家看了没有,相信大家跟我一样也很疑惑,所以爆肝一天我得出了结论。如果你觉得还不错的话,记得点赞收藏,分享给更多的朋友看。 魔术过程 整个魔术可以分…...
openssl3.2 - update debian12‘s default openssl to openssl3.2
文章目录 openssl3.2 - update debian12s default openssl to openssl3.2概述笔记回到debian12自带的openssl版本从源码编译安装最新版的openssl配置ssl访问END openssl3.2 - update debian12’s default openssl to openssl3.2 概述 在debian12虚拟机中编译了openssl3.2(ope…...
VUE2和VUE3区别对比一览
## Vue3总结 ### 官方文档 * [Vue3](https://v3.cn.vuejs.org/api/options*data.html) * [Vue2](https://vuejs.bootcss.com/api/) ### Vue3相对于Vue2的语法特性#### 1.获取数据 * vue2 javascript export default {data() {return {name: myName,}},mounted() {console.log(t…...
Linux - updatedb 命令
1. 功能 updatedb 命令用来创建或更新slocate命令所必需的数据库文件。updatedb 命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入 slocate 数据库文件中。 补充说明:slocate 本身具有一个数据库ÿ…...
云计算市场分析
目录 一、云计算市场概述 1.1 概述 二、国外云计算厂商 2.1 亚马逊AWS 2.2 微软AzureAzure 2.3 Apple iCloud 三、国内云计算厂商 3.1 阿里云 3.2 腾讯云 3.3 华为云 3.4 百度智能云 一、云计算市场概述 1.1 概述 云计算从出现以来,其发展就非常迅速。以…...
前端JavaScript篇之call() 和 apply() 的区别?
目录 call() 和 apply() 的区别? call() 和 apply() 的区别? 在JavaScript中,call()和apply()都是用来改变函数中this指向的方法,它们的作用是一样的,只是传参的方式不同。 call()方法和apply()方法的第一个参数都是…...
Java设计模式大全:23种常见的设计模式详解(三)
本系列文章简介: 设计模式是在软件开发过程中,经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合,可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在设计和编码过程中的指导,它用于…...
汇编语言程序设计(二)十六位汇编框架、子程序与堆栈
寄存器 如下是16位通用寄存器,存储在cpu硬件中 AX 返回值 AX寄存器分为两部分 AH和AL AH 高8位 存储功能号 AL 低8位 存储返回码 以下是一个AX寄存器应用: mov ax,4c00h 4c给高位AL,00低位AL,16进制要以h结尾 BX CX 计数…...
K8S之标签的介绍和使用
标签 标签定义标签实操1、对Node节点打标签2、对Pod资源打标签查看资源标签删除资源标签 标签定义 标签就是一对 key/value ,被关联到对象上。 标签的使用让我们能够表示出对象的特点,比如使用在Pod上,能一眼看出这个Pod是干什么的。也可以用…...
网络请求库axios
一、认识Axios库 为什么选择axios? 功能特点: 在浏览器中发送 XMLHttpRequests 请求在 node.js 中发送 http请求支持 Promise API拦截请求和响应转换请求和响应数据 补充: axios名称的由来? 个人理解没有具体的翻译. axios: ajax i/o system 二、axios发送请求 1.axios请求…...
程序设计语言的组成
程序设计语言的组成 程序设计语言基本上由数据、运算、控制、传输组成 数据成分 数据是程序操作的对象,具有存储类别、类型、名称、作用域和生存期等属性 从不同角度可将数据进行不同的划分。 数据类型的分类如下: 按程序运行过程中数据的值能否改…...
论文精读的markdown模板——以及用obsidian阅读网页资料做笔记
# The Investigation of S-P Chart Analysis on the Test Evaluations of Equality Axiom Concepts for Sixth Graders Tags: #/unread 本体论: 背景起源和发展 包含要素 # # # 可关联要素 # # # 逻辑 意义: 方法论: 方法论是一…...
LCP 30. 魔塔游戏
LCP 30. 魔塔游戏 难度: 中等 题目: 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造…...
RCE(命令执行)知识点总结最详细
description: 这里是CTF做题时常见的会遇见的RCE的漏洞知识点总结。 如果你觉得写得好并且想看更多web知识的话可以去gitbook.22kaka.fun去看,上面是我写的一本关于web学习的一个gitbook,当然如果你能去我的github为我的这个项目点亮星星我会感激不尽htt…...
[英语学习][27][Word Power Made Easy]的精读与翻译优化
[序言] 译者的这次翻译非常好. 对what与从句的嵌套用法, 进行了精准的翻译. 这次的记录, 也是对我自己的一次翻译经验的提升. 但是唯一遗憾的是"derivation"没有翻译好. [英文学习的目标] 提升自身的英语水平, 对日后编程技能的提升有很大帮助. 希望大家…...
Jupyter Notebook如何在E盘打开
Jupyter Notebook如何在E盘打开 方法1:方法2: 首先打开Anaconda Powershell Prompt, 可以看到默认是C盘。 可以对应着自己的界面输入: 方法1: (base) PS C:\Users\bella> E: (base) PS E:\> jupyter notebook方法2&#x…...
显示器校准软件:BetterDisplay Pro for Mac v2.0.11激活版下载
BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 软件下载: BetterDisplay Pro for Mac v2.0.11激活版下载 以下是BetterDisplay Pro的主要…...
【第六天】c++虚函数多态
一、多态的概述 多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联(父类与子类)时,就会用到多态。 C 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。 静态多态&…...
CGAL::2D Arrangements-3
3.Arrangement查询 Arrangement里面最重要的查询操作是point-location,给定一个点,查找到包含这个点的Arrangement。通常情况下,point-location查询得到的结果是Arrangement的一个face,退化情况下会是一个edge,查一个…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
