【Jmeter】Jmeter基础9-BeanShell介绍

news2024/11/20 18:33:22

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.coloradmin.cn/o/1337658.html

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

相关文章

ServletConfig和ServletContext对象

目录 1.ServletConfig对象 1.1ServletConfig对象是什么 1.2ServletConfig对象里的方法 1.3ServletConfig的配置方式 1.4ServletConfig实现步骤 2. ServletContext对象 2.1ServletContext对象是什么 2.2ServletContext对象里的方法 2.3ServletContext对象的配置方式 2.…

图像处理控件Aspose.page功能演示:在 C# 中将 TIFF 转换为 EPS

TIFF(标记图像文件格式)和EPS(封装 PostScript)是两种常见的图像文件格式。TIFF 通常用于存储高质量图像,而 EPS 广泛用于存储矢量图像。您可能出于多种原因想要将 TIFF 图像转换为 EPS 格式。例如,如果您想…

负载均衡——Ribbon

文章目录 Ribbon和Eureka配合使用项目引入RibbonRestTemplate添加LoadBalanced注解注意自定义均衡方式代码注册方式配置方式 Ribbon脱离Eureka使用 Ribbon,Nexflix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为。基于某种负载均衡算法(轮…

大数据-Hive练习-环比增长率、同比增长率、复合增长率

目录 🥙12.1 环比增长率 1. 概述 2. 公式 3. 示例 4.练习-需求:计算各类商品的月环比增长率 🥙12.2 同比增长率 1. 概述 2. 公式 3. 示例 4. 练习-需求:计算各类商品的月同比增长率 🥙12.3 复合增长率 1. 概述 2. 公式 3. 示例…

Unity中Shader裁剪空间推导(正交相机到裁剪空间的转化矩阵)

文章目录 前言一、正交相机视图空间 转化到 裁剪空间 干了什么1、正交相机裁剪的范围主要是这个方盒子2、裁剪了之后,需要把裁剪范围内的坐标值化到[-1,1]之间,这就是我们的裁剪空间。3、在Unity中,设置相机为正交相机4、在这里设置相机的近裁…

Ubuntu16.04下载安装藏文字体详细教程(附图)

Ubuntu16.04下安装藏文字体详细教程(附图) 你是不是也被ubuntu系统中藏文或者中文总是不显示且乱码的问题困扰呢,那么你可以看看我的解决方法。 在没有装藏文或中文字体前你在打开一个文本文件的时候是不是下面这样的 安装步骤 上传或下载若…

学习笔记13——Spring整合Mybatis、junit、AOP、事务

学习笔记系列开头惯例发布一些寻亲消息 链接:https://baobeihuijia.com/bbhj/ Mybatis - Spring(使用第三方包new一个对象bean) 原始的Mybatis与数据库交互【通过sqlmapconfig来配置和连接】 初始化SqlSessionFactory获得连接获取数据层接口…

人工智能_机器学习078_聚类算法_概念介绍_聚类升维_降维_各类聚类算法_有监督机器学习_无监督机器学习---人工智能工作笔记0118

首先看一下什么是聚类,我们可以进入sklearn的官网去看看 可以看到这里,首先classification 这个分类我们学完了,然后就是regression回归我们也学完了对吧,其实我们现实生活中的,大部分问题就是 这两种问题就可以解决了. 然后我们再来看一个: clustering,这个就是聚类对吧.聚类算…

【JVM】对象

一、对象的内存布局 以Hotspot虚拟机为例,对象在内存中的结构可以分为三部分:对象头(header)、实例数据(instance data)、对齐填充(padding)。 1.1.对象头 对象头的结构大体相似&…

LeetCode day31

LeetCode day31 被创新实践的机器学习大作业和数据库作业折磨力,临近期末,各种大作业以及ddl,搞的咱只能偶尔刷刷力扣,但是csdn就挺难去发布了,大家期末也好好复习过个好年啦,O(∩_∩)O 409. 最长回文串 给定一个包含…

Unity so文件的问题

文章目录 问题在面板上无法显示子节点如何保存继承于so的类必须放置在单个脚本so类文件名和类名要一致 问题 最近自己在写一个行为树出现一些问题记录一下首先NodeTree肯定是so文件但是node可以是单纯的类,也可以是so。后来我发现只能是so 在面板上无法显示 第一…

2024年大学计算机等级考试报名注意事项及照片处理方法

计算机等级考试(National Computer Rank Examination,简称NCRE)是由国家教育部主管,全国计算机技术与软件专业技术资格(水平)考试中心主办的全国性计算机技术与应用能力水平考试。该考试旨在评估和认证考生…

C++继承与派生——(3)公有继承的访问权限的变化

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 缺乏明确的目标,一生将庸庸…

利用Jmeter做接口测试(功能测试)全流程分析!

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。 明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用…

中小工厂更适合什么样的自动仓储管理系统?

阅读本文你将了解中小工厂更适合什么样的自动仓储管理系统:一、确定自身规模;二、考虑功能配置;三、寻求拓展能力。 “我们工厂年产值3亿左右,算是个中小工厂吧,但是上了精细化的仓库管理系统之后,为了适应…

工具系列:TimeGPT_(2)使用外生变量时间序列预测

文章目录 TimeGPT使用外生变量时间序列预测导入相关工具包预测欧美国家次日电力价格案例 TimeGPT使用外生变量时间序列预测 外生变量在时间序列预测中非常重要,因为它们提供了可能影响预测的额外信息。这些变量可以包括假日标记、营销支出、天气数据或与你正在预测…

一个卖美妆的 一个月招了数十万代理!月销售额破亿 你敢相信吗?

商业模式永不过时 大家好,我是吴军,一家软件公司的产品经理 今天我们来聊一下这个纪炫商城 其实,说这个纪炫商城之前,我想跟各位企业家老板聊几句实在话 作为公司两百多号技术的,一个拥有五年软件开发经验的产品经理…

Michael.W基于Foundry精读Openzeppelin第45期——ERC20FlashMint.sol

Michael.W基于Foundry精读Openzeppelin第45期——ERC20FlashMint.sol 0. 版本0.1 ERC20FlashMint.sol 1. 目标合约2. 代码精读2.1 maxFlashLoan(address token)2.2 flashFee(address token, uint256 amount)2.3 flashLoan(IERC3156FlashBorrower receiver, address token, uint…

vue2中自定义右击菜单--vue-contextmenujs

第一步我们先安装这个依赖 npm install vue-contextmenujs 第二步把我们的依赖引入到全局中 import Contextmenu from vue-contextmenujs; Vue.use(Contextmenu) 第三步在我们需要右击菜单的代码上增加如下代码 第四步在方法中写入方法 当然其中还是有很多别的属性&#x…

Java web班级管理系统jsp【班级管理系统】(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…