视频地址:http://edu.51cto.com/lecturer/4626073.html

JMeter 中可以使用 Beanshell Sampler 编写一些简单的脚本,实现更多功能。

1、Beanshell
Beanshell 是一种轻量级的 Java 脚本,纯 Java 编写的,能够动态的执行标准 java 语法及一些扩展脚本语法,类似于 javaScript 和 perl。

2、内置变量
Beanshell Sampler 中除了可以使用标准 java 语法之外,还有一些定义好的变量,可以直接使用。

SampleResult
ResponseCode,
ResponseMessage
IsSuccess
Label
FileName
ctx
vars
props
log
下面我按使用频率,分别讲一下最常用的几种变量。

3、log
用于打印日志,最常用,也最简单;
打印在 jmeter.log 中,可以设置打印级别,可以打印字符串、变量等。
使用方法:

1、打印 info 形式的普通字符串日志:
log.info("hello world");  输出 hello world

2、拼接字符串和变量 (其中 token 是 jmeter 局部变量):
log.info("hello world" + "${token}");  输出 hello world 和 token 变量的拼接结果

3、打印自定义变量
str = "12345";
log.info(str);  输出 12345

4、打印 error 形式的普通字符串日志:
log.info("hihihi");
log.error("aaaaa");
输出的区别:
2018-12-27 19:05:13,158 INFO o.a.j.u.BeanShellTestElement: hihihi
2018-12-27 19:05:13,158 ERROR o.a.j.u.BeanShellTestElement: aaaaa

print() 打印日志
在 beanshell 中还可以使用 print() 函数来打印日志,输出字符串等信息;

print() 是在控制台中输出信息,log() 默认是在 jmeter.log 中输出信息。

4、vars
用于存取 jmeter 局部变量,很常用,一定要掌握;
通常用于存取字符串内容,也可以存取对象;
vars.get()
String mykey = vars.get("keyname"); 
获取变量名为 keyname 的值,并保存在 mykey 中。

vars.put()
vars.put("keyname","value");  
把变量 keyname(值为 value)保存到 jmeter 变量中。

vars.putObject("OBJname",new Object()); 
把一个对象 OBJname 保存到 jmeter 变量中

vars.remove()
vars.remove("keyname");
从 jmeter 变量中删除 keyname。

5、props
用于存取 jmeter 全局的静态变量;
其中的 key 和 value 均是字符串形式;
ymd = props.get("START.YMD");
获取属性 START.YMD 的值(脚本启动日期)。

props.put("PROP1","1234");
把 1234 存入全局属性 PROP1 中。

6、ctx
当前线程的上下文信息;
使用举例:

ctx.getCurrentSampler(); 获取当前 sampler 请求

ctx.getPreviousSampler(); 获取前一个 sampler 请求

ctx.getThreadNum(); 获取当前线程的序号,从 0 开始计数

ctx.getThread(); 获取当前线程

ctx.getThreadGroup(); 获取当前线程组

ctx.getProperties(); 获取所有属性

ctx.getVariables(); 获取当前线程的所有变量

7、SampleResult
SampleResult.setResponseData(data);
自定义响应数据。

转载于:https://blog.51cto.com/xqtesting/2349092

jmeter学习指南之Beanshell Sampler 常用方法相关推荐

  1. jmeter学习指南之响应断言和beanshell断言

    一.响应断言 1.什么是响应断言? 在jmeter中最常用的断言方法是"响应断言",它是通过检查sampler的请求内容和响应结果中是否匹配指定的字符串来判断结果是否正确. 响应断 ...

  2. jmeter学习指南之深入分析跨域传递cookie

    继上篇文章中介绍了Jmeter cookie manager的两种常用使用情况: jmeter视频:https://edu.51cto.com/course/14305.html 同一线程组和不同线程 ...

  3. jmeter学习指南之察看结果树,你知道都有哪些功能吗

    0 前言 一说起两大压测工作Jmeter和LoadRunner的区别,可能很多人会说Jmeter的图表分析结果功能很差,LoadRunner在这方面则很强大. 我有很长一段时间也是这样认为,甚至还经常 ...

  4. jmeter学习指南之聚合报告

    jmeter视频地址:https://edu.51cto.com/course/14305.html 上一篇文章中我们讲了Jmeter结果分析最常用的一个Listener查看结果树, 今天接着讲另一个 ...

  5. jmeter学习指南之源码导入 IntelliJ IDEA

    使用环境: Win 7 + JMeter 5.0 + IntelliJ IDEA 2018.2.6 (为方便书写,本文中写的均是简称 IDEA) 1.下载并解压 jmeter 源码 ×××地址: ht ...

  6. jmeter学习指南之快速玩转16个逻辑控制器

    1今日主题:详解jmeter逻辑控制器 Jmeter逻辑控制器(Logic Controller)介绍: 1. Jmeter官网对逻辑控制器的解释是:"Logic Controllers d ...

  7. jmeter学习指南之详解US六仔源码开发jmeter线程组

    线程组元件US六仔源码开发 dsluntan.com Q:3393756370 VX:17061863513是任何一个测试计划的开始点.在一个测试计划中的所有元件都必须在某个线程下.所有的任务都是基于 ...

  8. Jmeter学习-BeanShell 内置变量vars、props、prev

    参考:Jmeter BeanShell 内置变量vars.props.prev的使用详解_java_脚本之家 1.介绍 在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用 ...

  9. Jmeter性能测试学习(五):Beanshell处理器(包含前置后置)

    BeanShell是一种脚本语言,一种完全符合java语法的java脚本语言,并且又拥有自己的一些语法和方法,beanShell是一种松散类型的脚本语言(这点和JS类似).jmeter中就有这个内嵌的 ...

最新文章

  1. SpringMVC项目前台利用ajaxFileUpload传递图片后台接收
  2. keras中重要的函数用法及参数详解
  3. 错误: (串列)对象不能强制改变成'double'解决办法
  4. 学python最好的方式-最好的Python入门教程是?
  5. python语法大全-python语法大全,python语法手册
  6. 基于syslog+logstash+elasticSearch+redis日志分析系统实现
  7. Scrapy-Item Pipeline(项目管道)
  8. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)
  9. 【DFS】LeetCode 52. N-Queens II
  10. c语言随机抽取小程序_c++ c语言编写抽学号小程序
  11. 项目二:2020年华为软件精英挑战赛
  12. SDN技术的发展应用任重而道远
  13. 大疆DJI2019届秋季招聘笔试:机器学习算法工程师
  14. 批量查询网站收录情况的站长工具
  15. 喝酸奶八大误区[zt]
  16. 计算相关系数 皮尔逊相关系数 Pearson、Spearman
  17. 快速文件扫描王用户协议
  18. 【Leetcode】Customers Who Never Order
  19. python学习 —— post请求方法的应用
  20. hpuoj 1725: 感恩节KK专场——特殊的比赛日期 (素数判断)

热门文章

  1. gui卡顿 python_视频下载神器(youget),在 Python 中怎么使用?
  2. mysql锁机制原理,一招彻底弄懂!
  3. mysql金额数据类型,热度飙升!
  4. day04【后台】角色维护
  5. 计算机科学与技术在哪里上课,计算机科学与技术在职研究生可以异地上课吗?...
  6. 饥荒机器人怎么用避雷针充电_饥荒避雷针有什么用
  7. java 导出es数据_elasticseach 数据的导出与导出工具elasticdump使用
  8. linux重启mysql一直_linux正确重启MySQL的方法
  9. Linux哈希表数组,开地址哈希表(Hash Table)的接口定义与实现分析
  10. flutter release 版本 调试_腾讯课堂Flutter工程实践系列——接入篇