jmeter-beanshell学习1-vars使用获取变量和设置变量

最近又开始了用jmeter做自动化,不管怎么实现,都逃离不了用beanshell,最后把所有校验都放在了beanshell判断,效果还不错。

首先jmeter有很多beanshell相关的元件,取样器、前置处理器、后置处理器、断言,暂时用到了这四个,都能处理一些逻辑,细节上有一些区别,后面写上。

先写个最简单的vars,获取变量和设置变量。

获取的变量可以是参数文件、自定义变量、后置处理器提取等,这些都可以。

上面用正则表达式提取出id和name,这两个一个是整形,一个是字符串。beanshell也能提取,但是用的不好,而且如果接口报错,返回的不是这些内容,beanshell取不到容易报错,还要加很多异常处理,不如正则这些提取方便。

先用beanshell后置处理器,用vars.get()获取这两个值,打印日志的方式看一下。

id=vars.get("id");

提取的时候get后面的括号里的变量,都要加引号,等号左边id这个变量就是字符串了。如果括号里变量不加引号会报错,而且不能像接口引用那样,写成id=vars.get("${id}");,这种写法也报错。

第一个用vars.get取值和第二个直接用等号取值,目前看效果一样。

上面是用vars获取变量,如果需要把id和name拼接起来,再传给下一个接口,或者下一个beansehll处理,就要再用vars.put设置变量。

两个字符串拼接,直接加就行了,打印看是拼接上了,然后再设置变量。

vars.put("idName1",idName);

为了方便看,新设置的变量名为idName1,原来的变量名为idName,新变量名也一定要加引号。而且一定要有vars.put这一步,下面再写个接口,原变量和新变量都写了引用,看一下效果。

引用原变量名失败,新变量名成功。

vars.put()里面原变量也不能写成${}这种格式,但是原变量可以写vars.get()这种格式,两种组合,自行研究吧。

上面都是用beanshell后置处理器,beanshell取样器也可以处理这些内容,再用beanshell取样器试试。

效果一样,但是beansehll后置处理器,最好不要和取样器平级,否则会出现有几个取样器,就会执行几遍beanshell后置处理器的情况。

4个取样器,执行了4遍beanshell后置处理器,beanshell取样器只执行了一次。要使用哪个,还要看具体场景。

相关推荐
se-tester4 天前
JMeter、Postman 和 SoapUI 在做接口测试上的优势和缺点
测试工具·jmeter·接口测试·postman·soapui
feathered-feathered5 天前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
质量保障小乔9 天前
JMeter+Jenkins+AI自动化测试
jmeter
装不满的克莱因瓶11 天前
Java高并发异步请求实战,Jmeter暴力压测下的解决方案
jmeter·线程池·多线程·并发·resttemplate·qps·压测
在坚持一下我可没意见17 天前
ideaPool论坛系统测试报告
java·spring boot·功能测试·selenium·jmeter·mybatis·压力测试
linweidong19 天前
别让老板等:千人并发下的实时大屏极致性能优化实录
jmeter·clickhouse·性能优化·sentinel·doris·物化视图·离线数仓
CesareCheung20 天前
JMeter核心组件使用方法及场景大全
jmeter
我会一直在的21 天前
Jmeter的基础使用
功能测试·jmeter·压力测试
choke23321 天前
软件性能测试实战:从基础概念到 JMeter 全组件使用
jmeter
网络安全-杰克22 天前
Jmeter压力测试工具安装与使用
自动化测试·软件测试·测试工具·jmeter·职场和发展