性能测试工具 Jmeter 引入 jar 包踩过的坑

目录

前言:

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,再次运行脚本问题解决

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

猜你喜欢

转载自blog.csdn.net/Free355/article/details/131916366