2016-10-21 4 views
1

Ich brauche JMeter zu simulieren 28 Tage Aktivität (über die Änderung der Zeitstempel) in weniger als 1 Tag. Es gibt eine Zeitfunktion, aber es sieht nicht so aus, als ob eine andere als die aktuelle Zeit unterstützt. Ich möchte auch nicht die Daten vortäuschen, weil Dinge wie Schaltjahre und welcher Monat es falsch machen.JMeter Zeitraffer

Also, wie kann ich ein Zeitformat als ein Delta der aktuellen Zeit (in Millisekunden von Epoche) erhalten, und/oder was ist der beste Weg, einen 1-Tages-Belastungstest zu laufen, als ob Zeit 28 mal schneller gehen würde?

UPDATE: Danke Dmitri T! Ich war in der Lage Ihre Antwort zu ändern, was ich brauchte (ich habe zu beschränken, welche Stunden Ereignisse auftreten 8.00 bis 05.00 Uhr)

Für diejenigen, die es brauchen, habe ich folgendes in einem JSR223 PreProcessor

timestamp=new Date(); 
 
timestamp.setDate(timestamp.getDate() - Math.floor(Math.random() * (28))); 
 
timestamp.setHours(8,0,0,0); 
 
timestamp.setTime(timestamp.getTime() + Math.floor(Math.random() * (1000*60*60*9))); 
 
vars.put("TIMESTAMP", timestamp.toISOString());

Antwort

2

können Sie simulieren dies mit __time() und __longSum() Funktionen Kombination wie:

  • Jetzt: ${__time(,)} - ich denke, Sie sind bereits bekannt, es
  • jetzt + 28 Tagen: ${__longSum(${__time(,)},2419200000,)} - wo 2419200000 ist

    1000 * 60 * 60 * 24 * 28 
    ^ ^^^ ^
    ms sec min hour day 
    

Wenn Unix-Zeitstempel für die nicht aus irgendeinem Grund spielen Sie verwenden können __javaScript() Funktion, wie sie zu den Menschen lesbaren Format zu konvertieren:

${__javaScript(new Date(${__longSum(${__time(,)},2419200000,)}),)} 

Demo:

Functions time demo

Referenzen:

  1. Functions and Variables
  2. The Function Helper Dialog
  3. How to Use JMeter Functions