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 PostProcessor)
- jmeter用beanshell调用自己写的jar进行MD5加密
- jmeter-Beanshell使用
- jmeter脚本开发-BeanShell Sampler与Debug Sampler
- jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密
- Jmeter之BeanShell断言使用
- 利用JMeter 的 BeanShell 测试SDK
- BeanShell Sampler在jmeter中的使用
- BeanShell in JMeter(Performance Test) —— JMeter中的Beanshell使用
- 在jmeter的beanshell中用java获取系统当前时间的简单实例
- BeanShell 在 JMeter中的使用
- jmeter-BeanShell使用二
- Jmeter--BeanShell使用
- jmeter beanshell引用java文件,返回的汉字在jmeter中乱码
- Jmeter之BeanShell
- 10048---【JMeter】Groovy和BeanShell脚本的性能比较
- 利用JMeter的beanshell进行接口的加密处理
- Jmeter-BeanShell的用法总结