前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jmeter使用BeanShell的四种场景

Jmeter使用BeanShell的四种场景

作者头像
muntainyang
发布2020-10-23 10:57:05
1.1K0
发布2020-10-23 10:57:05
举报
文章被收录于专栏:IT测试前沿

大家在使用jmeter时,应该经常会见到BeanShell的出现,取样器、前置处理器、后置处理器、断言、定时器中都支持BeanShell操作。

那BeanShell到底是什么呢?

  1. BeanShell是一种完全符合Java语法规范的脚本语言,并且拥有自己的一些语法和方法。
  2. BeanShell是一种松散类型的脚本语言。
  3. BeanShell是用Java写成的,一个小型的、免费的、可以下载的。

然后BeanShell的作用是什么呢?我觉得主要有几种使用场景和方式。

  1. 在需要一些逻辑判断时,可以使用BeanShell自己语法来实现。
  2. 在需要更复杂逻辑判断时,可以引用开发编写的,编译好的jar包来调用,结合自己的语法实现相应功能。
  3. 在需要实现复杂逻辑判断时,也可以引用开发编写的源码即jar包。
  4. BeanShell可以用于断言判断,设置Faliure值。

下面分别跟大家详细介绍一下:

一、使用BeanShell自有的语法,解决以下问题:依据第一个接口的学生分数,生成第二个接口入参使用的考试评价E、A、B等值。

//获取Jmeter同一线程组中的学生姓名和分数:

String _name1 =vars.get(“student1”);

String _score1 =vars.get(“score1”);

//将分数转换为整型

Int i_score1=Integer.parseInt(_score1);

//对分数做逻辑判断

If (i_score1>90){

//如果>90,定义一个变量i_result1为E。

vars.put(“i_result1”,”E”);

}else If (i_score1>70){

//否则,定义一个变量i_result1为A。

vars.put(“i_result1”,”A”);

} else{

//否则,定义一个变量i_result1为B。

vars.put(“i_result1”,”B”);

}

Log.info(“这是学生考核:”+i_result1);

将该BeanShell写在 第二个接口请求的前置处理器里,就可以引用${i_result1}参数了。

二、引用编译好的Jar包,调用特定的类和方法。

以md5加密方法为例:

首先在测试计划,填加目录或jar包到ClassPath中,如上图。

然后就可以写BeanShell语法import导入和调用该方法了。

Importcom/util/md5util

//***

String i_md5=md5util.getMd5Hex(参数1+参数2+参数3);

vars.put(“resutl_md5”,i_md5);

将该BeanShell写在 第二个接口请求的前置处理器里,就可以引用${resutl_md5}参数了。

如需调试查看则可以使用调试取样器来查看。

三、引用未编译的java类,调用特定的类和方法。

和第二项不同,引用源码类不能用import了,需要使用source。例如:

Source(“E:/md5util.java”);

//**

其他代码同前,就不重复写了。

四、使用自有的语法,设置Jmeter的全局变量Faliure。

该项功能主要用在断言部分的编写。还是按学生成绩来判断:

//获取Jmeter同一线程组中的学生姓名和分数:

String _name1 =vars.get(“student1”);

String _score1 =vars.get(“score1”);

//将分数转换为整型

Int i_score1=Integer.parseInt(_score1);

//对分数做逻辑判断

If (i_score1>60){

Failure=false; //成功

FailureMessage=”考试通过”

}else{

Failure=true; //成功

FailureMessage=”考试失败”

}

以上四种情况,是我目前学习总结到的几处jmeter使用BeanShell的地方,大家可以依据实际使用情况随时留言和讨论。希望能对大家更好地使用Jmeter有所帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT测试前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档