1
votes

I am trying to calculate SSE traffic latency in a simple load test using the following JSR223 Sampler:

EventHandler eventHandler = eventText -> {
  count++;
  // get the time from the server
  def result = eventText.substring(eventText.indexOf("data='") + 6, eventText.indexOf("', event")).trim() as Long;  
  def currenTime = System.currentTimeMillis();
  def diff = currenTime - result;
  list.add (diff);
  resp = resp + "Time from server:" + result + ", JMeter time:" + currenTime + ", diff:"+ diff +"\n";  
};

SSEClient sseClient = SSEClient.builder().url(pURL).eventHandler(eventHandler).build();
      
sseClient.start();

sleep(SLEEP_TIME);

sseClient.shutdown();

The time from the server (NodeJS -JavaScript) is Date.now() and the time on JMeter is System.currentTimeMillis()

Both Server and JMeter are on the same computer.

It seems that the time methods are not aligned as I can see that in some cases the JMeter time is earlier than the server time:

enter image description here

So I cannot trust the results...

Any other methods I should use on the JavaScript side or the JMeter side?