jmeter beanshell 变量传递
如果写成这样会报错:
${__BeanShell(${__threadNum}*2,ToatlAmount)};
${__BeanShell(${__Random(1,99999,)},DayNum)};
//${__BeanShell(vars.put("BXReason"\,"${__UUID}"))};
${__BeanShell(${__threadNum},BXReason)};
报错信息:
2018-12-20 01:42:30,820 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``StandardJMeterEngine*2;'' : illegal use of undefined variable, class, or 'void' literal
2018-12-20 01:42:30,820 WARN o.a.j.f.BeanShell: Error running BSH script
org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``StandardJMeterEngine*2;'' : illegal use of undefined variable, class, or 'void' literal
at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:183) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:189) ~[ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:100) [ApacheJMeter_functions.jar:5.0 r1840935]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:136) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:111) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:92) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.testbeans.TestBeanHelper.unwrapProperty(TestBeanHelper.java:128) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.testbeans.TestBeanHelper.prepare(TestBeanHelper.java:83) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:212) [ApacheJMeter_core.jar:5.0 r1840935]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:384) [ApacheJMeter_core.jar:5.0 r1840935]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_172]
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_172]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_172]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_172]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_172]
at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166) ~[ApacheJMeter_core.jar:5.0 r1840935]
... 10 more
import java.text.DecimalFormat;
String a0=props.get("newtoken");
vars.put("token2",a0);
String a0=props.get("newcompanyId");
vars.put("companyId2",a0);
String a2=props.get("newuserId");
vars.put("userId2",a2);
String a3=props.get("newuserName");
vars.put("userName2",a3);
String a4=props.get("neworgCode");
vars.put("orgCode2",a4);
String a5=props.get("newcostCenterName");
vars.put("costCenterName2",a5);
String a6=props.get("newprofitCenterName");
vars.put("profitCenterName2",a6);
String a7=props.get("newcostCenterID");
vars.put("costCenterID2",a7);
String ToatlAmount="${__BeanShell(${__threadNum}*2,)}";
vars.put("ToatlAmount",ToatlAmount);
String DayNum="${__Random(1,99999,)}";
vars.put("DayNum",DayNum);
String BXReason="${__threadNum}";
vars.put("BXReason",BXReason);

4、Bean Shell常用内置变量
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
log:用来记录日志文件,写入到jmeber.log文件,使用方法:log.info(“This is log info!”);
ctx(JmeterContext)通过它来访问context,使用方法可参考:org.apache.jmeter.threads.JMeterContext。
vars - (JMeterVariables):操作jmeter变量,提供读取/写入访问变量的方法。这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
c) vars.putObject("OBJ1",new Object());
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
props - (JMeterProperties - class Java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。
a) props.get("START.HMS"); 注:START.HMS为属性名,在文件jmeter.properties中定义
b) props.put("PROP1","1234");
prev - (SampleResult):获取前面的sample采样的结果,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
sampler - (Sampler):gives access to the current sampler 访问当前采样
BeanShell PostProcessor脚本:
String newtoken=bsh.args[0];
print(newtoken);
${__setProperty(newtoken,${token},)};
String newcompanyId=bsh.args[1];
print(newcompanyId);
${__setProperty(newcompanyId,${companyId},)};
String newuserId=bsh.args[2];
print(newuserId);
${__setProperty(newuserId,${userId},)};
String newuserName=bsh.args[3];
print(newuserName);
${__setProperty(newuserName,${userName},)};
String neworgCode=bsh.args[4];
print(neworgCode);
${__setProperty(neworgCode,${orgCode},)};
String newcostCenterName=bsh.args[5];
print(newcostCenterName);
${__setProperty(newcostCenterName,${costCenterName},)};
String newprofitCenterName=bsh.args[6];
print(newprofitCenterName);
${__setProperty(newprofitCenterName,${profitCenterName},)};
String newcostCenterID=bsh.args[7];
print(newcostCenterID);
${__setProperty(newcostCenterID,${costCenterID},)};

jmeter beanshell 变量传递的更多相关文章
- jmeter 之变量传递
最近遇到个问题,一个线程组的变量怎么应用到另一个线程组,试了下,通过提取器设置的变量只能用于当前线程组,不能用于其他线程组,只能试试设置property Parameters,应该还有别的办法这只是其 ...
- jmeter BeanShell实例-----两个变量之间的断言对比
jmeter BeanShell实例-----两个变量之间的断言对比 在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行,总是有人来问怎么写呢.这里写一个简 ...
- jmeter BeanShell实例-----两个变量之间的断言对比(转)
jmeter BeanShell实例-----两个变量之间的断言对比 在jmeter的中,断言没法对两个变量的进行对比后判断,只能使用Bean Shell断言来进行,总是有人来问怎么写呢.这里写一个简 ...
- Jmeter之BeanShell变量使用讲解
一.在测试过程中经常会遇到一些业务逻辑处理需要,单纯的线程设置不能满足,这时候就要使用BeanShell编写一定的脚本 前置处理器:BeanShell PreProcessor,主要接口请求前做一些参 ...
- jmeter BeanShell断言(一)
原文地址https://blog.csdn.net/lijing742180/article/details/81157947 原文地址https://blog.csdn.net/zailushang ...
- JMeter BeanShell示例
翻译:https://blog.trigent.com/jmeter-blog-series-jmeter-beanshell-example 在这个例子中,我们将演示在Apache JMeter中使 ...
- JMeter博客系列:JMeter BeanShell示例
1.简介 Apache JMeter是一个基于Java的开源工具,使您可以在应用程序上执行功能,负载,性能和回归测试.应用程序可以在Web服务器上运行,也可以是独立的.它支持在包含静态和动态资源的客户 ...
- Jmeter Beanshell 编程简介
简介 Jmeter除了提供丰富的组件以外,还提供脚本支持,可通过编写脚本来丰富Jmeter,实现普通组件无法完成的功能.Beanshell是一种轻量级的Java脚本语言,完全符合Java规范,并且内置 ...
- Jmeter beanshell 生成手机号加密签名
首先自己写一个根据手机号生成加密字符串的函数,并且导出为Jar包,函数具体内容省略,网上有很多 将Jar包放到Jmeter lib\ext目录下面,然后在user.properties里面把路径加进去 ...
随机推荐
- Redis 系列(04-2)Redis原理 - 内存回收
目录 Redis 系列(04-2)Redis原理 - 内存回收 Redis 系列目录 1. 过期策略 1.1 定时过期(主动淘汰) 1.2 惰性过期(被动淘汰) 1.3 定期过期 2. 淘汰策略 2. ...
- A - Max Sum Plus Plus (好题&&dp)
A - Max Sum Plus Plus I think you have got an AC in Ignatius.L's "Max Sum" problem. To be ...
- js 中的深拷贝与浅拷贝
在面试中经常会问到js的深拷贝和浅拷贝,也常常让我们手写,下面我们彻底搞懂js的深拷贝与浅拷贝. 在js中 Array 和 Object 这种引用类型的值,当把一个变量赋值给另一个变量时,这个值得副 ...
- .net 开源项目地址
https://github.com/dotnet/corefx 这个是.net core的 开源项目地址 https://github.com/aspnet 这个下面是asp.net core 框架 ...
- ReactNative 遇到的问题汇总
1.react-native 启动项目出现如下报错 解决方法: nvm install v9.0.0 nvm alias default v9.0.0
- springboot配置redis+jedis,支持基础redis,并实现jedis GEO地图功能
Springboot配置redis+jedis,已在项目中测试并成功运行,支持基础redis操作,并通过jedis做了redis GEO地图的java实现,GEO支持存储地理位置信息来实现诸如附近的人 ...
- Spring MVC processing flow
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11484057.html DispatcherServlet receives the request. ...
- Hadoop(一)阿里云hadoop集群配置
集群配置 三台ECS云服务器 配置步骤 1.准备工作 1.1 创建/bigdata目录 mkdir /bigdatacd /bigdatamkdir /app 1.2修改主机名为node01.node ...
- oracle的查询结果按照in条件顺序输出
业务需要,通过lucene查出符合搜索条件的id,然后在详情表里查出这些id的详情 ? 1 SELECT id,QUESTION,QUESTIONCOMMENT FROM "ASKDBA_Q ...
- JavaScript 六种继承方式
title: JS的六种继承方式 date: 2017-06-27 05:55:49 tags: JS categories: 学习 --- 继承是面向对象编程中又一非常重要的概念,JavaScrip ...