Jmeter beanshell语法
beanshell介绍
- BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
- BeanShell是一种松散类型的脚本语言(这点和JS类似);
- BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
- BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
- github地址
Beanshell常用的内置对象
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下
- 全部类及其使用:https://jmeter.apache.org/api/allclasses-noframe.html
bsh.args对象获取数组参数
多个参数使用空格隔开,使用bsh.args
可获取传入的数组参数,使用方法:
bsh.args[0]
bsh.args[1]
bsh.args[2]
Logger-log内置对象
org.apache.log.Logger:The object interacted with by client objects to perform logging.
log日志写入
写入信息到jmeber.log文件,使用方法:
log.info("info msg");
log.error("error msg");
log.warn("warning msg");
log.debug("debug msg");
查看jmeter日志的方式
- 在gui模式查看:
选项
->日志查看
或者点右上角的⚠️图标,即可在界面上查看jmeter日志; - 在未指定日志文件路径情况下,查看
/apache-jmeter-5.3/bin
目录下的jmeter.log
文件
JMeterVariables-vars内置对象
org.apache.jmeter.threads.JMeterVariables:Class which defines JMeter variables. These are similar to properties, but they are local to a single thread.
操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
获取字符串变量值 vars.get(String key)
vars.get("domain"); //获取字符串变量domain的值
设置字符串变量值到jmeter变量中 vars.put(String key,String value)
注意:value必须为String,传入其它类型的参数必须转成String,否则会报错。
int adultNum = 8;
vars.put("adultNum",adultNum.toString()); //将adultNum的转字符串设置为jmeter的adultNum变量值
获取非String类型变量值 vars.getObject(String key)
//personInfo为类型为Object对象的人信息
vars.getObject("personInfo");
设置非String类型变量值 vars.putObject(String key, Object value)
List list = new ArrayList();
list.add("a");
list.add('b');
list.add("c");
vars.put("list", list); //将list对象放至到jmeter的list变量中
JMeterContext-ctx内置对象
org.apache.jmeter.threads.JMeterContext:Holds context for a thread. Generated by JMeterContextService. The class is not thread-safe - it is only intended for use within a single thread. 该变量引用了当前线程的上下文
获取响应数据 ctx.getPreviousResult()
//SampleResult需要import对象
import org.apache.jmeter.samplers.SampleResult;SampleResult result = ctx.getPreviousResult(); //getPreviousResult()返回SampleResult对象
String RequestHeaders = result.getRequestHeaders(); //getRequestHeaders()方法返回请求headers字符串
String ResponseHeaders = result.getResponseHeaders(); //getResponseHeaders() 返回响应headers字符串
String responseCode = result.getResponseCode(); //getResponseCode() 返回响应状态码字符串
URL url = result.getURL(); //getURL() 返回请求URL对象
SampleResult-prev内置对象
org.apache.jmeter.samplers.SampleResult:This is a nice packaging for the various information returned from taking a sample of an entry.获取前面的sample返回的信息
prev相当于ctx.getPreviousResult()
String ResponseData = prev.getResponseDataAsString(); //getResponseDataAsString()返回响应文本
String RequestHeaders = prev.getRequestHeaders(); //getRequestHeaders()方法返回请求headers字符串
String ResponseHeaders = prev.getResponseHeaders(); //getResponseHeaders() 返回响应headers字符串
String responseCode = prev.getResponseCode(); //getResponseCode() 返回响应状态码字符串
URL url = prev.getURL(); //getURL() 返回请求URL对象
String urlStr = prev.getUrlAsString(); //getUrlAsString() 返回请求URL字符串
常用beanshell脚本
后续再补~
Jmeter beanshell语法相关推荐
- jmeter——BeanShell 预处理程序
jmeter--BeanShell 预处理程序 一.BeanShell 预处理程序描述和作用 二.BeanShell 预处理程序的使用 三.BeanShell 预处理程序的注意事项 四.BeanShe ...
- Jmeter BeanShell使用json.jar包处理Json数据
1.环境准备 1) Jmeter.JDK 2) 将json.jar包置于..\lib\下 json包下载地址:https://mvnrepository.com/ (国内的maven地址) 可以参考 ...
- JMeter BeanShell 实现接口签名验签及加解密
在利用JMeter进行接口测试或者性能测试的时候,我们需要处理一些复杂的请求,比如对接口请求参数进行签名,加密,响应数据的验签及解密,以及接口公共参数的处理,此时就需要利用BeanShell脚本了,关 ...
- 【干货】JMeter BeanShell 应用
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html 不废话直接上场景 场景1:业务单据参数化时要生成一组(多个时间,比如订单 ...
- (jmeter内置可调用的变量)jmeter beanShell断言
用户可以在jmeter- "beanShell断言"中自定义断言.自由灵活的用脚本实现自己的断言 beanShell断言接口介绍 在beanShell中直接可以调用的变量, ...
- Jmeter BeanShell采样器提取接口响应并传递(三)
1.将fastjson-1.2.68.jar放置C:\jmeter\apache-jmeter-5.0\lib路径下 2.CSV 数据文件设置多个手机号 3.添加登录接口,${mobile}调用2种的 ...
- Jmeter BeanShell取样器操作变量(一)
vars: 引用Jmeter线程的局部变量,将 局部变量 改为 全局变量 亦可达到引用全局变量的效果, 连通Jmeter 和 beanshell string user = vars.get(&qu ...
- Jmeter——BeanShell PreProcessor的用法
一.什么是BeanShell BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型.命 ...
- JMeter BeanShell 应用
不废话直接上场景 场景1:业务单据参数化时要生成一组(多个时间,比如订单日期,发货日期等)未来的时间,运用JMeter提供的时间函数并不能较好的完成 场景2:测试Java接口,确又不想继承Abstra ...
最新文章
- 深度学习在阿里B2B电商推荐系统中的实践
- 第六回严重鄙视360安全卫士
- js从0开始构思表情插件
- Windows7 beta1 微软官方下载
- html ctf查找,Web CTF 解题思路总结—南京邮电大学攻防平台writeup
- 前端学习(2597):按钮控制操作
- java todo error_Java全局异常处理(TODO)
- neo4j call
- java判空null前后,关于java:引不要再使用null判空了
- MySQL环境变量的配置(详细教程)
- 联想小新v2000bigger安装黑苹果
- mysql超市管理系统怎么写_求php+mysql的小型超市管理系统
- php alt什么意思,img标签的alt作用是什么
- Android 长按Menu键的监听
- 因子分析——流程与实现stata
- 水有七德,几近于道!
- ExcelWriter 导出excel
- 模糊图片(动漫)转高清 (aardio GUI),优质图片处理软件
- 2021 年国产数据库名录和产品信息一览
- Clarifai的AI可检测图像和视频中的不合规内容