Jmeter 之 Beanshell
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相关推荐
- 问题解决: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 ...
- Jmeter使用BeanShell取样器调用Python脚本
1.在线程组中按以下方式添加[BeanShell取样器]: 2.把以下这段代码放到[BeanShell取样器]的脚本区域: 注意点: (1)命令里的Python脚本路径改成自己脚本的路径,-t后面是填 ...
- Jmeter学习-BeanShell 内置变量vars、props、prev
参考:Jmeter BeanShell 内置变量vars.props.prev的使用详解_java_脚本之家 1.介绍 在使用Jmeter过程中,或多或少都会接触些BeanShell,它会使工具的使用 ...
- 利用JMeter的beanshell进行接口的加密处理
最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求. 刚开始由于项目赶进 ...
- jmeter 使用beanshell 编写脚本
目录 一.介绍 1.1 介绍 1.2 下载&启动 二.jmeter中创建beanshell脚本 三.jmeter与beanshell 数据交互 3.1 例子1 beanshell 将变量传给j ...
- linux脚本自定义赋值,JMeter——运用BeanShell给自定义的变量动态赋值
这个计划中定义了以下组件:用户自定义变量: 里面定义了2个变量,一个是us(注意,未对它初始化),一个变量名是:test ,值为:123456一个BeanShell Sampler: ${test}表 ...
- jmeter使用beanshell构造参数化
1.先在本地写一个java类,用来随机生成一个数字,如: package com.jmeter.test;public class BeanShellTest {public int getRando ...
- Jmeter之Beanshell使用(二)Java处理JSON块
[环境] ①Jmeter版本:3.2,JDK:1.8 ②前置条件:将json.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中:否则会报 ...
- Jmeter之BeanShell
在Jmeter中各种分类组件中都有相应的BeanShell组件,这里简单的说明一下Beanshell的使用. 一.概念 BeanShell是一种符合Java语法的脚本语言,也有自己的一些特定语法 二. ...
- Jmeter 之 Beanshell 用法
Jmeter 里面有几个用到Beanshell的地方,这里作同一介绍. Beanshell Sampler – 一个独立的beanshell请求 Beanshell PreProcessor – sa ...
最新文章
- JavaScript面向对象修改标签页详解
- 科技部部长:基础研究是科技创新“总开关”
- oracle中escape关键字用法
- attempted relative import beyond top-level package
- python importerror怎么解决-解决python有时候import不了当前的包问题
- 6.Spring Cloud Alibaba教程:Sentinel流量防卫兵的介绍与基本使用
- Golang之变量去哪儿
- RetroGuard的使用方法(转)
- python可以处理什么文件_第十五篇 Python之文件处理
- 曾用一个肾买的iPhone4s,现在能换两个不锈钢脸盆
- python交互式程序设计导论小测验答案_最新网课答案2021学堂在线Python 交互式程序设计导论...
- 关于身份证OCR识别,你知道多少?
- uniapp显示彩色的阿里icon的图标
- 一、数据库之理论基础
- 计算机组策略怎么显示音量图标,win7系统电源、网络、音量图标不见的解决方法...
- postman使用pre-request script计算md5
- jQuery创建、添加、删除元素
- [失败] 网易云音乐爬虫分析
- 【SAP BO】制作SAP BO Dashboards入门教程(一)
- 【图片新闻】洛克希德马丁公司发布第一架F-21战斗机
热门文章
- 剑客之剑——君子剑(Notepad++)
- 生意参谋数据分析专员考试
- 基于SSM网络蛋糕商城管理系统
- 本人亲测-inno setup打包EXE(较完整实例)
- 活动安排(贪心算法)C/C++
- 第二次学习计划 之 SVM算法
- mysql handlersocket_HandlerSocket
- android金额小数点后面和前面字体大小不一致的实现
- 计算机安全权限不足或配置文件损坏,配置文件加载失败 - Windows Server | Microsoft Docs...
- JBoss及Lomboz的下载与安装