【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.mzph.cn/news/578787.shtml

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

相关文章

华为防火墙双机热备

实验需求: 如图所示,PC1为公司内部网络设备,AR1为出口设备,在FW1和FW2上配置双机热备,当网络正常时PC1访问AR1路径为FW1-AR1,当FW1出现故障后,切换路径为FW2-AR1。 实现目的: 了解…

抖店商品卡运营两个月,店铺只出了几十单,这个店还有必要做吗?

我是王路飞。 现在的抖店,很多商家都感觉“内卷”、“不好做”、“做不下去”、“不赚钱”...... 其实,当你自己做不起来的时候,你就只能看到跟你一样遭遇的同行不好的消息。 而那些做起来的商家,他们不仅不会向别人发布一些负…

RK3588平台开发系列讲解(AI 篇)RKNN rknn_query函数详细说明

文章目录 一、查询 SDK 版本二、查询输入输出 tensor 个数三、查询输入 tensor 属性(用于通用 API 接口)四、查询输出 tensor 属性(用于通用 API 接口)五、查询模型推理的逐层耗时六、查询模型推理的总耗时七、查询模型的内存占用情况八、查询模型里用户自定义字符串九、查询原…

Mysql 将数据按照年月分组 统计

要的效果: 方案: ① 使用 DATE_FORMAT(date, ‘%Y-%m-%d’) 函数 DATE_FORMAT 怎么去使用格式化,取决于后面的格式模式。 我们这里只是想区分到年 、月, 所以我们的sql 里面使用 %Y-%m : SELECT DATE_FORMAT(create_time, %Y-%m) AS …

【cesium-5】鼠标交互与数据查询

scene.pick返回的是包含给定窗口位置基元的对象 scene.drillpack返回的是给定窗口位置所有对象的列表 Globe.pick返回的是给光线和地形的交点 Cesium.ScreenSpaceEventType.MIDDLE_CLICK 鼠标中间点击事件 Cesium.ScreenSpaceEventType.MOUSE_MOVE 鼠标移入事件 Cesium.ScreenS…

支持多医院使用的云HIS医院信息化管理系统源码 SaaS模式

一、什么是HIS系统 HIS系统(Hospital InformationSystem)是医院信息化建设的核心组成部分,它是为了管理和运营医院而设计和开发的一套综合性的信息系统。HIS系统通过整合医院各个部门和业务流程的数据和信息,实现了医院内部的信息…

Uncaught ReferenceError: VueRouter is not defined

没有引入完全,报缺什么就引入什么 import * as VueRouter from vue-router;

ElasticSearch 文档操作

批量操作 语法 批量操作对json有严格的要求,每个json串不能换行,只能放在同一行,相邻的json串之间必须要有换行。每个操作必须是一对json串(delete语法除外) { action: { metadata }} { request body } { ac…

[幻灯片]软件需求设计方法学全程实例剖析-01-概述

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 pdf下载:umlchina.com/training/umlchina_01_overview.pdf UMLChina公众号精选(20231222更新)按ABCD工作流分类

格密码基础:垂直子空间与子格,q-ary垂直格

目录 一.写在前面 二.子空间垂直 2.1 理论解释 2.2 举例分析 三. 零空间 3.1 零空间与q-ary垂直格 3.2 零空间与行/列空间 四. 格密码相关 一.写在前面 格密码中的很多基础原语都来自于线性代数的基本概念,比如举几个例子: 格密码中的非满秩格…

uniapp中如何使用image图片

当在UniApp中使用图片时&#xff0c;可以通过<image>标签将图片显示在页面上。这个标签可以指定src属性来引用图片&#xff0c;并且可以通过mode属性来设置图片的显示模式。除此之外&#xff0c;还可以利用click事件来实现图片的点击事件。在编写代码时&#xff0c;要注意…

Pr2024 for Mac/win中文版:为创意无限延展的全新时代

随着科技的不断进步和创新&#xff0c;影视制作行业也在不断发展。作为专业视频编辑软件的领军者&#xff0c;Premiere Pro于2024年推出了全新的版本Pr2024&#xff0c;为创意无限延展的全新时代揭开了崭新的篇章。 Pr2024以其强大的功能和卓越的性能&#xff0c;为用户带来了…

广州华锐互动VRAR:VR煤矿安全警示教育系统提供真实生动的场景体验

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为人们的生活带来了诸多便利。在煤矿行业&#xff0c;VR技术的应用也日益受到关注。广州华锐互动开发的VR煤矿安全警示教育系统&#xff0c;旨在通过虚拟现实技术&…

idea导入spring-framework异常:error: cannot find symbol

从github上clone代码spring-framework到本地后导入idea&#xff0c;点击gradle构建后控制台提示异常&#xff1a; 具体异常信息&#xff1a; /Users/ZengJun/Desktop/spring-framework/buildSrc/src/main/java/org/springframework/build/KotlinConventions.java:44: error:…

锂空气电池,预计到2025年将达到17.8亿美元

锂空气电池是一种可充电电池&#xff0c;它利用空气中的氧气与锂离子发生反应来发电。它们具有提供高能量密度的潜力&#xff0c;使其成为电动汽车和其他储能应用的有前途的技术。然而&#xff0c;锂空气电池的开发仍处于早期阶段&#xff0c;在商业化之前需要克服一些挑战。全…

swagger1.2 apiPost工具测试接口没有问题,换成swagger 接口调测时报错 Required request body is missing

把 请求方法由get换成post GetMapping换成 PostMapping 原因apiPost自动把请求json参数封装到请求体里了&#xff0c; 但swagger没有封装&#xff0c;通过networker可以看到载荷里并没有任何东西

Ansys Speos | 3D Texture 车灯案例应用

Speos 3D Texture功能提供了一种解决方案&#xff0c;可以绕过 CAD 系统限制来设计和模拟数百万个小图案&#xff1a;pattern图案的分布类型和重复次数。3D Texture可用于设计照明系统&#xff0c;例如光导、车灯、亮度增强膜 &#xff08;BEF&#xff09; 和由数百万个几何元素…

CSS进度条动画

CSS进度条移动 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-widt…

数据结构学习 Leetcode72 编辑距离

关键词&#xff1a;动态规划 最长公共子序列 题目&#xff1a; 思路&#xff1a; 这题我虽然做出来了但是还是有点迷糊。首先&#xff0c;这道题一定是和最长公共子序列相似的。 所以往最长公共子序列方向思考&#xff0c;考虑的它的状态和转移方程以及边界。 状态和转移方…

英国允许法官使用ChatGPT写裁决书,并公布官方指南!

知名媒体The Week消息&#xff0c;英格兰和威尔士地区的法官&#xff0c;允许使用ChatGPT撰写法律裁决书。 英国的司法官网已经发布了官方指南&#xff0c;详细描述了使用ChatGPT的正确使用方法、潜在风险以及示例&#xff0c;同时适用于首席大法官、高级庭长等负责司法的所有…