测试: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,查一个…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...