2016-09-14 1 views
0

Nécessité de tester l'application mais je reçois ci-dessous erreur:Jmeter exemple de code

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) 

Il est mon code:

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

Qu'est-ce que 'SampleResult.java: 1023' –

Répondre

0

Si vous avez une exception dans le bloc:

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

Le catch-block est appelé. Il vous appelez

result.sampleEnd(); 

Mais

result.sampleStart(); 

n'est pas appelé, en raison de l'exception.

+0

. J'ai supprimé intensément url dans ce code.J'utilise réellement dans mon système puisque je ne suis pas censé exposer l'URL, donc je l'ai fait. – user3619264

+0

@ user3619264 Ne pas le masquer en blanc. ajouter une pseudo URL comme http://example.com – Jens

+0

@ user3619264 vous êtes sûr que vous n'obtiendrez aucune exception avant 'result.sampleStart();' – Jens