zoukankan      html  css  js  c++  java
  • Jmeter 接口自动化执行报错 无法找到类或者类的方法

    写好的自动化测试脚本在PC以及mac book 都执行正确,但是放到linux集成环境时就一直报错,报错类似如下

       [jmeter] // Debug: eval: nameSpace = NameSpace: global (bsh.NameSpace@286291f6)
       [jmeter] // Debug: Time to initialize interpreter: 1
       [jmeter] // Debug: getResolvedMethod cache HIT: class org.apache.jmeter.threads.JMeterVariables - public java.lang.Object org.apache.jmeter.threads.JMeterVariables.getObject(java.lang.String)
       [jmeter] // Debug: Invoking method (entry): public java.lang.Object org.apache.jmeter.threads.JMeterVariables.getObject(java.lang.String) with args:
       [jmeter] // Debug: args[0] = productToursObj type = class java.lang.String
       [jmeter] // Debug: Invoking method (after massaging values): public java.lang.Object org.apache.jmeter.threads.JMeterVariables.getObject(java.lang.String) with args:
       [jmeter] // Debug: args[0] = productToursObj type = class java.lang.String
       [jmeter] // Debug: getResolvedMethod cache HIT: class org.apache.jmeter.protocol.http.sampler.HTTPSampleResult - public java.lang.String org.apache.jmeter.samplers.SampleResult.getResponseDataAsString()
       [jmeter] // Debug: Invoking method (entry): public java.lang.String org.apache.jmeter.samplers.SampleResult.getResponseDataAsString() with args:
       [jmeter] // Debug: Invoking method (after massaging values): public java.lang.String org.apache.jmeter.samplers.SampleResult.getResponseDataAsString() with args:
       [jmeter] // Debug: getResolvedMethod cache HIT: class com.tuniu.jmeter.view.tours.ProductTours - public com.tuniu.jmeter.view.tours.PageSaveOrder com.tuniu.jmeter.view.tours.ProductTours.getPageSaveOrder()
       [jmeter] // Debug: Invoking method (entry): public com.tuniu.jmeter.view.tours.PageSaveOrder com.tuniu.jmeter.view.tours.ProductTours.getPageSaveOrder() with args:
       [jmeter] // Debug: Invoking method (after massaging values): public com.tuniu.jmeter.view.tours.PageSaveOrder com.tuniu.jmeter.view.tours.ProductTours.getPageSaveOrder() with args:
       [jmeter] // Debug: getResolvedMethod cache MISS: class com.tuniu.jmeter.view.tours.PageSaveOrder - setOccupyRespData
       [jmeter] // Debug: Searching for method: setOccupyRespData( java.lang.String ) in 'com.tuniu.jmeter.view.tours.PageSaveOrder'
       [jmeter] // Debug: Looking for most specific method: setOccupyRespData
       [jmeter] Error in method invocation: Method setOccupyRespData( java.lang.String ) not found in class'com.tuniu.jmeter.view.tours.PageSaveOrder' : at Line: 14 : in file: inline evaluation of: ``import com.tuniu.jmeter.common.DataUtil; import com.tuniu.jmeter.common.HttpUtil . . . '' : .setOccupyRespData ( responseData ) 
       [jmeter] 
       [jmeter] 	at bsh.BSHPrimarySuffix.doName(BSHPrimarySuffix.java:179)
       [jmeter] 	at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:120)
       [jmeter] 	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)
       [jmeter] 	at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
       [jmeter] 	at bsh.Interpreter.eval(Interpreter.java:645)
       [jmeter] 	at bsh.Interpreter.eval(Interpreter.java:739)
       [jmeter] 	at bsh.Interpreter.eval(Interpreter.java:728)
       [jmeter] 	at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
       [jmeter] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       [jmeter] 	at java.lang.reflect.Method.invoke(Method.java:498)
       [jmeter] 	at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:166)
       [jmeter] 	at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:189)
       [jmeter] 	at org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151)
       [jmeter] 	at org.apache.jmeter.extractor.BeanShellPostProcessor.process(BeanShellPostProcessor.java:64)
       [jmeter] 	at org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:827)
       [jmeter] 	at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:517)
       [jmeter] 	at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:425)
       [jmeter] 	at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254)
       [jmeter] 	at java.lang.Thread.run(Thread.java:748)
    

     排除很久,分别测试了如下定位原因

    1:机器设置的默认语言问题

    2:jmx文件换行是否存在\r\n的情况,即不符合linux文件换行符的情况

    3:jmeter版本不匹配

    4:jre8大版本相同,但是小版本不同时,存在某些bug

    5:。。。。

    尝试了N种可能存在的问题,添加了N多的日志打印,定位了一个礼拜

    终于柳暗花明又一村

    发现有个配置项配置到了另外一个Jenkins项目的插件目录中去了

    解决办法如下:

    配置文件:user.properties

    修改user.classpath配置项到我们项目的目录即可,如我这边的配置user.classpath=/root/jenkins/workspace/Automation_Interface_Pre_AllTestCase/plugin

    总结:

    做事情还是要细心,本质上是一个小问题,但是却定位了将近一个礼拜,之前也前前后后检查过好几次这个配置项,仍然没发现配置错了目录,实在不应该,还一直怀疑自己的代码是不是有不兼容的错误,奔溃ing,仅此记录下

    作者:MonLey_Lu
    微信公众号:XmonLey
    可以关注微信,然后到微信群交流,现在微信群基本潜水,偶尔闲聊工作招聘之类,有具体想交流的单聊微信吧
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    git 码云
    keras训练cnn模型时loss为nan
    将矩阵补齐0
    将dataframe分割为训练集和测试集两部分
    另存了一次网页之后其它word打开格式都变了
    python 判断字符串是否为(或包含)IP地址
    为多维数组添加一列以及reshape用法注意
    memory error python报错
    列表转换为三维矩阵
    LaTeX参考文献出现问号
  • 原文地址:https://www.cnblogs.com/monley/p/7692064.html
Copyright © 2011-2022 走看看