jmeter 中的 Beanshell 使用

摘要:
内置对象vars可以访问变量a)vars。get(“name”):Beanshell内置对象props可以访问属性a)props.get(“START.HMS”);Jmeter=111111 IV.引用外部java文件:通过beanshel中的source(“代码路径”)方法导入java,然后在内部调用add方法。5、 要引用外部类文件,请执行以下操作:

一、操作变量:通过使内置对象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

jmeter 中的 Beanshell 使用第1张 

2、Debug sampler-1和Debug sampler-2什么都不处理,用来查询对比beahshell处理前后的结果

3、BeanShell Sampler中的脚本如下:

jmeter 中的 Beanshell 使用第2张

4、运行结果:

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

jmeter 中的 Beanshell 使用第3张

jmeter 中的 Beanshell 使用第4张jmeter 中的 Beanshell 使用第5张

四、引用外部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 方法。

jmeter 中的 Beanshell 使用第6张

3、运行结果:

jmeter 中的 Beanshell 使用第7张

五、引用外部class文件:

  现在知道如何引用外部文件,有时候如果我们只有class文件怎么办呢?其实在jmeter中也可以直接引用class文件,示例如下:

1、直接把上例中的java文件编译成class文件,如何编译请自行百度。

2、Bean Shell使用代码如下:

  用addClassPath("D:\")方法引入 class文件,在用import导入包及类,然后就可以像java一样调用了

jmeter 中的 Beanshell 使用第8张

3、运行结果:

jmeter 中的 Beanshell 使用第9张

六、引用外部Jar包:

  上面四、五介绍了如何引用外部java和class文件,如果文件比较多时我们可以把它们打成一个jar包然后在jemter中调用,具体如何使用可以看我上一篇有介绍:Jmeter之Bean shell使用(一)

  在这里想补充一点的是jmeter中引入jar的方法:

  1、上一篇中已使用过的:把jar包放到jmeter目录apache-jmeter-2.13libext下

  2、在Test Plan的右侧面板最下方直接添加需要引用的jar包,如下图:

 jmeter 中的 Beanshell 使用第10张

七、其它用法: 

1、在Test Plan中定义如下三个变量:

jmeter 中的 Beanshell 使用第11张

2、Bean Shell可脚本如下:

  a、bean shell可以接受传入参数,如下图:${u1} ${u2} ${u3}

  b、参数可以通过bsh.args[]按顺序提取

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

jmeter 中的 Beanshell 使用第12张

3、运行结果:

jmeter 中的 Beanshell 使用第13张

下图中1输入的这两句设置:

ResponseCode = 500;
ResponseMessage = "This is a test";

下图中2输入的这两句设置:

log.info(Parameters);

log.info(Label);

jmeter 中的 Beanshell 使用第14张

免责声明:文章转载自《jmeter 中的 Beanshell 使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#委托实现C++ Dll中的回调函数go 调用windows dll 的方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue中的computed属性

参考:https://www.cnblogs.com/gunelark/p/8492468.html 看了网上很多资料,对vue的computed讲解自己看的都不是很清晰,今天忙里抽闲,和同事们又闲聊起来,对computed这个属性才有了一个稍微比较清晰的认识,下面的文章有一部分是转自: https://www.w3cplus.com/vue/vue-c...

chown命令

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。   1.命令格式:     chown [选项]... [所有者][:[组]] 文件...   2.命...

(转)ATOM介绍和使用

一,Atom介绍 Atom 是 Github 开源的文本编辑器,这个编辑器完全是使用Web技术构建的(基于Node-Webkit)。启动速度快,提供很多常用功能的插件和主题,可以说Atom已经足以胜任“半个IDE”了。   个人感觉有如下几个优点: (1)多平台支持(Windows、Mac、Linux) (2)界面美观、现代化,使用舒适 (3)多文件管理...

wifi物联网ESP8266开发板V3 ESP-12N F NodeMcu LuaCP2012 的环境搭建

近几天刚开始接触这块开发板,折腾了一天终于将环境搭建好。废话不多说,直接上搭建过程。(我这里使用的arduino的开发软件) 1、打开Arduino,选择“首选项”,在“附加开发板管理器网址”中填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,然后点击确定保存这个地址。 2...

xcode svn

xcode svn   转帖:http://linyatong.blog.163.com/blog/static/237072054201451822525446/    在XCode中使用SVN   Xcode 是开发人员建立 Mac OS X 应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径,而SVN是版本控制工具,那么Xcode...

LINUX SSH 建立密钥对

配置私钥和公钥 先检查一下服务器的ssh配置文件 /etc/ssh/sshd_config RSAAuthentication yes # 启用 RSA 认证 默认为 yes PubkeyAuthentication yes # 启用公钥认证,默认为yes 在客户端执行命令  ssh-keygen -t rsa 生成密钥,会生成一个私钥和一个公钥文件,在提...