JMeter BeanShell 获取 HTTP Request 中的 Name
场景:添加 JMeter log 输出,想输入自定义请求的名称
// 获取 response body
prev.getResponseDataAsString();
// 获取 HTTP Request 插件里面的 Name
prev.getSampleLabel()
补充知识点:
JMeter prev对象核心方法详解
(适用于BeanShell/JSR223脚本环境,prev即SampleResult对象)
一、基础信息获取方法
// 请求基本信息
prev.getSampleLabel() // 获取请求显示名称,如:"HTTP Get User"
prev.getSampler().getName()// 底层采样器名称,如:"HTTP Request"
prev.getThreadName() // 线程组名称,如:"Thread Group 1-1" // 时间维度数据
prev.getTime() // 请求总耗时(毫秒)
prev.getStartTime() // 请求开始时间戳(毫秒)
prev.getEndTime() // 请求结束时间戳(毫秒)
二、响应数据处理方法
// 文本型响应
prev.getResponseDataAsString() // 获取响应正文文本
prev.getResponseHeaders() // 获取完整响应头 // 二进制响应
prev.getResponseData() // 获取byte[]格式响应数据 // 状态码验证
prev.getResponseCode() // HTTP状态码,如:"200"
prev.isResponseCodeOK() // 状态码是否2xx(返回boolean)
三、高级调试方法
// 断言与错误判断
prev.isSuccessful() // 请求是否成功(包含断言结果)
prev.getAssertionResults()// 获取断言失败信息数组 // 数据提取
prev.getLatency() // 网络延迟时间(毫秒)
prev.getConnectTime() // TCP连接建立耗时(毫秒)
四、典型使用场景示例
// 场景1:记录异常请求详情
if (!prev.isSuccessful()) {
errorLog = "失败请求:" + prev.getSampleLabel()
+ " | 状态码:" + prev.getResponseCode()
+ " | 错误信息:" + prev.getResponseMessage()
vars.put("ERROR_LOG", errorLog)
} // 场景2:计算响应时间占比
def connectPercent = (prev.getConnectTime()/prev.getTime())*100
log.info("TCP连接时间占比:" + connectPercent + "%")
五、关键注意事项
- 作用域限制
- 仅在
PostProcessor/断言等后置处理器中有效 - 前置处理器(PreProcessor)中不可用
- 性能建议
- 避免在高并发下频繁调用
getResponseDataAsString() (我拒绝你的建议) - 大数据响应建议改用
prev.getResponseData().length获取字节大小
- 替代方案
- JMeter 5.0+推荐使用JSR223+Groovy替代BeanShell
// Groovy等效写法
def responseCode = prev.getResponseCode()
JMeter BeanShell 获取 HTTP Request 中的 Name的更多相关文章
- 使用JavaScript获取url(request)中的参数
这次是使用JavaScript来获取url(request)中的参数 在日常页面编写的过程中为了方便操作在<script>中通过使用window.location.href="要 ...
- js获取url(request)中的参数
index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数,根据获取html的参数值控制htm ...
- JMETER - BEANSHELL获取响应结果
获取响应结果 添加后置处理器 //获取获取请求的返回值 String response = prev.getResponseDataAsString(); //日志打印获取请求的返回值 log ...
- 获取请求Requst中访问请求的客户端IP
获取请求Request中访问请求的客户端IP /*获取请求客户端的IP地址*/ public static String getIpAddress(HttpServletRequest request ...
- Jmeter BeanShell 从数据库中获取数据并创建一个requesBody
一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...
- jmeter beanshell 从文件中获取随机参数
loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值.在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 [ { "n ...
- 通过BeanShell获取UUID并将参数传递给Jmeter
有些HTTPS请求报文的报文体中包含由客户端生成的UUID,在用Jmeter做接口自动化测试的时候,因为越过了客户端,直接向服务器端发送报文,所以,需要在Jmeter中通过beanshell获取UUI ...
- JSP userBean setProperty直接从request中获取参数
JSP userBean setProperty直接从request中获取参数: form表单Jsp: <%@ page language="java" import=&qu ...
- 一个利用pojo类从前端页面request中获取参数的小框架~
写之前不知道Spring已经实现这样的功能,所以傻傻的写了这个东西! 实现原理挺有趣的在此记录一下.从去年十月参加java开发以来自己终于有了点小进步. 好开心. 解决问题(详解):前端form表单提 ...
- java获取request中的参数、java解析URL问号后的参数
java获取request中的参数.java解析URL问号后的参数.有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需 ...
随机推荐
- Qt编写的项目作品30-录音播放控件(雨田哥作品)
一.功能特点 使用FMOD音频引擎开发,支持跨平台,虚拟频道,插件设计. 数字回放,多个声卡,多路输出,多路输入. 自定义回放延迟,网络特性. 支持类型:DLS.M3U.ASX.WAX.PLS.AIF ...
- SpringBoot整合WebSocket实践
简介 先来看下维基百科WebSocket的简介: WebSocket是一种与HTTP不同的协议.两者都位于OSI模型的应用层,并且都依赖于传输层的TCP协议. 虽然它们不同,但是RFC 6455中规定 ...
- SSM或Spring Boor开发中@Repository和@Mapper的区别
在做一个SpringBoot项目的时候在Dao层使用了@Repository注解然后报了这个错: Description: Field userService in com.example.demo. ...
- 不为人知的网络编程(十九):能Ping通,TCP就一定能连接和通信吗?
本文由小白debug分享,原题"能 ping 通,TCP 就一定能连通吗?",下文进行了排版和内容优化. 1.引言 平时,我们想要知道,自己的机器到目的机器之间,网络通不通,一般会 ...
- Solution Set -「AGC 010~012」C~F
目录 「AGC 010C」Cleaning 「AGC 010D」Decrementing 「AGC 010E」Rearranging 「AGC 010F」Tree Game ^ 「AGC 011C」S ...
- CDS标准视图:会计员 I_AccountingClerk
视图名称:会计员 I_AccountingClerk 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog: { sqlViewName: 'IFIACCCLERK', // compi ...
- 20250110-FortuneWheel 攻击事件:竟然不设滑点,那就体验一下 Force Investment 吧
背景信息 攻击交易:https://app.blocksec.com/explorer/tx/bsc/0xd6ba15ecf3df9aaae37450df8f79233267af41535793ee1 ...
- Kotlin:【初始化】延时初始化、惰性初始化、初始化的三个陷阱
- SourceTree SSH第一次登录需要交互确认的问题
问题 在SourceTree SSH配置完ssh之后向上提交代码的时候发现: The server's host key is not cached in the registry. You have ...
- h5移动端像素适配 postcss-pxtorem和amfe-flexible
Vant 中的样式默认使用px作为单位,如果需要使用rem单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem; amfe-flexib ...