Wie formatiere ich {{$ timestamp}} als MM / TT / JJJJ in Postman?

75

In Postman fügt die dynamische Variable {{$timestamp}} den aktuellen Unix-Zeitstempel in eine Anforderung ein. (Dargestellt als die Anzahl der Sekunden seit dem 1. Januar 1970)

"currentTime": "1510934784"

Die API, mit der ich arbeite, erwartet jedoch Zeitstempel, die als formatiert sind MM/DD/YYYY.

"currentDate": "11/17/2017"

Wie füge ich das aktuelle Datum (formatiert als MM/DD/YYYY) in meine Anfrage bei Postman ein?

Stevoisiak
quelle
Sie können JS-Code in die Registerkarte "Skript vor der Anforderung" schreiben, um dies zu tun
Chakradhar Kasturi
@chakri Kannst du das mit einer Antwort genauer erklären?
Stevoisiak
1
Fügen Sie den folgenden Code in die Registerkarte für das Skript vor der Anfrage ein postman.setEnvironmentVariable("$$timestamp",new Date()); und verwenden Sie in Ihrer Anfrage einfach{{$$timestamp}}
chakradhar kasturi

Antworten:

117

Sie können moment.js mit Postman verwenden, um das Zeitstempelformat zu erhalten.

Sie können dies dem Pre-Request-Skript hinzufügen:

const moment = require('moment');
pm.globals.set("today", moment().format("MM/DD/YYYY"));

Dann beziehen Sie sich, {{today}}wo immer Sie es brauchen.

Wenn Sie dies zu hinzufügen Collection Level Pre-request Script, wird es für jede Anforderung in der ausgeführt Collection. Anstatt es allen Anforderungen einzeln hinzufügen zu müssen .

Für weitere Informationen zur Verwendung momentin Postman habe ich einen kurzen Blog-Beitrag geschrieben: https://dannydainton.com/2018/05/21/hold-on-wait-a-moment/

Danny Dainton
quelle
Dies kann nicht wahr sein. Postbote unterstützt
derzeit das
Hooo sehr nett. Dies wird einem Los mit Pre- und Post-Skripten helfen. Vielen Dank
Pablo Palacios
5
Um Namenskonflikte zu vermeiden, möchten Sie möglicherweise einen anderen Namen wie {{today}}oder verwenden {{datestamp}}.
Stevoisiak
Sicher, es war nur ein Beispiel dafür, wie man es benutzen kann. Der Variablenname muss offensichtlich Ihren eigenen Bedürfnissen / Ihrem Kontext entsprechen oder was Sie tun. Kopieren Sie einfach mein Beispiel und fügen Sie es in Ihre Lösung ein ... was niemals gut ist. :)
Danny Dainton
42

Verwenden Sie die Registerkarte Skript vor der Anforderung, um Javascript zu schreiben und das Datum in einer Variablen abzurufen und zu speichern:

const dateNow= new Date();
pm.environment.set('currentDate', dateNow.toISOString());

und verwenden Sie es dann im Anforderungshauptteil wie folgt:

"currentDate": "{{currentDate}}"
Payam Khaninejad
quelle
4
Es muss eine Möglichkeit geben, ein Datum zu ermitteln, ohne für jede Anforderung ein Voranforderungsskript zu ändern. Das ist verrückt.
Triynko
3
Es gibt globale Variablen, die Sie einmal festlegen und an anderen Stellen lesen können.
Morgan Kenyon
2
Legen Sie die Anforderungen in einen Ordner oder eine Sammlung, dann können Sie diese Art von Variablen einmal im
Vorskript
Siehe meine Antwort über dieser. Es zeigt Ihnen, wie Sie Vorskripte für eine Sammlung festlegen, damit Sie sie nicht in jede einzelne Anforderung einfügen müssen.
DeadlyChambers
Postman unterstützt jetzt {{$ isoTimestamp}}, Ausgabe: "2020-09-16T18: 11: 41.397Z"
Lance
8

Meine Lösung ähnelt der von Payam, außer dass ich sie verwende

const dateNow = new Date();
postman.setGlobalVariable("currentDate", dateNow.toLocaleDateString());

Wenn Sie die "3 Punkte" im Ordner drücken und auf "Bearbeiten" klicken

Geben Sie hier die Bildbeschreibung ein

Legen Sie dann für alle Aufrufe Pre-Request-Skripte fest, damit die globale Variable immer verfügbar ist.

Geben Sie hier die Bildbeschreibung ein

DeadlyChambers
quelle
Sie könnten auch verwenden - pm.globals.set("currentDate", new Date().toLocaleDateString());Würde Ihnen dies nicht einen Zeitstempel im Format "TT / MM / JJJ" anstelle von "MM / TT / JJJJ" geben?
Danny Dainton
5

Jedes zukünftige Datum in JavaScript (Postboten-Test verwendet JavaScript) kann wie folgt abgerufen werden:

var dateNow = new Date();  
var twoWeeksFutureDate = new Date(dateNow.setDate(dateNow.getDate() + 14)).toISOString();

postman.setEnvironmentVariable("future-date", twoWeeksFutureDate);
Dheeraj
quelle