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变量使用讲解的主要内容,如果未能解决你的问题,请参考以下文章
JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log