JMeter 3.3:无法从文件类型变量声明中读取变量:在命名空间中找不到类:Wini

JMeter 3.3:无法从文件类型变量声明中读取变量:在命名空间中找不到类:Wini,jmeter,beanshell,Jmeter,Beanshell,让我介绍一下背景情况 如您所见,使用以下值定义了指向两个不同*.ini文件的两个变量: ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}Settings.ini 对于变量:设置文件 使用分步调试程序,我可以确认文件的路径是正确的。现在,有趣的部分。 我有几个从文件中读取值的“用户

让我介绍一下背景情况

如您所见,使用以下值定义了指向两个不同*.ini文件的两个变量:

${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}${__BeanShell(File.separator,)}Settings.ini
对于变量:设置文件

使用分步调试程序,我可以确认文件的路径是正确的。现在,有趣的部分。 我有几个从文件中读取值的“用户定义变量”

JMeter无法读取此变量的值,并为每个变量抛出以下错误:

使用(例如):用于变量accountNumber

Settings.ini如下所示(以accountNumber为例):

关于如何消除这个错误有什么想法吗?如果文件路径正确,我不理解为什么我不能读取每个变量的值

PS:我在“查看结果树”中没有得到任何结果。所有测试都是使用文件变量的简单HTTP请求。

这是由于缺少,您需要下载.jar,将其放在某个位置,然后重新启动JMeter以获取.jar


还要注意的是,对于JMeter中的任何形式的脚本编写。所以考虑下一个机会去Groovy。更多信息:

这是由于缺少,您需要下载.jar,将其放在某个位置,然后重新启动JMeter以获取.jar



还要注意的是,对于JMeter中的任何形式的脚本编写。所以考虑下一个机会去Groovy。更多信息:

谢谢!的确,这就是问题所在。谢谢!事实上,这就是问题所在。
2018-02-20 15:15:46,750 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``{import org.ini4j.*; Wini ini = new Wini(new File(vars.get("SettingsFile"))); St . . . '' : Typed variable declaration : Class: Wini not found in namespace
2018-02-20 15:15:46,751 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: ``{import org.ini4j.*; Wini ini = new Wini(new File(vars.get("SettingsFile"))); St . . . '' : Typed variable declaration : Class: Wini not found in namespace
    at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:183) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:189) ~[ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.functions.BeanShell.execute(BeanShell.java:100) [ApacheJMeter_functions.jar:3.3 r1808647]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:112) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue(FunctionProperty.java:92) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.testelement.AbstractTestElement.getPropertyAsString(AbstractTestElement.java:281) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.config.Argument.getValue(Argument.java:146) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.config.Arguments.getArgumentsAsMap(Arguments.java:94) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.engine.PreCompiler.createArgumentsMap(PreCompiler.java:114) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:101) [ApacheJMeter_core.jar:3.3 r1808647]
    at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:996) [jorphan.jar:3.3 r1808647]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:978) [jorphan.jar:3.3 r1808647]
    at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:369) [ApacheJMeter_core.jar:3.3 r1808647]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_151]
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
    at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166) ~[ApacheJMeter_core.jar:3.3 r1808647]
    ... 14 more
Caused by: bsh.EvalError: Sourced file: inline evaluation of: ``{import org.ini4j.*; Wini ini = new Wini(new File(vars.get("SettingsFile"))); St . . . '' : Typed variable declaration : Class: Wini not found in namespace
    at bsh.BSHAmbiguousName.toClass(BSHAmbiguousName.java:74) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.BSHType.getType(BSHType.java:154) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:75) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.BSHBlock.evalBlock(BSHBlock.java:130) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.BSHBlock.eval(BSHBlock.java:80) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.BSHBlock.eval(BSHBlock.java:46) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.Interpreter.eval(Interpreter.java:645) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.Interpreter.eval(Interpreter.java:739) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at bsh.Interpreter.eval(Interpreter.java:728) ~[bsh-2.0b5.jar:2.0b5 2005-06-12 04:50:41]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
    at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166) ~[ApacheJMeter_core.jar:3.3 r1808647]
    ... 14 more
[General]
    ;account number used for testing
    accountNumber = 989899773
    ;BadAccountNumber = 12314500
    BadAccountNumber = 989899773