简介
Jmeter除了提供丰富的组件外,还提供脚本支持,可以通过编写脚本来丰富Jmeter,实现普通组件无法完成的功能。Beanshell是一种轻量级的Java脚本语言,完全符合Java规范,内置了一些独特的变量和方法。详细语法见豆壳官网(http://www.beanshell.org/)。
Jmeter支持多种脚本语言,包括Beanshell、Java和Groovy,其中Beanshell最为全面,提供了Beanshell的很多组件:
1.Beanshell采样器:beanshell请求,完成beanshell请求组件中定义的脚本函数
2.Beanshell后处理器:Beanshell后处理器,可以通过编程获得相应请求的响应结果
3.Beanshell断言:复杂的断言逻辑可以通过编程实现
4.Beanshell预处理器:Beanshell预处理器,可以在发起请求之前以编程方式对其进行预处理,如编码或加密
5.豆壳定时器:豆壳定时器,编程实现条件定时功能
6.Beanshell listener:bean shell侦听器,它监控bean shell运行结果
Beanshell内置变量介绍
Beanshell有一些默认的内置变量,用户可以通过它们与JMeter交互。主要变量及其使用方法如下:
log:写入信息到控制台中,帮助调试脚本vars: 操作jmeter变量,生成/更新/获取当前脚本的jmeter变量props: 操作jmeter属性,生成/更新/获取当前脚本的jmeter属性,使用方法和vars一样ctx:获取当前线程上下文,可获取当前线程的请求信息和相应信息(eg:可以获取Http请求和响应的所有数据)prev:获取当前请求的结果豆壳采样器示例
-vars/道具/日志
使用Beanshell Sampler,测试人员可以编写一些由特定逻辑生成的数据,并通过vars.get、vars.put或props.get、props.put将相应的变量传递给Jmeter脚本
比如有些程序验证身份证,可以在Beanshell脚本中编写身份证生成逻辑,通过代码生成符合数字和省市代码验证的身份证号,然后将生成的身份证号保存为vars或props中的变量,供后续接口调用。
Vars.get(String,String)可以在Jmeter中获取生成的变量
(字符串,字符串)可以创建和更新Jmeter变量
Props.get(String,String)可以获取Jmeter中生成的属性
Props.put(String,String)可以创建和更新Jmeter属性
vars和props的区别在于,前者是只能在同一个线程组内传递的变量,而后者是整个测试计划中可以跨线程组传递的属性。
Log.info(String)可以向控制台输出信息,方便代码调试
豆壳后处理器示例
- ctx/prev
Ctx内置变量可以获取上下文,通常与Beanshell后置处理器结合使用,解析请求结果。具体代码如下。在Jmeter的Beanshell脚本编辑器中,可以直接引用Jmeter的Jar包。Jmeter Jar包的应用编程接口见官方网站(http://jmeter.apache.org/api/overview-summary.html)
Prev相当于ctx.getPreviousResult,通过prev可以直接得到响应结果
通过上面的例子,我们对Beanshell编程有了初步的了解。Jmeter Beanshell组件有很多,其中最常用的是Beanshell预处理器、BeanShell后处理器和BeanShell断言。这些Beanshell组件的接口部分是相似的,但不同的是它们用于请求的不同阶段。
不管是什么样的组件,核心都是掌握Beanshell的内置变量和Java编程的基本技能,利用这些技能完成一些定制化的开发。除了生成变量、解析响应结果和定制逻辑处理,Beanshell还常用于发送请求前后的加密和解密。尝试用Beanshell解锁Jmeter高级用法~
我知道你会来的
1.《beanshell Jmeter Beanshell 编程简介》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《beanshell Jmeter Beanshell 编程简介》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/1514433.html