场景:添加 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的更多相关文章

  1. 使用JavaScript获取url(request)中的参数

    这次是使用JavaScript来获取url(request)中的参数 在日常页面编写的过程中为了方便操作在<script>中通过使用window.location.href="要 ...

  2. js获取url(request)中的参数

    index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&...... 静态html文件js读取url参数,根据获取html的参数值控制htm ...

  3. JMETER - BEANSHELL获取响应结果

    获取响应结果 添加后置处理器     //获取获取请求的返回值 String response = prev.getResponseDataAsString(); //日志打印获取请求的返回值 log ...

  4. 获取请求Requst中访问请求的客户端IP

    获取请求Request中访问请求的客户端IP /*获取请求客户端的IP地址*/ public static String getIpAddress(HttpServletRequest request ...

  5. Jmeter BeanShell 从数据库中获取数据并创建一个requesBody

    一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...

  6. jmeter beanshell 从文件中获取随机参数

    loadruner 参数化有个功能,可以设置在脚本每次出现参数时,自动更换参数值.在做jmeter自动化测试过程中,同一个请求中出现多个参数值,如一个接口可以添加n个信息的请求 [ { "n ...

  7. 通过BeanShell获取UUID并将参数传递给Jmeter

    有些HTTPS请求报文的报文体中包含由客户端生成的UUID,在用Jmeter做接口自动化测试的时候,因为越过了客户端,直接向服务器端发送报文,所以,需要在Jmeter中通过beanshell获取UUI ...

  8. JSP userBean setProperty直接从request中获取参数

    JSP userBean setProperty直接从request中获取参数: form表单Jsp: <%@ page language="java" import=&qu ...

  9. 一个利用pojo类从前端页面request中获取参数的小框架~

    写之前不知道Spring已经实现这样的功能,所以傻傻的写了这个东西! 实现原理挺有趣的在此记录一下.从去年十月参加java开发以来自己终于有了点小进步. 好开心. 解决问题(详解):前端form表单提 ...

  10. java获取request中的参数、java解析URL问号后的参数

    java获取request中的参数.java解析URL问号后的参数.有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需 ...

随机推荐

  1. Qt交叉编译整理的几点说明

    关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟.信手拈来.),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的 ...

  2. [转]Bundle Adjustment简述

    原文链接:https://optsolution.github.io/archives/58892.html或https://blog.csdn.net/optsolution/article/det ...

  3. C Primer Plus 第6版 第六章 编程练习参考答案

    编译环境VS Code+WSL GCC 源码请到文末下载 .注意:本章部分题目中用到了math.h 用gcc编译时加上-lm参数. /*第1题*************************/ #i ...

  4. Harbor 共享后端高可用

    1. 主机配置 主机地址 主机配置 主机角色 软件版本 192.168.1.60 CPU:4C MEM:4GB Disk: 100GB Harbor+Keepalived Harbor 2.1.3 K ...

  5. Solution Set -「LOCAL」冲刺省选 Round XXXI

    \(\mathscr{Summary}\)   前期节奏太懒散,后面发现 C 题是水题都没时间写,提起精神来啊!   A 题卡得比较久,对线性基的理解不够深刻,思来想去半天才把转移系数调对.B 题也卡 ...

  6. CDS标准视图:日期迁移视图 I_ShiftedCalendarDate

    视图名称:I_ShiftedCalendarDate 视图类型:带参数的视图 时间期间偏移量单位(P_TimePeriodOffsetUnit): D代表天 W代表周 M代表月 Q代表季 Y代表年 期 ...

  7. linux安装软件配置

    CentOS7更换yum为阿里源 1 备份本地源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu ...

  8. flink基础教程

    随着大数据技术在各行各业的广泛应用,要求能对海量数据进行实时处理的需求越来越多,同时数据处理的业务逻辑也越来越复杂,传统的批处理方式和早期的流式处理框架也越来越难以在延迟性.吞吐量.容错能力以及使用便 ...

  9. Linux curl brew命令详解

    命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具 ...

  10. Superset 用户集成方案

    注意,一下内容来自外网浏览器翻译,本人使用了将superset集成进入第三方系统,superset采用自定义身份验证+第三系统iframe嵌入方式,但是这个方式存在一个问题,iframe与redire ...