So führen Sie eine Anfrage von einer anderen mithilfe des Pre-Request-Skripts in Postman aus

Lesezeit: 6 Minuten

Benutzeravatar von Lasharela
Lasharela

Ich versuche, eine authentifizierte Anfrage mit einem Klick in Postbote zu senden.

Also, ich habe eine Anfrage mit dem Namen “Oauth” und Ich verwende Tests, um das Token zu speichern in einer lokalen Variablen.

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.access_token);

Was ich jetzt versuche, ist, die Oauth-Anforderung automatisch (von einem Vorabanforderungsskript) für alle anderen Anforderungen auszuführen, die ein Trägertoken benötigen.

Gibt es eine Möglichkeit, ein Zugriffstoken zu erhalten und eine authentifizierte Anfrage mit einem Klick auf die Postboten-Schaltfläche zu senden?

Wie von KBusc erwähnt und von diesen Beispielen inspiriert, können Sie Ihr Ziel erreichen, indem Sie ein Pre-Request-Skript wie das folgende festlegen:

pm.sendRequest({
    url: pm.environment.get("token_url"),
    method: 'GET',
    header: {
        'Authorization': 'Basic xxxxxxxxxx==',
    }
}, function (err, res) {
    pm.environment.set("access_token", res.json().token);
});

Dann verweisen Sie einfach {{access_token}} wie jede andere Umgebungsvariable.

  • Wie kann ich eine der Anfragen aus meinem Arbeitsbereich ausführen, z. B. nur nach Name, von der Voranfrage einer beliebigen Anfrage, die ich möchte?

    – Dmitri

    1. Oktober 2021 um 13:27 Uhr


  • Ich bin mir nicht sicher, ob ich Ihre Frage verstehe, Dmitry, aber ich vermute, dass sie nicht eng mit der ursprünglichen zusammenhängt und möglicherweise mit neuen Funktionen zu tun hat, die Postman seitdem hinzugefügt wurden. Vielleicht wäre es angemessener, eine neue Frage zu öffnen?

    – Gera Zenobi

    4. Oktober 2021 um 9:17 Uhr

Benutzeravatar von Hannele
Hannele

HINWEIS: Jetzt da ist Eine Möglichkeit, dies in einem Pre-Request-Skript zu tun, finden Sie unter die anderen antworten. Ich werde diese Antwort für die Nachwelt aufbewahren, aber nur damit es jeder weiß 🙂

Ich glaube, es gibt noch keine Möglichkeit, dies im Pre-Request-Skript zu tun, aber Sie können es auf nur wenige Klicks reduzieren, wenn Sie eine Variable und die Registerkarte “Tests” verwenden. Eine ausführlichere Anleitung finden Sie im Postman-Blogaber die Quintessenz ist:

  1. Richten Sie Ihre Authentifizierungsanfrage wie gewohnt ein.
  2. Speichern Sie im Abschnitt Tests dieser Anfrage das Ergebnis dieser Anfrage in einer Variablen, möglicherweise so etwas wie die folgende:

    var data = JSON.parse(responseBody);
    postman.setEnvironmentVariable("token", data.token);
    
  3. Führen Sie die Authentifizierungsanforderung aus – das sollten Sie jetzt sehen token für diese Umgebung eingestellt ist (klicken Sie auf das augenförmige Symbol oben rechts).

  4. Richten Sie Ihre zu verwendende Datenanforderung ein {{token}} an der Stelle, an der Sie zuvor das Inhabertoken eingefügt haben.
  5. Führen Sie Ihre Datenanforderung aus – sie sollte jetzt ordnungsgemäß authentifiziert sein.

Um das Token zu aktualisieren, müssen Sie lediglich die Authentifizierungsanforderung erneut ausführen.

  • Mir ist klar, dass die Frage das ursprünglich getan hat, aber es ist einfach, nach dem Titel zu suchen, ohne sich dessen bewusst zu sein XD

    – Hannele

    26. März 2018 um 21:54 Uhr

  • Danke, dass Sie mich auf den richtigen Weg gebracht haben.) Heutzutage werden Sie es bekommen Identifier 'data' has already been declared obiger Code läuft. Um es zu beheben, müssen wir nur die Variable umbenennen data -> body

    – Chill Appreciator

    13. Oktober 2020 um 9:39 Uhr

Benutzeravatar von KBusc
KBusc

Etwas spät, aber für andere, die auf diesen Beitrag stoßen, IST es jetzt möglich, eine weitere Anfrage von zu senden Pre-request Script Sektion. Ein paar Beispiele finden Sie hier: https://gist.github.com/sid405/b57985b0649d3407a7aa9de1bd327990

  • der Hauptlink ist tot

    – Kalicoder

    9. März um 23:07 Uhr

  • @Calicoder Link ist behoben

    – KBusc

    24. Juni um 11:28 Uhr

  • Könnten Sie gemäß den Stackoverflow-Richtlinien einen Kontext / eine Beschreibung des Linkinhalts bereitstellen?

    – Unsterbliches Blau

    21. Juli um 14:50 Uhr

  • Können Sie hier die Antwort geben. Ich bin nicht in der Lage, auf der Seite oder den verlinkten Problemseiten zu finden. Wenn die Antwort die Funktion „Sammellauf“ ist, ist sie nicht ganz dasselbe und nicht so einfach zu verwenden wie die Anforderungsfunktion.

    – Kaigo

    28. Juli um 11:41 Uhr


Benutzeravatar von Piotr Dawidiuk
Piotr Dawidiuk

Sie können keine weitere Anfrage von senden Pre-request Script Abschnitt, aber tatsächlich ist es möglich, Anfragen zu verketten und eine nach der anderen auszuführen.

Sie sammeln Ihre Anfrage in Inkasso und starte es mit Collection Runner.

Um die Anfrageergebnisse anzuzeigen, können Sie einer anderen Antwort folgen.

Ich hatte die gleiche Frage im Kopf, die im Grunde lautet: “Wie kann ich eine andere Anfrage ausführen, die bereits von den Registerkarten “Test” oder “Pre-Request-Skript” einer anderen Anfrage existiert, ohne diese Anfrage mit zu erstellen pm.sendRequest(reqConfObj)?”, dann fand ich die postman.setNextRequest('requestName') Methode aus diese Postman-Diskussion was dich zu führen wird diese Postboten-Dokumentationsseite Informationen zum Erstellen von Anfrage-Workflows.

Aber die Sache ist, postman.setNextRequest() -Methode wird nicht ausgeführt, wenn Sie keinen Ordner oder keine Sammlung ausführen, daher funktioniert es nicht, einfach auf die Schaltfläche „Senden“ der Anfrage zu klicken, die Ihr Skript enthält.

Ich möchte Sie auch auf einige Dinge aufmerksam machen:

  • Das vorangestellte Wort ist „Postbote“ statt „pm“.
  • postman.setNextRequest() wird immer zuletzt ausgeführt, obwohl Sie es an den Anfang Ihres Skripts geschrieben haben. Ihr anderer Code im Skript wird dann ausgeführt postman.setNextRequest wird initialisiert.
  • Wenn Sie den Anforderungsfluss stoppen möchten, können Sie dies einfach tun postman.setNextRequest(null).

Ich möchte jeden, der Postman verwendet, ermutigen, sich die erwähnten Links anzusehen. Ich glaube, es ist eine großartige Funktion, die jeder ausprobieren sollte! 🙂

Benutzeravatar von w4dd325
w4dd325

Sie können der Sammlung ein Pre-Request-Skript hinzufügen, das vor jeder Postman-Anfrage ausgeführt wird. Ich verwende beispielsweise Folgendes, um ein Zugriffstoken von Apigee zurückzugeben

const echoPostRequest = {
  url: client_credentials_url,
  method: 'POST',
  header: 'Authorization: Basic *Basic Authentication string*'
};

var getToken = true;

if (!pm.environment.get('token')) {
  console.log('Token  missing')
} else {
  console.log('Token all good');
}

if (getToken === true) {
  pm.sendRequest(echoPostRequest, function(err, res) {
    console.log(err ? err : res.json());
    if (err === null) {
      console.log('Saving the token');
      console.log(res);
      var responseJson = res.json();
      console.log(responseJson.access_token);
      pm.environment.set('token', responseJson.access_token)
    }
  });
}

Benutzeravatar von w4dd325
w4dd325

All diese Problemumgehungen mit der Neuerstellung von Anfragen. Postman unterstützt nicht, was Sie tun möchten. Um das zu bekommen, was Sie wollen, müssen Sie Insomnia verwenden, es erlaubt Ihnen, Körperwerte von anderen Anfrageantworten zuzuordnen, und wenn diese Antworten nicht ausgeführt werden, führt es sie automatisch aus oder verhält sich basierend auf der gewählten Richtlinie.

Wenn Sie jedoch bei Postman bleiben möchten, müssen Sie die vollständigen vorherigen Anforderungsparameter in globalen Variablen speichern, dann die gesamte Konfiguration früherer Anforderungen aus dieser Variablen als JSON-String abrufen, diesen JSON in ein Objekt parsen und es pm zuweisen .sendRequest als erstes Argument.

  • Danke, das war die Klarheit, die ich brauchte. Um es klar zu sagen, viele dieser anderen Antworten sagen Ihnen, wie Sie eine vorhandene Anfrage in einem Pre-Request-Skript neu erstellen, aber das ist nicht dasselbe wie das Aufrufen einer bereits vorhandenen Anfrage (in Ihrer Sammlung).

    – Ich weiß nichts

    3. August um 16:17 Uhr

1405150cookie-checkSo führen Sie eine Anfrage von einer anderen mithilfe des Pre-Request-Skripts in Postman aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy