【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类的方法
- 示例:
相关文章:
【Jmeter】Jmeter基础9-BeanShell介绍
3、BeanShell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法。 3.1、Jmeter中使用的BeanShell 在Jmeter中,除了配置元件,其他类型的元件中都有BeanShell。BeanShell 是一种完全符合Java语法规范的脚本语言,并且又拥…...
详解数组的轮转
𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...
html 表格 笔记
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>第二个页面</title><meta name"language" content"cn"> </head> <body><h2 sytle"width:500px;…...
计算机网络【HTTP 面试题】
HTTP的请求报文结构和响应报文结构 HTTP请求报文主要由请求行、请求头、空行、请求正文(Get请求没有请求正文)4部分组成。 1、请求行 由三部分组成,分别为:请求方法、URL以及协议版本,之间由空格分隔;请…...
linux基于用户身份对资源访问进行控制的解析及过程
linux中用户分为三类 1.超级用户(root) 拥有至高无上的权限 2.普通用户 人为创建、权限小,权限受到控制 3.程序用户 运行程序的用户,不是给人使用的,给程序使用的,一般不给登录! 组账…...
手动创建idea SpringBoot 项目
步骤一: 步骤二: 选择Spring initializer -> Project SDK 选择自己的JDK版本 ->Next 步骤三: Maven POM ->Next 步骤四: 根据JDK版本选择Spring Boot版本 11版本及以上JDK建议选用3.2版本,JDK为11版本…...
【Go语言入门:Go语言的数据结构】
文章目录 3.Go语言的数据结构:3.1. 指针3.2. struct(结构体)3.3. Map(映射,哈希) 3.Go语言的数据结构: 简介: 在Go语言中,数据结构体可以分为四种类型:基础类型、聚合类型、引用类型…...
QT designer的ui文件转py文件之后,实现pycharm中运行以方便修改逻辑,即添加实时模板框架
为PyCharm中的实时模板,你需要遵循以下步骤: 打开PyCharm的设置: 选择 File > Settings(在macOS上是 PyCharm > Preferences)。 导航到实时模板: 在设置中找到 Editor > Live Templates。 添加新的模板组 (可选): 为了…...
什么是负载均衡?
负载均衡是指在计算机网络领域中,将客户端请求分配到多台服务器上以实现带宽资源共享、优化资源利用率和提高系统性能的技术。负载均衡可以帮助小云有效解决单个服务器容量不足或性能瓶颈的问题,小云通过平衡流量负载,使得多台服务器能够共同…...
Python和Java的优缺点
Python的优点: 简单易学:Python的语法简洁清晰,易于学习和理解。丰富的库和框架:Python拥有庞大的标准库和活跃的开源社区,可以快速使用各种功能强大的库和框架,比如NumPy、Pandas、Django等。可读性强&am…...
AES - 在tiny-AES-c基础上封装了2个应用函数(加密/解密)
文章目录 AES - 在tiny-AES-c基础上封装了2个应用函数(加密/解密)概述增加2个封装函数的AES库aes.haes.c在官方测试程序上改的测试程序(用来测试这2个封装函数)END AES - 在tiny-AES-c基础上封装了2个应用函数(加密/解密) 概述 在github山有个星数很高的AES的C库 tiny-AES-c …...
51和32单片机读取FSR薄膜压力传感器压力变化
文章目录 简介线性电压转换模块51单片机读取DO接线方式51代码实验效果 32单片机读取AO接线方式32代码实验效果 总结 简介 FSR薄膜压力传感器是可以将压力变化转换为电阻变化的一种传感器,单片机可以读取然后作为粗略测量压力(仅提供压力变化,…...
【maven】pom.xml 文件详解
有关 maven 其他配置讲解参考 maven 配置文件 setting.xml 详解 pom.xml 文件是 Maven 项目的核心配置文件,其中包含了项目的元数据、构建配置、依赖管理等信息。以下是一个 pom.xml 文件的主要部分: <?xml version"1.0" encoding"U…...
SpringMVC源码解析——DispatcherServlet初始化
在Spring中,ContextLoaderListener只是辅助功能,用于创建WebApplicationContext类型的实例,而真正的逻辑实现其实是在DispatcherServlet中进行的,DispatcherServlet是实现Servlet接口的实现类。Servlet是一个JAVA编写的程序&#…...
搞定Apache Superset
踩雷了无数次终于解决了Superset的一系列问题 现在是北京时间2023年12月27日,亲测有效。 Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎ÿ…...
【每日试题】java面试之ssm框架
以下是20道常见的SSM(SpringSpring MVCMyBatis)面试题目和答案: 什么是SSM框架? SSM是指SpringSpring MVCMyBatis的组合,它是Java Web开发中常用的轻量级框架集合。 介绍一下SSM框架各个组件的作用? Sprin…...
Flutter 疑难杂症集合
一. Flutter集成uni小程序sdk 1. 手机连接电脑测试打开uni小程序没问题,打包成apk后debug编译下的apk也没问题,但就是release编译的apk包打不开小程序。 报错情景:点击后页面会闪现一下黑色的背景,然后又跳转回了点击之前的页面。…...
PHP序列化总结1--序列化和反序列化的基础知识
序列化和反序列化的作用 1.序列化:将对象转化成数组或者字符串的形式 2.反序列化:将数组或字符串的形式转化为对象 为什么要进行序列化 这种数据形式中间会有很多空格,不同人有不同的书写情况,可能还会出现换行的情况 为此为了…...
【Linux】 last 命令使用
last 命令 用于检索和展示系统中用户的登录信息。它从/var/log/wtmp文件中读取记录,并将登录信息按时间顺序列出。 著者 Miquel van Smoorenburg 语法 last [-R] [-num] [ -n num ] [-adiox] [ -f file ] [name...] [tty...]last 命令 -Linux手册页 选项及作用…...
Git 分布式版本控制系统(序章1)
第一章 Git 分布式版本控制系统 为什么学Git? 某些企业面试需要掌握Git,同时,也方便管理自己的Qt项目。 一、Git 客户端下载(Windows) 下载地址 https://gitee.com/all-about-git#git-%E5%A4%A7%E5%85%A8 二、Git 的特点 分支…...
给WordPress网站添加返回顶部按钮
给WordPress网站底部添加一个按钮,点它就可以现实快速返回到顶部。有两种方法可以现实,一种是通过安装相关插件来实现。另外一种方式就是以纯属代码的方式来实现。 给WordPress网站底部添加一个按钮,点它就可以现实快速返回到顶部。有两种方…...
App Inventor 2 接入短信服务,实现短信验证码功能
发送短信验证码功能一般都是基于短信平台提供的sdk进行调用,这里是基于阿里云短信平台进行的开发,阿里云短信平台接入步骤请点此参考。 App Inventor 2拓展提供的函数如下: 主要提供2个函数,生成随机位数的数字随机码 和 发送短信…...
Linux环境grep搜索方法记录
1 grep grep 命令,用来搜索字符串所在位置,可以具体到不同文件,不同行; 在Linux 下,查看命令释义如下 zhaocubuntu2004:~$ grep --help Usage: grep [OPTION]... PATTERNS [FILE]... Search for PATTERNS in each FI…...
C语言-破解密码
题目描述 密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设老王原来一个BBS上的密码为zvbo941987,为了方便记忆,他通过一种算法把这个密码变换…...
ffmpeg 解码文件时的时间戳问题
实时流和普通文件 1 实时流 实时流编码时,我们一般不进行b帧编码,但是文件存储时为了减小大小,会增加b帧,实时流只带了I,P帧,那就会好很多 2 普通文件 很多文件带了b帧,所以要使用解码时间去同…...
Java企业电子招投标系统源代码,支持二次开发,采用Spring cloud框架
在数字化采购领域,企业需要一个高效、透明和规范的管理系统。通过采用Spring Cloud、Spring Boot2、Mybatis等先进技术,我们打造了全过程数字化采购管理平台。该平台具备内外协同的能力,通过待办消息、招标公告、中标公告和信息发布等功能模块…...
[python]基于faster whisper实时语音识别语音转文本
语音识别转文本相信很多人都用过,不管是手机自带,还是腾讯视频都附带有此功能,今天简单说下: faster whisper地址: https://github.com/SYSTRAN/faster-whisperhttps://link.zhihu.com/?targethttps%3A//github.com…...
2023纠结中前行? 2024继续还是放下?
喝下2023年的第一口雪碧,没有想像中的那么期待,甜水,放弃吧;还是吃些水果吧,不行吃块肉、喝两口酒~ 关于生活 挣扎了10几年的一颗牙“终于“掉了,几个月时间都在为新牙努力着;”进了医院就不在…...
原型链补充
1.什么是原型对象 函数的独有属性,他用prototype来表示,可以在函数的prototype上挂载一些公用的属性和方法,供实例化对象来访问。 2.__proto__属性 这个属性每一个对象都有,实例化对象就是通过这个属性,来访问原型对象上的属性和方法的。 3.三者之间的关系 1.在构造函数的原型…...
《Linux Nano命令详解:小而强大的文本编辑器》
《Linux Nano命令详解:小而强大的文本编辑器》 引言: 在Linux系统中,文本编辑是开发和系统管理中不可或缺的一部分。虽然有许多强大的文本编辑器可供选择,但Nano以其简单易用、小巧灵活而备受喜爱。本文将深入探讨Nano命令&…...
浙江网站建设/电商平台推广公司
* android.telephony.TelephonyManager类作用:访问设备上的电话通讯服务的信息获取方法:Context.getSystemService(Context.TELEPHONY_SERVICE)获取* GsmCellLocation类作用:封装GSM移动电话的基站信息具体代码实现:// 获取Teleph…...
软件开发 网页设计网站/网站底部友情链接代码
容器是一个打包了应用和服务的环境,是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成。 容器的管理操作 容器常见的命令:查看、创建、启动、终止和删除 创建容器 docker create docker run 二者的区别在于docker create…...
wordpress商城开源/广告信息发布平台
今天从网上搞了一个基于osip 库的 SIP 协议的简单的 UAC 代理客户端和 UAS 代理服务器端,并进行了编译连接,代码整理后如下:----------- UAC 代理客户端的代码整理 ---------------/*** 一个使用了 osip 和 eXosip 库的 UAC 代理客户端的演示…...
ota平台网站建设/深圳seo优化排名推广
AdaGrad中的Ada是Adaptive之意,即“自适应的”,什么自适应呢,这里是指NN中的学习率,可以自适应的调整,并且是每一个参数有自己专门的调整,不是全体参数的学习率同时调整(共享一个学习率…...
网站如何做团购/数据分析
layout拼图安卓版是一款典型的拼图应用,可以让我们把各种照片随心所欲地拼起来,也是轻量级应用的模式打造,整个应用程序非常的轻便,虽然在开发商算不上独一无二的,但绝对是实用标准的拼图应用。功能介绍Instagram 全新…...
网站做统计分析/营销知识和技巧
js代码中: var a 1, b; b a; b 2; console.log(a); //结果是1 但是如果这样: var a [1, 2, 3], b; b a; b.pop(); console.log(a); //结果是[1, 2]; 为什么呢? 转载于:https://www.cnblogs.com/ljg-jj/p/4412971.html...