首页 > 代码库 > JMeter中BeanShell用法总结(一)

JMeter中BeanShell用法总结(一)

一、什么是Bean Shell

  • BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
  • BeanShell是一种松散类型的脚本语言(这点和JS类似);
  • BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
  • BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。

 

二、Jmeter有哪些Bean Shell

  • 定时器:  BeanShell Timer

  • 前置处理器:BeanShell PreProcessor

  • 采样器:  BeanShell Sampler

  • 后置处理器:BeanShell PostProcessor

  • 断言:   BeanShell断言

  • 监听器:  BeanShell Listener

 

三、BeanShell的用法

通过实例讲解BeanShell的用法

使用场景:手机号注册,登录,绑卡业务

实现随机生成不重复的手机号的两种方式:

1.注册接口参数:

merchant_id=00000001&bizcode=uums_user_register&mobile=13${__Random(000000000,999999999,Phone)}&password=888888

此种方式,是通过JMeter自带的Random函数,生成某个范围内的随机数,然后后面的登录业务,直接引用13${Phone}即可

登录接口:

merchant_id=00000001&bizcode=uums_login&login_type=104&login_account=13${Phone}&password=888888

 

方式2:

通过BeanShell实现:

String time = "${__time(,)}";int [] arr = {13,15,18,17};int index=(int)(Math.random()*arr.length);//产生0-(arr.length-1)的整数值,也是数组的索引int rand = arr[index];String time =time.substring(6,13);vars.put("Phone",rand+""+${__Random(0,9,RandNo1)}+""+time+""+${__Random(0,9,RandNo2)});//如果在测试过程中,存在重复,也可以构造其他随机数//1476063656393//6063697317//063754461

 

技术分享

技术分享

 

注意:BeanShell放置注册采样器的下面和放在测试用例下的区别:

技术分享

每次都会执行BeanShell Sampler一次

 

放在注册采样器下:每次只执行一次:

技术分享

 

JMeter中BeanShell用法总结(一)