Jmeter之BeanShell变量使用讲解

Posted 贾常伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter之BeanShell变量使用讲解相关的知识,希望对你有一定的参考价值。

一、在测试过程中经常会遇到一些业务逻辑处理需要,单纯的线程设置不能满足,这时候就要使用BeanShell编写一定的脚本

前置处理器:BeanShell PreProcessor,主要接口请求前做一些参数化及逻辑处理

后置处理器:BeanShell PostProcessor ,自己写脚本提取参数,或者使用正则表达式

本人主要由于接口加密,从而需要使用BeanShell做一些接口参数化

技术图片

二、接口加密需要开发提供的Jar包,放到/Users/wuxi/Documents/apache-jmeter-3.2/lib/ext里面

从而可以在BeanShell使用该加密方法进行逻辑处理

三、参数的使用,BeanShell里面参数变量引用来源

1、测试计划内变量,以后变量可以直接使用${url},${domain},可以在很多组件中直接使用

技术图片

2、CSV Data Set Config中取值,一样使用${mobile}去使用,多个参数可以使用,分开

技术图片

3、正则表达提取的变量,也可以直接使用${token},${id}去使用

正则提取跟LR的关联差不多,主要是左右边界获取中间所要提取的值

技术图片

正则表达式:一般是用(.+?)全部获取

模版:$1$ 获取第一个匹配的,如果确认接口就返回一个该字段 $1$.匹配数字1,即可

如果返回很对该字段,则$-1$ ,匹配数字-1 来获取,${XXXX_matchNr}来获取整个获取字段个数

变量提取最好使用Debug Sampler 来确认下变量名是否提取的是自己所要的

技术图片

4、BeanShell 变量的使用,将需要引用的变量写在parameters中

技术图片

${id}可以直接写入string内部,jmeter会优先识别该变量,"${id}"也能获取到变量

也可以String token = vars.get("token");把jmeter参数转化为 java 变量,再进行字符串拼接

vars.put("user",user); //Bean shell的变量存到jmeter中,勾选编码

技术图片

对于非法字符进行编码:在chrome中可以调试,encodeURIComponent(),dencodeURIComponent()

以上是关于Jmeter之BeanShell变量使用讲解的主要内容,如果未能解决你的问题,请参考以下文章

beanshell_讲解

JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log

Jmeter之BeanShell脚本

JMeter学习-033-JMeter BeanShell 脚本应用实例之参数变量修改

JMeter之Beanshell用法

Jmeter之Bean shell使用-常用内置变量