2016-09-14 2 views
0

нужно протестировать приложение, но я получаю ниже ошибки:Jmeter пример кода

ERROR - jmeter.samplers.SampleResult: setEndTime must be called after setStartTime java.lang.Throwable: Invalid call sequence 
    at org.apache.jmeter.samplers.SampleResult.setEndTime(SampleResult.java:1023) 
    at org.apache.jmeter.samplers.SampleResult.sampleEnd(SampleResult.java:1062) 
    at infy.dop.rsi.jmeter.EmoDb.runTest(EmoDb.java:94) 
    at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:191) 
    at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434) 
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261) 
    at java.lang.Thread.run(Thread.java:745) 

Он мой код:

public class EmoDb extends AbstractJavaSamplerClient { 
    private static final Logger LOGGER = LoggerFactory.getLogger(EmoDb.class); 
    private Properties prop = new Properties(); 
    public Arguments getDefaultParameters() { 
     Arguments defaultParameters = new Arguments(); 
     return defaultParameters; 
    } 
    public void setupTest(JavaSamplerContext context) { 
     for (Iterator<String> it = context.getParameterNamesIterator(); it.hasNext();) { 
      String paramName = it.next(); 
      prop.put(paramName, context.getParameter(paramName)); 
     } 
    } 
    @Override 
    public SampleResult runTest(JavaSamplerContext arg0) { 
     SampleResult result = new SampleResult(); 
     try { 
      URL url=new URL(" "); 
      HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
      connection.setRequestMethod("GET"); 
      connection.connect(); 
      result.sampleStart(); 
      int code = connection.getResponseCode(); 
      if (code==200) 
      { 
       System.out.println("OK"); 
       result.sampleEnd(); 
      } 
      else { 
       throw new Exception("status is not=200"); 
      } 

     } catch (Exception e) { 
      LOGGER.error(ExceptionUtils.getStackTrace(e)); 
      result.sampleEnd(); 
      result.setSuccessful(false); 
      result.setResponseMessage("Exception: " + e); 
      result.setSampleLabel(e.getMessage()); 
      return result; 
     } 
     result.setSuccessful(true); 
     result.setResponseMessage("Successfully completed"); 
     result.setResponseOK(); 
     return result; 
    } 

} 
+0

Что находится в 'SampleResult.java: 1023' –

ответ

0

Если у вас есть какие-либо исключения в блоке:

URL url=new URL(" "); 
    HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
    connection.setRequestMethod("GET"); 
    connection.connect(); 

Вызывается блок catch. Там вы звоните

result.sampleEnd(); 

Но

result.sampleStart(); 

не называется, из-за исключения.

+0

. Я сильно удаляю url в этом коде. Я использую фактически в своей системе, так как я не должен выставлять URL-адрес, чтобы я это сделал. – user3619264

+0

@ user3619264 Не печатайте его. добавьте псевдо-URL, такой как http://example.com – Jens

+0

@ user3619264, вы уверены, что не получите никакого исключения до 'result.sampleStart();' – Jens

Смежные вопросы