Jmeter——BeanShell PreProcessor的用法
一、什么是BeanShell
BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。
二、BeanShell PreProcessor的作用
1、介绍
BeanShell PreProcessor是一个前置处理器,它可以进行一些处理,比如执行一个算法并将结果存储到参数中。
通过BeanShell PreProcessor可以在发生采样之前执行任何代码。
右击项目——》“添加”——》“前置处理器”——》“BeanShell PreProcessor”
添加后,页面如下图:
4、Bean Shell常用内置变量
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);
ctx(JmeterContext)通过它来访问context,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,提供读取/写入访问变量的方法。这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
c) vars.putObject("OBJ1",new Object());
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class Java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample采样的结果,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler 访问当前采样
实例:
配合counter, User Parameters
设置如下:
counter
User Parameters: 定义四个变量,初始值都为空,后期通过BeanShell PreProcessor与counter计算之后赋值
BeanShell PreProcessor 设置:
${cnt} ${v1}表示传入BeanShell Sampler的参数,也就是我们前面定义的Counter 和User Parameters,当然,如果需要传入多个参数,
一直写下去就可以,不需要标点隔开
结果:
Jmeter——BeanShell PreProcessor的用法的更多相关文章
- Jmeter beanshell preprocessor随机添加任意多个请求参数
介绍下本次使用beanshell preprocessor的原因: 1.系统下可添加产品,一个产品可以有多个产品主题(比如:产品A(杭州三日游)拥有三个主题(研学.红学.夏令营)),我们在每次添加产品 ...
- Jmeter BeanShell PreProcessor使用笔记
打印log log.info("content:" + content); 将字符串转化为JsonString import com.alibaba.fastjson.JSON; ...
- jmeter 之beanshell preprocessor
Bean Shell PreProcessor 可参考https://blog.csdn.net/shimengran107/article/details/76849748 是一个前置处理器,它可以 ...
- Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor
上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...
- Testing Complex Logic with JMeter Beanshell
BeanShell是最先进的JMeter内置组件之一.JMeter具有丰富的内置插件,可满足性能测试的许多需求.例如,在编写一些复杂的测试时,您可能需要一些额外的脚本.在这种情况下,值得使用Beans ...
- JMeter BeanShell示例
翻译:https://blog.trigent.com/jmeter-blog-series-jmeter-beanshell-example 在这个例子中,我们将演示在Apache JMeter中使 ...
- JMeter博客系列:JMeter BeanShell示例
1.简介 Apache JMeter是一个基于Java的开源工具,使您可以在应用程序上执行功能,负载,性能和回归测试.应用程序可以在Web服务器上运行,也可以是独立的.它支持在包含静态和动态资源的客户 ...
- Jmeter Beanshell 编程简介
简介 Jmeter除了提供丰富的组件以外,还提供脚本支持,可通过编写脚本来丰富Jmeter,实现普通组件无法完成的功能.Beanshell是一种轻量级的Java脚本语言,完全符合Java规范,并且内置 ...
- Jmeter BeanShell前置处理器、取样器、后置处理器
前置处理器:BeanShell PreProcessor取样器 :BeanShell Sampler后置处理器:BeanShell PostProcessor 1.前置 import org.apac ...
随机推荐
- Informatica 常用组件Lookup之四 查找组件
在映射中配置查找转换时,请定义以下组件: 查找源 端口 属性 条件 元数据扩展 查找源 您可以使用平面文件或关系表作为查找源.创建查找转换时,您可以从以下位置导入查找源: 资料库中的任 ...
- Android中Intent的显示和隐式使用
Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...
- 删除在Godaddy注册的域名,申请退款的全过程
1,删除域名. 登录进 Godaddy ,进入域名管理(Domain Manager),点击你要删除的域名,把要删除的域名前面打上对勾,再点击“delete selected”,确认,稍等一会就删除了 ...
- Spring boot基础:配置文件配置变量、多环境的配置
一.配置 resources下面application.properties 1.普通配置 resources下面application.properties,比如写上:server.port=909 ...
- Android Studio安装&&安装bug
1.安装SDK:Android SDK安装 2.安装Android Studio 3.配置HTTP Proxy: 转自:Android Studio设置HTTP代理(可用) 因为大陆的内网的防火墙很厉 ...
- 【转】gcc选项
http://zodiac1111.github.io/blog/config-gcc-warning/
- springboot securyt 默认的用户名和密码
用户名:user 密码在控制台,每次启动的时候会生成一个随机的密码,如下:
- MongoDB社区版本和企业版本差别
MongoDB社区版本和企业版本差异主要体现在安全认证.系统认证等方面,具体信息参考下表: 版本特性 社区版本 企业版本 JSON数据模型.自由模式 支持 支持 水平扩展的自动分片功能 支持 支持 内 ...
- ufldl学习笔记与编程作业:Softmax Regression(vectorization加速)
ufldl学习笔记与编程作业:Softmax Regression(vectorization加速) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learn ...
- W3CSchool CSS学习简记
什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内 ...