Beanshell是java的轻量级脚本;

jmeter中关于beanshell的有:

1.Beanshell 请求,完成Beanshell请求组件中定义的脚本功能;

2.Beanshell 后置处理器,可通过编程方式获取对应请求的响应结果;

3.Beanshell 断言:可通过编程方式实现复杂的断言逻辑;

4.Beanshell 前置处理器:可通过编程方式在发起请求以前做预处理,比如编码或者加密;

5.Beanshell 计时器:编码实现条件定时功能;

6.Beanshell 监听器:监听Beanshell运行结果;

Beanshell内置变量介绍

Beanshell有一些默认的内置变量,用户可以通过这些变量与jmeter进行交互,其中主要的变量及其使用方法如下:

log:打印日志,写入信息到jmeter.log文件,帮助调试脚本;如,log.info("heheda");

vars:操作jmeter变量,生成、更新、获取当前脚本的jmeter变量;(只能在同一线程组内传递);

  常用方法:

a) vars.get(String key):从jmeter中获取变量值;如,user是变量,vars.get("user");

b) vars.put(String key,String value):数据存到jmeter变量中;

System.out.println("xixi");

String a="3";System.out.println(a);

使用先前定义的变量name;System.out.println("${name}");//需要加"",否则会报错Attempt to access property on undefined variable or class name

当前beanshell中vars.put("name","he");使用System.out.println("${name}");会原样输出;

props:操作jmeter属性,生成、更新、获取当前脚本的jmeter属性,使用方法和vars一样;(可在整个测试计划中跨线程组传递)

ctx:获取当前线程上下文,可获取当前线程的请求信息和相应信息(可以获取http请求和响应的所有数据);

prev:获取当前请求的结果;

Beanshell下所有变量如下:

log,Label(请求标签),FileName(文件名,如果有),Parameters,bsh.args,SampleResult,ResponseCode(默认是200),ResponseMessage(默认是ok),

IsSuccess(默认是true),ctx,vars,props;

自定义函数:

在BeanShell中,我们可以使用java语言自定义函数来处理特定的逻辑,结合BeanShell的内置对象进行变量的存取,方便我们进行测试,提高脚本的灵活性;

示例:

1.在Test Plan中添加一个变量:url = 百度

2.Debug 请求 1和Debug 请求 2什么都不处理,用来查询对比BeanShell请求处理后的结果;

3.BeanShell请求中的脚本如下;

4.运行结果;

debug请求1中显示:url=百度

debug请求2中显示:url=sogou,name=zhangshao

bean shell可以接受传入参数,如:${url},参数可通过bsh.args[0]提取;

 其它用法:

1.在Test Plan中定义3个变量;

2.BeanShell请求如下;

a)、beanshell可以接受传入参数,如下图,${url} ${url2} ${url3}

b)、参数可以通过bsh.args[0],bsh.args[1],bsh.args[2]按顺序提取参数;

c)、beanshell提供了一个内置变量Parameters,来保存参数的集合;

3.运行结果;

察看结果树——debug请求,显示该jmx脚本中所有变量;

察看结果树——BeanShell请求1中显示响应码,响应信息,响应数据;

jmeter.log中显示log.info(**)的信息;

Jmeter 之 Beanshell相关推荐

  1. 问题解决:jmeter+java+beanshell : org.apache.jorphan.util.JMeterException: Error invoking bsh method: eva

    问题解决:jmeter+java+beanshell : org.apache.jorphan.util.JMeterException: Error invoking bsh method: eva ...

  2. Jmeter使用BeanShell取样器调用Python脚本

    1.在线程组中按以下方式添加[BeanShell取样器]: 2.把以下这段代码放到[BeanShell取样器]的脚本区域: 注意点: (1)命令里的Python脚本路径改成自己脚本的路径,-t后面是填 ...

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

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

  4. 利用JMeter的beanshell进行接口的加密处理

    最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求. 刚开始由于项目赶进 ...

  5. jmeter 使用beanshell 编写脚本

    目录 一.介绍 1.1 介绍 1.2 下载&启动 二.jmeter中创建beanshell脚本 三.jmeter与beanshell 数据交互 3.1 例子1 beanshell 将变量传给j ...

  6. linux脚本自定义赋值,JMeter——运用BeanShell给自定义的变量动态赋值

    这个计划中定义了以下组件:用户自定义变量: 里面定义了2个变量,一个是us(注意,未对它初始化),一个变量名是:test ,值为:123456一个BeanShell Sampler: ${test}表 ...

  7. jmeter使用beanshell构造参数化

    1.先在本地写一个java类,用来随机生成一个数字,如: package com.jmeter.test;public class BeanShellTest {public int getRando ...

  8. Jmeter之Beanshell使用(二)Java处理JSON块

    [环境] ①Jmeter版本:3.2,JDK:1.8 ②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中:否则会报 ...

  9. Jmeter之BeanShell

    在Jmeter中各种分类组件中都有相应的BeanShell组件,这里简单的说明一下Beanshell的使用. 一.概念 BeanShell是一种符合Java语法的脚本语言,也有自己的一些特定语法 二. ...

  10. Jmeter 之 Beanshell 用法

    Jmeter 里面有几个用到Beanshell的地方,这里作同一介绍. Beanshell Sampler – 一个独立的beanshell请求 Beanshell PreProcessor – sa ...

最新文章

  1. JavaScript面向对象修改标签页详解
  2. 科技部部长:基础研究是科技创新“总开关”
  3. oracle中escape关键字用法
  4. attempted relative import beyond top-level package
  5. python importerror怎么解决-解决python有时候import不了当前的包问题
  6. 6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用
  7. Golang之变量去哪儿
  8. RetroGuard的使用方法(转)
  9. python可以处理什么文件_第十五篇 Python之文件处理
  10. 曾用一个肾买的iPhone4s,现在能换两个不锈钢脸盆
  11. python交互式程序设计导论小测验答案_最新网课答案2021学堂在线Python 交互式程序设计导论...
  12. 关于身份证OCR识别,你知道多少?
  13. uniapp显示彩色的阿里icon的图标
  14. 一、数据库之理论基础
  15. 计算机组策略怎么显示音量图标,win7系统电源、网络、音量图标不见的解决方法...
  16. postman使用pre-request script计算md5
  17. jQuery创建、添加、删除元素
  18. [失败] 网易云音乐爬虫分析
  19. 【SAP BO】制作SAP BO Dashboards入门教程(一)
  20. 【图片新闻】洛克希德马丁公司发布第一架F-21战斗机

热门文章

  1. 剑客之剑——君子剑(Notepad++)
  2. 生意参谋数据分析专员考试
  3. 基于SSM网络蛋糕商城管理系统
  4. 本人亲测-inno setup打包EXE(较完整实例)
  5. 活动安排(贪心算法)C/C++
  6. 第二次学习计划 之 SVM算法
  7. mysql handlersocket_HandlerSocket
  8. android金额小数点后面和前面字体大小不一致的实现
  9. 计算机安全权限不足或配置文件损坏,配置文件加载失败 - Windows Server | Microsoft Docs...
  10. JBoss及Lomboz的下载与安装