Сбой JMeter при импорте бобов - PullRequest
0 голосов
/ 29 июня 2018

Я использовал препроцессор Beanshell для добавления пользовательских файлов cookie, созданных с помощью javascript. Хотя раньше он работал идеально, с той же строкой кодов я начал получать ошибки в моем препроцессоре.

ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache. . . . '' : TargetError 


WARN  - jmeter.modifiers.BeanShellPreProcessor: Problem in BeanShell script org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval    Sourced file: inline evaluation of: ``import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache. . . . '' : TargetError 

Строки кода соответствуют предложению, приведенному в https://javaworks.wordpress.com/2011/08/05/setting-cookie-in-jmeter/

import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;

try{
CookieManager manager = sampler.getCookieManager();
Cookie cookie1 = new Cookie("cookie1","value","localhost","/",false,0);
manager.add(cookie1);

}catch (Throwable ex) {
log.error("Error in Beanshell", ex);
throw ex;
}

Я наткнулся на несколько сообщений в stackoverflow, связанных с beanshell. Однако никто не отвечает, почему импорт в бобовую оболочку терпит неудачу. Журнал ошибок:

018/07/02 16:24:47 ERROR - jmeter.util.BeanShellTestElement: Error in Beanshell java.lang.NullPointerException
at org.apache.jmeter.protocol.http.control.CookieManager.match(CookieManager.java:386)
at org.apache.jmeter.protocol.http.control.CookieManager.removeMatchingCookies(CookieManager.java:402)
at org.apache.jmeter.protocol.http.control.CookieManager.add(CookieManager.java:307)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at bsh.Reflect.invokeMethod(Reflect.java:134)
at bsh.Reflect.invokeObjectMethod(Reflect.java:80)
at bsh.Name.invokeMethod(Name.java:858)
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.BSHBlock.evalBlock(BSHBlock.java:130)
at bsh.BSHBlock.eval(BSHBlock.java:80)
at bsh.BSHBlock.eval(BSHBlock.java:46)
at bsh.BSHTryStatement.eval(BSHTryStatement.java:86)
at bsh.Interpreter.eval(Interpreter.java:645)
at bsh.Interpreter.eval(Interpreter.java:739)
at bsh.Interpreter.eval(Interpreter.java:728)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.jmeter.util.BeanShellInterpreter.bshInvoke(BeanShellInterpreter.java:163)
at org.apache.jmeter.util.BeanShellInterpreter.eval(BeanShellInterpreter.java:186)
at org.apache.jmeter.util.BeanShellTestElement.processFileOrScript(BeanShellTestElement.java:151)
at org.apache.jmeter.modifiers.BeanShellPreProcessor.process(BeanShellPreProcessor.java:59)
at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:786)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:445)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:410)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:241)
at java.lang.Thread.run(Unknown Source)

1 Ответ

0 голосов
/ 02 июля 2018
  1. Прежде всего, нет необходимости в сценариях, вы можете добавить пользовательские куки, используя HTTP Cookie Manager GUI

    JMeter add cookie via GUI

  2. Если вы все еще хотите написать код, попробуйте обновить до последней версии JMeter

  3. Попробуйте поиграть с разными значениями «Policy» в HTTP Cookie Manager, т.е. попробуйте использовать standard или netscape
  4. Попробуйте добавить следующую строку в user.properties file:

    CookieManager.check.cookies=false
    

    Требуется перезапуск JMeter, чтобы забрать объект

  5. В целом рекомендуется переключиться на тестовые элементы JSR223 и язык Groovy, начиная с JMeter 3.1 , поэтому рассмотрите возможность перехода на JSR223 PreProcessor .
...