【Jmeter】Jmeter基础9-BeanShell介绍

3、BeanShell

  • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法。

3.1、Jmeter中使用的BeanShell

  • 在Jmeter中,除了配置元件,其他类型的元件中都有BeanShell。BeanShell 是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法。
  • Jmeter中包含如下BeanShell:
    • 定时器:BeanShell Timer
    • 前置处理器:BeanShell PreProcessor
    • 采样器:BeanShell 取样器
    • 后置处理器:BeanShell 后置处理程序
    • 断言:BeanShell断言
    • 监听器:BeanShell监听器

3.2、BeanShell 常用内置变量

3.2.1、log

  • 作用:用于日志记录
  • 示例:
    在这里插入图片描述

3.2.2、vars

  • 对象介绍:vars对象是JMeterVariables类的一个实例,可以存储String或Object类型的数据,作用域是当前线程组,只有同一个线程组内的线程才能访问和修改同一个vars变量。如果不同的线程组需要共享数据,就不能使用vars变量。
3.2.2.1、getThreadName()
  • 方法声明:public String getThreadName()
  • 作用:获取当前运行线程名
3.2.2.2、getIteration()
  • 方法声明:public int getIteration()
  • 作用:获取线程当前的迭代号
  • 示例:
    在这里插入图片描述
3.2.2.3、put()

方法声明:public void put(String key, String value)
作用:创建或更新字符串变量

3.2.2.4、get()

方法声明:public String get(String key)
作用:获取变量的值并将其转换为字符串,若变量存在则将值转换为字符串,否则返回null
示例:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.2.2.5、getObject()

方法声明:public Object getObject(String key)
作用:获取对象

3.2.2.6、putObject()

方法声明:public void putObject(String key,Object value)
作用:创建或更新一个对象
示例:
在这里插入图片描述

3.2.2.7、remove()

方法声明:public Object remove(String key)
作用:删除变量,并该变量值,若变量不存在则返回null
在这里插入图片描述

3.2.3、props

  • props映射java.util的Properties类。是一个Hashtable类型的对象,也可以存储String或Object类型的数据。所有的线程组都可以访问和修改同一个props变量。如果不同的线程组需要共享数据,就可以使用props变量。
  • vars是对变量进行读写操作, 而props主要是对属性进行读写操作
  • Jmeter的属性在文件jmeter.properties中定义
3.2.3.1、get()
  • 方法声明:public synchronized V get(Object key)
  • 功能:获取属性值
3.2.3.2、put()
  • 方法声明:public synchronized V put(Object key)
  • 功能:设置属性值
  • 示例1:
    在这里插入图片描述
  • 示例2:使用vars,由于vars不能跨线程组,在线程组1中put的值,在线程组2中无法get到:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 示例3:使用props,props可以跨线程组使用,线程组1中put的值,在线程组2中可以使用:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.2.3.3、getProperty()
  • 方法声明:
    • public String getProperty(String key)
    • public String getProperty(String key, String defaultValue):当key不存在则返回默认值
  • 功能:返回属性值
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.3.4、setProperty()
  • 方法声明:public Object setProperty(String key,String value)
  • 功能:返回属性值
  • 示例:
    在这里插入图片描述
    在这里插入图片描述
3.2.3.5、remove()
  • 方法声明:public synchronized V remove(Object key)
  • 作用:删除一个变量并返回变量值,若变量不存在则返回null
  • 示例:
    在这里插入图片描述

3.2.4、prev

  • 提供对当前取样器结果的访问能力,映射org.apache.jmeter.samplers的SampleResult类。
3.2.4.1、getThreadName()

方法声明:public String getThreadName()
功能:获取线程名,同vars.getThreadName()
示例:
在这里插入图片描述

3.2.4.2、getTime()
  • 方法声明:public long getTime()
  • 作用:获取取样时间
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.4.3、getResponseCode()
  • 方法声明:public String getResponseCode()
  • 作用:获取响应状态码
  • 示例:
    在这里插入图片描述
3.2.4.4、setResponseCodeOK()
  • 方法声明:public String getResponseCode()
  • 作用:将响应码设置为200(即使真实返回不为200,也设置为200)
3.2.4.5、setResponseCode()
  • 方法声明:public void setResponseCode(String code)
  • 作用:将响应码设置为指定值
3.2.4.6、isResponseCodeOK()
  • 方法声明:public boolean isResponseCodeOK()
  • 作用:判断响应码是否为200,是则返回true,否则返回false
  • 示例:
    在这里插入图片描述
3.2.4.7、getResponseMessage()
  • 方法声明:public String getResponseMessage()
  • 作用:获取Response message
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.4.8、getSampleLabel()
  • 方法声明:public String getSampleLabel()
  • 作用:获取取样器标签
  • 示例:
    在这里插入图片描述
3.2.4.9、getSampleLabel()
  • 方法声明:
    • public String getSampleLabel()
    • public String getSampleLabel(boolean includeGroup):是否包含线程组名
  • 作用:获取取样器标签
  • 示例:
    在这里插入图片描述
3.2.4.10、getResponseDataAsString()
  • 方法声明:public String getResponseDataAsString()
  • 作用:以字符串形式获取响应报文
  • 示例:
    在这里插入图片描述
3.2.4.11、getDataEncodingWithDefault()
  • 方法声明:public String getDataEncodingWithDefault()
  • 作用:返回编码方式
3.2.4.12、setDataEncoding()
  • 方法声明:public void setDataEncoding(String dataEncoding)
  • 作用:设置编码方式,用于解决响应乱码
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.4.13、getRequestHeaders()
  • 方法声明:public String getRequestHeaders()
  • 作用:获取请求头
3.2.4.14、getResponseHeaders()
  • 方法声明:public String getResponseHeaders()
  • 作用:获取响应头
  • 示例:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
3.2.4.15、getContentType()
  • 方法声明:public String getContentType()
  • 作用:获取响应头Content-Type字段
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.4.16、getStartTime()
  • 方法声明:public String getContentType()
  • 作用:获取请求开始时间戳
3.2.4.17、getEndTime()
  • 方法声明:public String getContentType()
  • 作用:获取请求结束时间戳
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.4.18、getUrlAsString()
  • 方法声明:public String getContentType()
  • 作用:获取 URL 的 String 表示形式
    在这里插入图片描述

3.2.5、ctx

  • ctx变量是JMeterContext类的一个实例,该变量使用较少,一般需要的功能在其他内置变量里都有提供,以下示例中均使用该全局变量:
    在这里插入图片描述
3.2.5.1、getVariables()
  • 方法声明:public JMeterVariables getVariables()
  • 作用:提供对当前线程的 JMeter 变量的访问。
  • 示例:
    在这里插入图片描述
3.2.5.2、getProperties()
  • 方法声明:public Properties getProperties()
  • 作用:获取属性
  • 示例:
    在这里插入图片描述在这里插入图片描述
3.2.5.3、getPreviousResult()
  • 方法声明:public SampleResult getPreviousResult()
  • 作用:获取前一个取样器的结果,相当于prev
  • 示例:
    在这里插入图片描述
3.2.5.4、getCurrentSampler()
  • 方法声明:public Sampler getCurrentSampler()
  • 作用:获取当前取样器对象
  • 示例:
    在这里插入图片描述
3.2.5.5、getPreviousSampler()
  • 方法声明:public Sampler getPreviousSampler()
  • 作用:获取前一个取样器对象
  • 示例:
    在这里插入图片描述
3.2.5.6、getThreadNum()
  • 方法声明:public int getThreadNum()
  • 作用:获取当前线程号,从0开始编号
  • 示例:
    在这里插入图片描述
3.2.5.7、getThread()
  • 方法声明:public JMeterThread getThread()
  • 作用:获取线程对象
  • 示例:
    在这里插入图片描述
3.2.5.8、getThreadGroup()
  • 方法声明:public AbstractThreadGroup getThreadGroup()
  • 作用:获取线程组对象
  • 示例:
    在这里插入图片描述

3.2.6、SamplerData

  • 请求数据,类型为byte []
    在这里插入图片描述

3.2.7、Label&SampleLabel

  • 类型为String
  • 示例:
    在这里插入图片描述

3.2.8、ResponseData

  • 响应数据,类型为byte []
  • 示例:
    在这里插入图片描述

3.2.9、ResponseCode&ResponseMessage

  • 类型为String
  • 示例:
    在这里插入图片描述

3.2.10、IsSuccess

  • 表示sampler的成功或失败,类型为boolean
  • 示例1:
    在这里插入图片描述在这里插入图片描述
  • 示例2:
    在这里插入图片描述
    在这里插入图片描述

3.2.11、Failure和FailureMessage

  • Failure和FailureMessage是BeanShell Assertion组件独有的内置变量,作用是设置当前sampler的测试结果(成功或失败),Failure的类型是boolean,FailureMessage的类型是String。
  • 示例:
    在这里插入图片描述在这里插入图片描述

3.2.12、Response

  • 可以使用SampleResult类的方法
  • 示例:
    在这里插入图片描述

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

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

相关文章

TCP并发服务器

一.进程实现TCP并发服务器 #include <func.h> #define PORT 6666 #define IP "192.168.124.42"void handler(int arm) {while(waitpid(-1,NULL,WNOHANG) > 0); } int main(int argc, const char *argv[]) {//接受17号信号signal(17, handler);i…

Matlab之State Flow

打开方式 方式一&#xff1a;在命令窗口输入State Flow或者简写sf就能打开&#xff0c;并且会自动打开State Flow 的Library。从左到右分别是图表、真值表、状态转换表、例子、顺序查看&#xff0c;可以加入到Simulink当中。 方式二&#xff1a;从Simulink Library里面添加Sta…

EB tresos 配置I2c - 实现与PF8200的读写操作

文章目录 前言一、EB工具链配置1、I2c模块1&#xff09;新建模块2&#xff09;配置General3&#xff09;配置I2cChannel 2、Port模块1&#xff09;配置SDA2&#xff09;配置SCL 二、代码分析1、申明一个I2c配置结构体数组&#xff0c;用于I2c所有读操作。2、搭建读操作函数 三、…

得物大模型平台,业务效果提升实践

一、背景 得物大模型训练与推理平台上线几个月后&#xff0c;我们与公司内部超过 10 个业务领域展开了全面的合作。在一些关键业务指标方面&#xff0c;取得了显著的成效&#xff0c;例如&#xff1a; 效率相关部门的合作&#xff0c;多维度打标总正确率取得 2 倍以上提升。利…

Spring中的上下文工具你写的可能有bug

文章目录 前言功能第一种&#xff1a;ApplicationContext第二种方式&#xff1a;ApplicationContextAware第三种&#xff1a;BeanFactoryPostProcessor 源码第一种第二种第三种 前言 本篇是针对如何写一个比较好的spring工具的一个探讨。 功能 下面三种方式&#xff0c;你觉…

智能三维数据虚拟现实电子沙盘

一、概述 易图讯科技&#xff08;www.3dgis.top&#xff09;以大数据、云计算、虚拟现实、物联网、AI等先进技术为支撑&#xff0c;支持高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换&#xff0c;智能三维数…

CTF特训(一):ctfshow-RCE挑战

CTF特训(一)&#xff1a;ctfshow-RCE挑战 FLAG&#xff1a;可后来&#xff0c;除了梦以外的地方&#xff0c;我再也没有见过你 专研方向: 代码审计&#xff0c;PHP 每日emo&#xff1a;其实挺迷茫的&#xff0c;不知道该干什么,(骗你的) RCE挑战1 <?phperror_reporting(0)…

Qt Creator可视化交互界面exe快速入门3

上一期介绍的通过Qt Creator的组件直接拖拽的方式完成了一个界面&#xff0c;这期介绍按钮的信号交互。 专有名称叫信号与槽 实现方法1&#xff1a; 鼠标右键选择转化为槽就会跳出这样的界面 选择第一个为单击信号。然后就会跳转到代码界面。多了on_pushButton_clicked()。 …

2024深入评测CleanMyMac X4.14.6破解版新的功能

随着时间的推移&#xff0c;我们的Mac电脑往往会变得越来越慢&#xff0c;存储空间变得越来越紧张&#xff0c;这时候一个优秀的清理工具就显得尤为重要。作为一款备受好评的Mac清理工具&#xff0c;它能够为你的Mac带来全方位的清理和优化。在本文中&#xff0c;我们将深入评测…

ADRC-跟踪微分器TD的Maltab实现及参数整定

目录 问题描述&#xff1a; 跟踪微分器TD基本概念&#xff1a; Matlab及其实现&#xff1a; 跟踪效果&#xff1a; 例1&#xff1a;跟踪信号 sin(t) 0.5*rand(1,1)。 例2&#xff1a;跟踪部分时段为方波的信号&#xff0c;具体形式见代码get_command。 参数整定&#xf…

HarmonyOS - 基础组件绘制

文章目录 所有组件开发 tipsBlankTextImageTextInputButtonLoadingProgress 本文改编自&#xff1a;<HarmonyOS第一课>从简单的页面开始 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667360160710997 所有组件 在 macOS 上&#xff0c;组…

【WSL2】安装和配置ubuntu

文章目录 1. 安装WSL22. 安装ubuntu2.1. 通过Microsoft Store2.1. 通过命令行 3. ubuntu的使用3.1. 创建管理员root账户3.2. 换源3.3. 安装图形化界面 1. 安装WSL2 在控制面板 - 程序 - 程序与功能中点击启用或关闭Windows功能&#xff0c;选择 虚拟机平台适用于Linux的Window…

Android Studio 如何隐藏默认标题栏

目录 前言 一、修改清单文件 二、修改代码 三、更多资源 前言 在 Android 应用中&#xff0c;通常会有一个默认的标题栏&#xff0c;用于显示应用的名称和一些操作按钮。但是&#xff0c;在某些情况下&#xff0c;我们可能需要隐藏默认的标题栏&#xff0c;例如自定义标题栏…

File Inclusion(Pikachu)

File Inclusion(local) 这里随便点击一个提交 观察url&#xff0c;显示是一个文件file1.php 可以直接通过url修改这个文件 找到自己的文件&#xff08;本地文件&#xff09;shell.php的路径写上去 就可以看到 File Inclusion&#xff08;remote&#xff09; 提交的是一个目标…

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展&#xff0c;越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商&#xff0c;想要拓展线上业务&#xff0c;那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序&#xff0c;让你轻松完成…

Oracle初始化参数修改后,是否需要重启才能生效

可以查看 v$parameter或v$parameter2动态性能视图的ISSYS_MODIFIABLE列。此列指示是否可以使用 ALTER SYSTEM 更改参数以及更改何时生效&#xff1a; IMMEDIATE - 无论用于启动实例的参数文件的类型如何&#xff0c;都可以使用 ALTER SYSTEM 更改参数。 更改立即生效。DEFERRE…

如何底层调用最快地复制OPC数据到关系数据库

计算机上的二大应用&#xff0c;一是从WEB服务器上获得数据&#xff0c;另一种是向关系数据库中写入数据。在上集我已提出了一个从WEB上获得OPC数据的独创方法&#xff0c;现在谈谈第二种如何快速地把OPC数据写进到数据库中&#xff0c;这也是Calssic OPC最典型的一个应用场景。…

2023.12.25 关于 Redis 数据类型 Hash 常用命令、内部编码、应用场景

目录 Hash 数据类型 Hash 操作命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX HINCRBY HINCRBYFLOAT HSTRLEN Hash 编码方式 理解什么是压缩 Hash 实际应用 Cache 缓存 Hash 数据类型 整体上来说 Redis 是键值对结构&#xff0c;其中 …

【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

物联网协议Coap之Californium CoapServer解析

目录 前言 一、CoapServer对象 1、类对象定义 2、ServerInterface接口 3、CoapServer对象 二、CoapServer服务运行分析 1、CoapServer对象实例化 1.1 调用构造方法 1.2 生成全局配置 1.3 创建Resource对象 1.4-1.8、配置消息传递器、添加CoapResource 1.9-1.12 创建线…