【jmeter】Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求。本节内容如下:
一、操作变量
二、操作属性
三、自定义函数
四、引用外部java文件
五、引用外部class文件
六、引用外部Jar包
七、其它用法(接受参数, log等)
一、操作变量:通过使用Bean shell内置对象vars可以对变量进行存取操作
a) vars.get("name"):从jmeter中获得变量值
b) vars.put("key","value"):数据存到jmeter变量中
二、操作属性:通过使用Bean shell内置对象props 可以对属性进行存取操作
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
三、自定义函数:
在BeanShell中,我们可以使用java语言自定义函数来处理特定的逻辑,结合BeanShell的内置对象进行变量的存取,方便我们进行测试提高脚本的灵活性。
示例:
1、在Test Plan中添加一个变量:hello = kitty

2、Debug sampler-1和Debug sampler-2什么都不处理,用来查询对比beahshell处理前后的结果
3、BeanShell Sampler中的脚本如下:

4、运行结果:
- Debug sampler-1中显示:hello=kitty
- BeanShell sampler中 返回结果为:success
- Debug sampler-1中显示:hello=world,jmeter=111111



四、引用外部java文件:
有没有觉得上面(三)中自定义函数这样的方式太麻烦并且也不美观?而且如果我们已经有现成的java源文件或者class文件时,我们有没有什么办法直接在jemter中引用?这就是这部分要介绍的内容,直接上示例:
1、假如我有一个java 源文件,名为:Myclass.java,代码如下:

package test; public class Myclass
{
public int add(int a, int b)
{
return a + b;
}
}

2、Bean Shell使用代码如下:
在bean shel中通过source("代码路径")方法引入java,然后调用方法和java一样,new一个class,再调用里面的add 方法。

3、运行结果:

五、引用外部class文件:
现在知道如何引用外部文件,有时候如果我们只有class文件怎么办呢?其实在jmeter中也可以直接引用class文件,示例如下:
1、直接把上例中的java文件编译成class文件,如何编译请自行百度。
2、Bean Shell使用代码如下:
用addClassPath("D:\\")方法引入 class文件,在用import导入包及类,然后就可以像java一样调用了

3、运行结果:

六、引用外部Jar包:
上面四、五介绍了如何引用外部java和class文件,如果文件比较多时我们可以把它们打成一个jar包然后在jemter中调用,具体如何使用可以看我上一篇有介绍:Jmeter之Bean shell使用(一)。
在这里想补充一点的是jmeter中引入jar的方法:
1、上一篇中已使用过的:把jar包放到jmeter目录\apache-jmeter-2.13\lib\ext下
2、在Test Plan的右侧面板最下方直接添加需要引用的jar包,如下图:

七、其它用法:
1、在Test Plan中定义如下三个变量:

2、Bean Shell可脚本如下:
a、bean shell可以接受传入参数,如下图:${u1} ${u2} ${u3}
b、参数可以通过bsh.args[]按顺序提取
c、bean shell提供了一个内置变量Parameters,来保存参数的集合

3、运行结果:

下图中1输入的这两句设置:
ResponseCode = 500;
ResponseMessage = "This is a test";
下图中2输入的这两句设置:
log.info(Parameters);
log.info(Label);

官网:
http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_Sampler
【jmeter】Bean shell使用(二)的更多相关文章
- 【转载】Jmeter之Bean shell使用(二)
Jmeter之Bean shell使用(二) 原博文地址为:https://www.cnblogs.com/puresoul/p/4949889.html 其中需要注意的是——三.自定义函数中Bean ...
- 转 Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- 转:Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- jmeter(十六)Jmeter之Bean shell使用(二)
上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...
- Jmeter之Bean shell使用(二)(转载)
转载地址:https://www.cnblogs.com/puresoul/p/4949889.html 上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean she ...
- jmeter Bean Shell的使用(二)
BeanShell的用法 在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推.在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加.解密功 ...
- jmeter bean shell断言加密的响应信息(加密接口测试二)
断言加密的响应信息 1.在http请求-->添加-->断言-->bean shell 断言 import com.changfu.EncryptAndDecryptInterface ...
- Jmeter ----Bean shell使用
一.什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanS ...
随机推荐
- stdobj to array php
The lazy one-liner method You can do this in a one liner using the JSON methods if you're willing to ...
- python 建立网站
python建立网站相关学习资源: 1. 一整套教程:http://www.pythondoc.com/flask-mega-tutorial/helloworld.html 2. 知乎关于这个问题的 ...
- (进阶篇)Cookie与 Session使用详解
1.Cookie和Session简介与区别 在非常多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用Cookie与 ...
- 设置mysql远程连接root权限
在远程连接mysql的时候应该都碰到过,root用户无法远程连接mysql,只可以本地连,对外拒绝连接.需要建立一个允许远程登录的数据库帐户,这样才可以进行在远程操作数据库.方法如下:默认情况下MYS ...
- String类、正则表达式
一.String类 String使用非常频繁,用来描述一个字符串.String中实现了很多 对字符串方便的操作方法. String内部使用char[]实现字符串的数据保存 字符串的&quo ...
- Integer to Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- HDU 1003 Max Sum --- 经典DP
HDU 1003 相关链接 HDU 1231题解 题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置 解题思路:经典DP,可以定义 ...
- java大数
java大数还是很好用的! 基本加入: import java.math.BigInteger; import jave.math.BigDecimal; 分别是大数和大浮点数. 首先读入可以用: S ...
- STM32学习笔记:系统时钟和SysTick定时器
原文:http://blog.sina.com.cn/s/blog_49cb42490100s60d.html 1. STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI.HS ...
- Java——日期格式
/* * 日期对象和毫秒值之间的转换. * * 毫秒值--->日期对象: * 1.通过Date对象的构造方法new Date(timeMillis) * 2.还可以通过setTime设 ...