JMeter之BeanShell

文章目录

  • 什么是BeanShell
  • jmeter有哪些BeanShell控件
  • BeanShell用法
  • 常用的jmeter内置变量
  • Jmeter导入Jar包方法

什么是BeanShell

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

jmeter有哪些BeanShell控件

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

BeanShell用法

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

常用的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
    JMeter之BeanShell_第7张图片
  • 方法二:将需要引用的jar包放在jmeter的\lib\ext目录下
    JMeter之BeanShell_第8张图片

你可能感兴趣的:(测试开发,jmeter,java,测试工具)