jmeter编写beanshell及内置方法的使用
(一)BeanShell简介
BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。
BeanShell一般使用在逻辑比较复杂的地方
(二)Beanshell特点
·完整的java语法的动态执行,java代码片段,以及松散类型的java和其他脚本。
·透明地访问所有java对象和API
·运行在四种模式:命令行,控制台,小程序,远程会话服务器。
·可以在安全约束的环境中工作
·编译器是一个小于150K的jar文件
(三)BeanShell的六个种类
定时器: BeanShell Timer
前置处理器:BeanShell PreProcessor
采样器: BeanShell Sampler
后置处理器:BeanShell PostProcessor
断言: BeanShell断言
监听器: BeanShell Listener
(四)Bean Shell常用内置变量
log(Logger):打印日志信息,写入信息到jmeber.log文件,
使用方法可参考:log.info("info")可参考:http://excalibur.apache.org/apidocs/org/apache/log/Logger.html
ctx(JMeterContext):该变量引用了当前线程的上下文,
使用方法可参考:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html
vars(JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
1).vars.get(String key):从jmeter中获得变量值
2). vars.put(String key,String value):数据存到jmeter变量中
使用方法可参考:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
props(JMeterProperties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值。
1) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
2) props.put("PROP1","1234");
prev(SampleResult):获取前面的sample返回的信息,常用方法:
1) getResponseDataAsString():获取响应信息
2) getResponseCode() :获取响应code
使用方法可参考:http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html
sampler(Sampler):gives access to the current sampler
使用方法可参考:http://jmeter.apache.org/api/org/apache/jmeter/samplers/Sampler.html
threadName - String containing the current thread name
(五)BeanShell使用(以BeanShell PreProcessor为例)
1)运行自定义函数
2)调用外部Java文件, source("D\\workspace\\TelephoneNumber.java")
3)导入自己打出的jar包,放到lib下的ext文件夹中,再导入类路径调用,如下图:
(六)其它用法:
1、在Test Plan中定义如下三个变量:

2、Bean Shell可脚本如下:
a、bean shell可以接受传入参数,如下图:${u1} ${u2} ${u3}
b、参数可以通过bsh.args[]按顺序提取
c、bean shell提供了一个内置变量Parameters,来保存参数的集合
(以上把变量存入参数中的方式可以这样写:vars.put("ABCEEFG","${sid}"); 结果:ABCEEFG=70695742 )

jmeter编写beanshell及内置方法的使用的更多相关文章
- JMeter之BeanShell常用内置对象
一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...
- 用JAVA编写浏览器内核之实现javascript的document对象与内置方法
原创文章.转载请注明. 阅读本文之前,您须要对浏览器怎样载入javascript有一定了解. 当然,对java与javascript本身也须要了解. 本文首先介绍浏览器载入并执行javascript的 ...
- Python的内置方法
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...
- python-day4装饰器、生成器、迭代器、内置方法、序列化、软件目录
@生成器generator a=(i*2 for i in range(10)) a.__next__()#等同于next(a),基本都不用,多用for循环a.send(m)#将m传为yield的值 ...
- Python之路(第二十九篇) 面向对象进阶:内置方法补充、异常处理
一.__new__方法 __init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象 实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法 __ ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- python第四周:装饰器、迭代器、内置方法、数据序列化
1.装饰器 定义:本质是一个函数,(装饰其他函数)就是为其他函数添加附加功能 原则:不能修改被装饰函数的源代码,不能修改被装饰函数的调用方式 实现装饰器的知识储备: 函数即“变量”.每当定义一个函数时 ...
- wlile、 for循环和基本数据类型及内置方法
while + else 1.while与else连用 当while没有被关键字break主动结束的情况下 正常结束循环体代码之后执行else的子代码 """ while ...
- python之数据类型的内置方法(str, list)
目录 字符串的内置方法 移除首尾指定字符 字母大小写相关操作 判断字符串的开头或结尾是否是指定字符 字符串特殊的输出方法 拼接字符串 替换指定字符 判断是否是纯数字 查找指定字符对应的索引值 文本位置 ...
随机推荐
- 作业6 团队项目之(开始第一个Sprint)
一.模仿并超越--类似应用. 五个app:1.四则运算小学堂(500-999次下载 3.57M) 2.小学生算术练习(9000+次下载 232K) 3.小学生加减题生成练习工具(2万-3万次下载 1. ...
- 【图论】POJ-3255 次短路径
一.题目 Description Bessie has moved to a small farm and sometimes enjoys returning to visit one of her ...
- eg_7
1. 给定Map,根据Map中的值从大到小排列 package com.studentmanager.www; import java.util.ArrayList; import java.util ...
- Pascal-S代码注释
注释参考博文 http://www.cnblogs.com/luxiaodou/p/6025124.html 注释代码 https://github.com/Hesitater/Pascal-S-Co ...
- Delphi中比较两个对象是否一致及地址是否相同[转]
在delphi中,C#也是如此,对象的地址与对象变量(引用)的地址不是同一个概念.要加以区别. procedure TForm1.btn1Click(Sender: TObject); var ...
- 爬虫学习之-scrapy交互式命令
scrapy shell https:///www.baidu.com 会启动爬虫请求网页 view(response) 会在浏览器打开请求到的临时文件 response.xpath("/ ...
- Java 使用 dom4j 读取 xml文档 demo
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://www. ...
- Cent7安装mysql5.7.11全过程
下载mysql(注:其他版本未测试) https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.11.tar.gz 1.安装依赖包 yum -y ...
- Qt环境配置 + Qt使用教程
官方下载链接有以下: http://download.qt.io/official_releases/qt/5.8/5.8.0/ http://download.qt.io/official_rele ...
- 【BZOJ2118】墨墨的等式(最短路)
[BZOJ2118]墨墨的等式(最短路) 题面 BZOJ 洛谷 题解 和跳楼机那题是一样的. 只不过走的方式从\(3\)种变成了\(n\)种而已,其他的根本没有区别了. #include<ios ...