Jmeter书中不会教你的(1)——beanshell用来获取变量和设置变量的vars

article/2025/11/10 7:56:35

       这几年Jmeter用的相对比较多,自己每次在做项目时也常会去翻看以前遇到的问题,记录的一些技巧,解决方案,也一直考虑把它整理出来,一来方便自己查找,二来也希望同行可以互相切磋。我写的这些文章不是针对Jmeter小白用户,可能叙述某些步骤时会直接跳过一些解释,不明白的或者表达错误的欢迎提出。目前所用的Jmeter版本是5.3。

        通常我们在编写场景类脚本时需要引用之前提取或设置的变量,如先在线程组下右击创建一个配置元素,选择用户自定义变量,设置一个参数名为name,值为junjun。什么情况下需要用到这种配置元素?一般每次需要执行相同脚本不同参数时,如线程数量等

  1.         接下来要实现beanshell中引用这个变量并打印。可能刚接触Jmeter的同学很少会用到beanshell,在面试时被问到Jmeter相关问题时也只会最基本的知道怎么建线程组,创建http请求,参数化了解一些,后置处理器也只用过正则表达式、查看结果树等等。涉及怎么调试、查看日志、函数、脚本语言十有八九是回答不出来的,这里基本组件会讲的少一点,主要是讲我实际做项目时会用到的一些知识点,beanshell会涉及较多。

        新增一个beanshell sampler,

按如下第一种方法${}来引用,打开右上角日志,执行。查看日志中报错信息,因为log.info只能打印字符串,而在引用name时未指定字符串类型

//提取name变量值
//方法1:${}
name1=${name};
log.info(name1);

 修改如下,增加双引号,再执行,可以看到junjun已经打印在下方。

//提取name变量值
//方法1:${}
name1="${name}";
log.info(name1);

 

第二种方法,使用vars.get()方法,括号里直接填写变量名,可以看到报错信息Undefined argument: name,意思是name这个参数么有定义,就是识别不了这个参数,原因是vars.get在获取变量时也需要打双引号

//方法2:vars
name2=vars.get(name);
log.info(name2);

 修改如下,再次执行结果已打印,由于vars.get()获取的变量值为字符串类型,所以在log.info()打印时可以直接输出了。

//方法2:vars
name2=vars.get("name");
log.info(name2);

2. 获取了变量后,如果要执行过程中需要修改变量后引用怎么做呢?新建一个2,输入如下再执行,又看到了熟悉的错误,分析下,name3做了一个字符串连接打印输出,再将name3的值存入一个新的变量name4并打印,报错的原因是vars.put()中指定新的变量时必须打双引号,字符串类型

name2=vars.get("name");
log.info(name2);name3=name2+"001";
log.info(name3);
//将name3变量的值存入name4变量
vars.put(name4,name3);
log.info(vars.get("name4"));

 修改

name2=vars.get("name");
log.info(name2);name3=name2+"001";
log.info(name3);
//将name3变量的值存入name4变量
vars.put("name4",name3);
log.info(vars.get("name4"));

总结下本文主要讲的就是2点

1.在beashell中引用变量时可以用${} 也可以用vars.get(String key),需要注意的是双引号使用,获取的数据类型,本篇例子都是字符串类型

2.在beashell中设置新变量时可以用vars.put(String key,String value)

-------------------------------------------------------------------------------

如果觉得我的文章对您有用,请收藏+关注,您的支持是我坚持的动力!

        


http://chatgpt.dhexx.cn/article/F3psKXbk.shtml

相关文章

eslint 配置no-unused-vars规则,TypeScript接口抛出“ no-unused-vars”报错

1.项目使用了typescript,并在.eslintrc.js中使用该配置,type类型接口形参检测报错 no-unused-vars: 检测未使用的变量,函数和函数的参数 type类型接口如下: 报错如下: 2.解决 将 “no-unused-vars” 替换成 “typesc…

mmdetection报错 TypeError: vars() argument must have __dict__ attribute

下载官方代码,安装好环境后第一个demo就报错 报错1、error: the following arguments are required: img, config, checkpoint 添加-- 报错2、manager_pyplot_show vars(manager_class).get("pyplot_show")TypeError: vars() argument must have __dict_…

Pycharm使用matplotlib报错:TypeError: vars() argument must have __dict__ attribute 解决方法

Pycharm使用matplotlib绘图时报错 问题描述 TypeError: vars() argument must have __dict__ attribute源程序: # -*- encoding: utf-8 -*-File : MaLearnTest01_1.py Time : 2023/03/03 09:39:05 Author : seveN1foR Version : 1.0 Contact : s…

JMeter常用内置对象:vars、ctx、prev

在前文 Beanshell Sampler 与 Beanshell 断言 中,初步阐述了JMeter beanshell的使用,接下来归集整理了JMeter beanshell 中常用的内置对象及其使用。 注:示例使用JMeter版本为5.1 1 vars 如 API 文档 所言,这是定义变量的类&am…

jmeter内置变量 vars 和props使用详解

vars和props都是jmeter的内置变量,且本质都是Map类型 用python语言来理解的话,就是字典格式 最主要两点的区别: vars 只能在当前线程组内使用,props 可以跨线程组使用 vars 只能保持String 或者Objec, props 是 Hash…

Ansible中vars(变量)定义

1、变量使用的原因 playbook的编写是使用yml的语法,虽然该语法规则较为简单,但是,同其他语法相同该语法也有变量、循环等机制的使用。变量的使用就是为了提高我们所写剧本的复用性(当某个参数更改时,直接更改变量的赋…

vue3解决no-unused-vars报错

vue3解决no-unused-vars 前言添加配置 前言 在上一节,针对 vue3配置了ESLint,此时,App.vue 和 HelloWorld.vue 报了一个 no-unused-vars 的错误。 添加配置 vue3 是尤大写的,参考下尤大的配置:.eslintrc.js {no-u…

Jmeter内置变量vars和props

在使用jmeter作接口测试时,有些参数并不是明文直接传递的,须编码或加密后传输。此时可以使用BeanShell取样器、BeanShell前置和后置处理器等对参数进行加工处理。 vars和props都是jmeter的内置变量,不必先定义,可以直接使用 二者…

Jmeter 的 vars 和 props 用法

Jmeter 的 JSR223 控件是 代替 BeanShell 的新一代脚本控件,支持多种脚本语言,尤其是其中的 Groovy,更是重点推荐使用的脚本语言,本文研究其中的 vars 和 props 两种对象的用法。 props 和 vars 主要有两点区别: vars…

optistruct中的DRESP2响应设置

1.先编写自己的函数公式 函数名后面的括号中要有式中包含的变量 2.定义响应,类型选择为function,dequation选择刚才设置的函数 点击edit,输入函数表达式中变量对应的响应个数,并分别选择对应哪个响应 返回,点击cr…

结构优化设计with OPtiStruct

上手OptiStruct做结构优化设计,借助该软件强大的优化运算功能,已经成为行业的主流结构优化工具。因此,决定整理一下简要的操作步骤,以备后继之需。 我目前使用的是Hyper13.0版本。 首先是通过hypermesh进行网格划分,其…

大学生方程式赛车借助Altair OptiStruct 实现轻量化和燃料效率提升

项目介绍 每年一届的大学生方程式汽车大赛由英国机械工程师学会 (IMechE) 在英国一级方程式银石赛道举办。来自世界 38 个国家/地区的 178 支报名队伍将在 2014年展开激烈的角逐。想要获得胜利,各队需要展现出他们在技术、工程、设计和制造方面的高超技艺。他们还要…

Hypermesh案例学习笔记

根据我要自学网Hypermesh2017教程,1-10~1-13课程学习笔记 面板介绍 直接放教程里的图了 模型静力分析 模型导入与简化 尽量使用板壳单元,因此抽取模型中面: 点一下模型,点extract就可以得到中面的部件集 为了使网格均匀&am…

HyperMesh有限元分析报错集锦

1. 用hypermesh中的OptiStruct来进行有限元静力学分析,出现一个错误,错误代号61 Error 61: No elements found in input data 解决办法:如果你已经设置好材料、属性,并且为单元赋予了属性,定义了载荷步,在…

hyperstudy联合matlab,在Hyperworks中使用HyperStudy进行多学科优化研究 | 坐倚北风

本文介绍使用Hyperworks中的HyperStudy进行多学科尺寸优化的方法。所使用模型为Hyperworks帮助文档tutorials\hst\HS-4210中的plate1. tpl和plate2. tpl。这两个模型均为使用Optistruct求解器创建的平板有限元分析模型。 该模型由三个部件组成,设计变量为该三个部件对应的板壳…

hypermesh分析流程

对于CAE初学者来说,hypermesh是一个很适合的工具,既可以作为其他分析软件的输入,自带的求解器也能取得很精确的结果,本文是作者的一些实用心得,全是干货。学习一个软件时,软件的操作可以慢慢摸索&#xff0…

Cuda编程-04 计算单元结构

Tesla架构计算单元 如下图,为Tesla架构芯片构造图: 其中需要重点关注的部件为:流多处理器(Stream Multiprocessor,SM),流处理器(Streaming Processor,SP)。在该GPU中,最核心的执行单元为SP&…

【有限元分析】焊缝疲劳分析-热点应力插值法-hypermesh+ncode

一、焊缝疲劳分析整体流程: (对于需要调整壁厚的模型,可以通过导入已经修改后的模型,通过project命令将网格拉伸至surf即可,相比重新画简单) 1、建立CDB模型,验算极限强度 2、建立六个自由度…

python计算复合材料层合板ABD刚度矩阵、预测层合板强度

鄙人不才,在学校的时候没有学python,复合材料力学也是一知半解,后来工作的时候遇到了需要计算复合材料层合板ABD刚度矩阵的内容,然后恰好在学习python,于是花时间编写了下预测这方面的内容,然后后期还编写了…

基于Hypermesh、Nastran、Abaqus、LS_Dyna和Femfat的电池包仿真分析

基于Hypermesh、Nastran、Abaqus、LS_Dyna和Femfat的电池包仿真分析 动力电池作为新能源车动力系统的重要组成部分,电池包作为电池的支撑载体,起到保护电池组正常工作的作用,其结构安全性不容忽视。 本套课程采用Hypermesh、Optistruct、Nastran、Abaqus、LS_Dyna和Femfat软件对…