JMeter之BeanShell

什么是BeanShell

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

jmeter有哪些BeanShell控件

  • BeanShell定时器(BeanShell Timer):可执行java的sleep等待,Thread.sleep的传参可以是固定的毫秒时间,也可以传入定义好的变量值,如图:
    图一
  • BeanShell前置处理器(BeanShell PreProcessor):在请求接口前执行,可执行加密、参数赋值等预操作,如图:

BeanShell用法

  • 以BeanShell PreProcessor和BeanShell断言为例,其他BeanShell控件可类推。使用BeanShell调用工具类,实现加解密功能。
  1. 导入Jar包,将需要引用的jar包放在jmeter的\lib\ext目录下,若Jmeter已打开,需要重启。
    在这里插入图片描述
  2. 创建BeanShell PreProcessor(测试计划->线程组->取样器->HTTP请求->前置处理器-> BeanShell PreProcessor)
    在这里插入图片描述
  3. 在BeanShell PreProcessor中import导入的加解密jar包(通常由开发提供),调用其中的加密方法,将加密后的接口报文通过vars函数,保存在变量cryptMsg中。
    在这里插入图片描述
  4. 传递加密报文给接口,如图所示,步骤三中将加密后的报文赋值给变量cryptMsg,故接口的消息体中传递变量cryptMsg即可。
    在这里插入图片描述
  5. 创建BeanShell断言(测试计划->线程组->取样器->HTTP请求->断言->BeanShell断言),import导入的加解密jar包,调用解密方法,将响应报文进行解密,对解密后的响应结果进行断言。
    在这里插入图片描述

常用的jmeter内置变量

变量名说明
log写入信息到jmeter.log文件,使用方法:log.info(“文本内容”)
vars操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:- vars.get(String key):从jmeter中获得变量值 - vars.put(String key,String value):数据存到jmeter变量中
prev获取前面的sample返回的信息,常用方法:- getResponseDataAsString():获取响应信息 - getResponseCode():获取响应code
props操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties:- props.get(“START.HMS”)注:START.HMS为属性名,在文件jmeter.properties中定义 - props.put(“PROP1”,“1234”)
ctx该变量引用了当前线程的上下文

Jmeter导入Jar包方法

  • 方法一:测试计划中添加目录或jar包到Classpath
    在这里插入图片描述
  • 方法二:将需要引用的jar包放在jmeter的\lib\ext目录下
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0xhy89

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值