目录
前言:
Jmeter 中调用自己编写 jar 中的类出错
错误日志:
出现以上错误的原因:
解决方法:
前言:
JMeter 是一种开源的性能测试工具,可以帮助我们快速地进行网站、应用程序等的性能测试和压力测试。在使用 JMeter 进行测试时,我们需要引入相应的 jar 包来支持 JMeter 的功能。然而,在引入 jar 包的过程中,我们可能会遇到一些问题和坑。
Jmeter 中调用自己编写 jar 中的类出错
自己编写 Java 类打 jar 包,并将 jar 包放置到 Jmeter/lib/ext/目录下,启动 Jmeter,并在 Jmeter 中编写脚本调用 jar 包中的类,执行脚本出现以下问题:
错误日志:
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2017/01/12 17:29:17 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2017/01/12 17:29:17 INFO - jmeter.testelement.TestPlan: add D:\Tool\Jmeter\apache-jmeter-3.0\lib\ext\uaastool.jar to classpath
2017/01/12 17:29:17 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : getChallenge
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group getChallenge.
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2017/01/12 17:29:17 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2017/01/12 17:29:17 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2017/01/12 17:29:17 INFO - jmeter.threads.JMeterThread: Thread started: getChallenge 1-1
2017/01/12 17:29:17 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: `` String challenge = vars.get("challenge"); String response = com.uaastool.UaasTo . . . '' : Typed variable declaration : Class: com.uaastool.UaasTool.UaasTool not found in namespace
2017/01/12 17:29:17 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: `` String challenge = vars.get("challenge"); String response = com.uaastool.UaasTo . . . '' : Typed variable declaration : Class: com.uaastool.UaasTool.UaasTool not found in namespace
2017/01/12 17:29:17 INFO - jmeter.threads.JMeterThread: Thread is done: getChallenge 1-1
2017/01/12 17:29:17 INFO - jmeter.threads.JMeterThread: Thread finished: getChallenge 1-1
2017/01/12 17:29:17 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2017/01/12 17:29:17 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: Running the test!
2017/01/12 17:30:09 INFO - jmeter.samplers.SampleEvent: List of sample_variables: []
2017/01/12 17:30:09 INFO - jmeter.testelement.TestPlan: add D:\Tool\Jmeter\apache-jmeter-3.0\lib\ext\uaastool.jar to classpath
2017/01/12 17:30:09 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,*local*)
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : getChallenge
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group getChallenge.
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error
2017/01/12 17:30:09 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false
2017/01/12 17:30:09 INFO - jmeter.threads.ThreadGroup: Started thread group number 1
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started
2017/01/12 17:30:09 INFO - jmeter.threads.JMeterThread: Thread started: getChallenge 1-1
2017/01/12 17:30:09 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: `` String challenge = vars.get("challenge"); String response = com.uaastool.UaasTo . . . '' : Typed variable declaration : Class: com.uaastool.UaasTool.UaasTool not found in namespace
2017/01/12 17:30:09 WARN - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: `` String challenge = vars.get("challenge"); String response = com.uaastool.UaasTo . . . '' : Typed variable declaration : Class: com.uaastool.UaasTool.UaasTool not found in namespace
2017/01/12 17:30:09 INFO - jmeter.threads.JMeterThread: Thread is done: getChallenge 1-1
2017/01/12 17:30:09 INFO - jmeter.threads.JMeterThread: Thread finished: getChallenge 1-1
2017/01/12 17:30:09 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test
2017/01/12 17:30:09 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,*local*)
出现以上错误的原因:
- 自己代码本身存在问题
- Jmeter 中引入包名及类名不正确
- 自己代码中引用的第三方 jar 包直接打入 jar 包
- 自己代码中引用的第三方 jar 包导入后,与 Jmeter 中已有 jar 包冲突。
解决方法:
- 首先确保自己的代码在开发工具中运行正常
- 其次检查 Jmeter 中是否进行正确的引入包名及类名
- 如脚本中引入正确,检查自己打的 jar 包
- 将自己的代码打包时不要将引用的其他第三方包打入 jar 包
- 将自己代码引用的第三方包放入 Jmeter/lib/ext/目录下(需要检查导入 jar 包是否与 Jmeter 目前已有的 jar 包存冲突,需保证不存在 jar 包冲突)
- 将自己代码打的 jar 包放入 Jmeter/lib/ext/目录下
- 重启 Jmeter,再次运行脚本问题解决
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片