slogan3

Creëer Geavanceerde Workflow Automatiseringen met Postman of Insomnia

description

Met deze prompt kan de gebruiker complexe API-testworkflows automatiseren door meerdere verzoeken te koppelen en dynamische data-uitwisseling te realiseren. Het helpt bij het verminderen van handmatige teststappen, verhoogt de testefficiëntie en maakt het mogelijk om realistische testscenario's te ontwerpen die beter aansluiten bij productiesituaties.

prompt

Help me een geavanceerde workflow te creëren in <kies Postman of Insomnia> waarbij ik meerdere API-aanroepen kan koppelen met conditionele logica en data-uitwisseling tussen de ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hieronder vind je een stapsgewijze gids om een geavanceerde workflow in Postman op te zetten, inclusief meerdere API-aanroepen, conditionele logica, data-uitwisseling, variabelen en scripts. 1. **Maak een collectie aan** - Open Postman en creëer een nieuwe collectie, bijvoorbeeld “Order Workflow”. - Voeg binnen deze collectie meerdere requests toe, zoals: - `Create Order` - `Get Order Details` - `Update Order` - `Validate Order` 2. **Initialiseer globale of collectie-variabelen** - Ga naar het tabblad "Variables" van de collectie. - Definieer variabelen zoals: - `orderId` (leeg of met een initiële waarde) - `authToken`, `responseData`, etc. 3. **Request 1: Create Order** - URL: `https://api.mijnservice.com/v1/orders` - Methode: POST - Body: JSON met ordergegevens (dynamisch) - Scripts: ```javascript // Stel ordergegevens in pm.variables.set("orderData", JSON.stringify({ "product": "productA", "aantal": 2, "klantId": "12345" })); ``` - Nadat je het request hebt verzonden en een reactie krijgt: ```javascript // Sla de orderId op uit de reactie let jsonResponse = pm.response.json(); pm.collectionVariables.set("orderId", jsonResponse.id); ``` 4. **Request 2: Get Order Details** - URL: `https://api.mijnservice.com/v1/orders/{{orderId}}` - Methode: GET - Voorwaarde: Voer deze request uit nadat de eerste succesvol is afgerond. - Scripts: ```javascript // Controleer of orderId is gezet if(pm.collectionVariables.get("orderId")) { // Verwerk of valider de gegevens let orderDetails = pm.response.json(); // Bijvoorbeeld: controleer of status 'In behandeling' is pm.test("Order status is In behandeling", () => { pm.expect(orderDetails.status).to.eql("In behandeling"); }); } else { console.log("Geen orderId gevonden"); } ``` 5. **Conditionale Logica** - Voeg een Pre-request Script of Test toe om condities te checken. - Bijvoorbeeld, afhankelijk van de status: ```javascript let status = pm.response.json().status; if(status === "In behandeling") { // Voer update uit postman.setNextRequest("Update Order"); } else { // Stop workflow of andere acties postman.setNextRequest(null); } ``` 6. **Request 3: Update Order (optioneel)** - URL: `https://api.mijnservice.com/v1/orders/{{orderId}}` - Methode: PUT - Body: updategegevens - Scripts: Valideer response en vervolg logica 7. **Data-uitwisseling en dynamische manipulatie** - Gebruik `pm.variables.set()` en `pm.collectionVariables.set()` om data door te geven tussen requests. - Pas body en URL aan met variabelen, bijvoorbeeld `{{orderId}}`. 8. **Workflow automatisering** - Gebruik `postman.setNextRequest()` in scripts om de volgorde en logica te bepalen. - Bijvoorbeeld: ```javascript if(pm.response.code === 200){ // Ga door met get details postman.setNextRequest("Get Order Details"); } else { // Foutafhandeling postman.setNextRequest(null); } ``` 9. **Testen en valideren** - Voeg assertions toe in de Test-tab om de data en responses te valideren. - Gebruik conditionele scripts om beslissingen te nemen. --- **Samenvatting:** Door requests te koppelen met `setNextRequest()`, variabelen te gebruiken voor dynamische data, en scripts voor conditionele logica, bouw je een complexe, flexibele workflow in Postman. Zo kun je meerdere API-aanroepen koppelen, data uitwisselen en op basis van responses beslissingen nemen. Mocht je meer specifieke voorbeelden willen of hulp bij het schrijven van bepaalde scripts, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag een geavanceerde Postman workflow te creëren. Hier is een complete handleiding in het Nederlands: ## 1. Basis Setup ### Collection Aanmaken 1. Maak een nieuwe collection aan: "Orders Workflow" 2. Voeg meerdere requests toe: - `Create Order` (POST) - `Get Order` (GET) - `Update Order` (PUT) - `Delete Order` (DELETE) ## 2. Environment Variabelen Maak een environment aan met deze variabelen: ```javascript { "base_url": "https://api.mijnservice.com/v1", "order_id": "", "auth_token": "jouw_bearer_token", "current_status": "", "retry_count": "0" } ``` ## 3. Geavanceerde Requests ### A. Create Order (POST) **URL**: `{{base_url}}/orders` **Body** (raw JSON): ```json { "product": "{{$randomProductName}}", "quantity": "{{$randomInt}}", "customer_email": "test{{$timestamp}}@example.com" } ``` **Tests Tab**: ```javascript // Sla order ID op if (pm.response.code === 201) { const response = pm.response.json(); pm.environment.set("order_id", response.id); pm.environment.set("current_status", response.status); // Valideer response pm.test("Order succesvol aangemaakt", function() { pm.expect(response.id).to.not.be.undefined; pm.expect(response.status).to.be.oneOf(["pending", "processing"]); }); } ``` ### B. Get Order (GET) **URL**: `{{base_url}}/orders/{{order_id}}` **Pre-request Script**: ```javascript // Check of order_id bestaat if (!pm.environment.get("order_id")) { pm.test.skip = true; console.log("Geen order_id beschikbaar, skipping request"); } ``` **Tests Tab**: ```javascript // Valideer order details const response = pm.response.json(); pm.test("Status code is 200", function() { pm.response.to.have.status(200); }); pm.test("Order details zijn correct", function() { pm.expect(response.id).to.equal(pm.environment.get("order_id")); pm.expect(response).to.have.property("created_at"); }); ``` ## 4. Conditionele Workflow ### C. Update Order (PUT) - Conditioneel **URL**: `{{base_url}}/orders/{{order_id}}` **Pre-request Script**: ```javascript // Alleen uitvoeren als status "pending" is const currentStatus = pm.environment.get("current_status"); if (currentStatus !== "pending") { pm.test.skip = true; console.log(`Order status is ${currentStatus}, skipping update`); } else { // Genereer dynamische update data const newQuantity = Math.floor(Math.random() * 10) + 1; pm.environment.set("new_quantity", newQuantity.toString()); } ``` **Body**: ```json { "quantity": "{{new_quantity}}", "status": "processing" } ``` ## 5. Geavanceerde Scripting ### Collection-level Tests Voeg dit toe in de **Tests** tab van de collection: ```javascript // Global test voor alle requests pm.test("Response time is acceptabel", function() { pm.expect(pm.response.responseTime).to.be.below(1000); }); // Retry logica bij failures if (pm.response.code >= 400) { let retryCount = parseInt(pm.environment.get("retry_count") || "0"); if (retryCount < 3) { retryCount++; pm.environment.set("retry_count", retryCount.toString()); console.log(`Retry attempt ${retryCount}`); // Voer request opnieuw uit (handmatig of via script) setTimeout(() => { pm.request; }, 2000); } } ``` ## 6. Workflow Automatisering ### Collection Runner Setup 1. Ga naar **Runner** tab 2. Selecteer je "Orders Workflow" collection 3. Configureer de volgorde: - Create Order - Get Order - Update Order (conditioneel) - Get Order (verificatie) - Delete Order ### Workflow Script (in Collection) ```javascript // Postman Collection Script const workflow = { continueOnError: false, data: [], iterations: 1 }; // Pre-request voor hele collection pm.collectionVariables.set("workflow_started", new Date().toISOString()); ``` ## 7. Geavanceerde Validatie ### Custom Validator Script ```javascript // Valideer API responses consistent function validateOrderSchema(response) { const requiredFields = ['id', 'status', 'created_at', 'product']; const optionalFields = ['updated_at', 'customer_email']; requiredFields.forEach(field => { pm.test(`Response heeft verplicht veld: ${field}`, function() { pm.expect(response).to.have.property(field); }); }); // Status transitie validatie if (pm.request.method === "PUT") { const oldStatus = pm.environment.get("current_status"); const newStatus = response.status; const validTransitions = { "pending": ["processing", "cancelled"], "processing": ["completed", "cancelled"] }; if (validTransitions[oldStatus]) { pm.test(`Status transitie is geldig: ${oldStatus} -> ${newStatus}`, function() { pm.expect(validTransitions[oldStatus]).to.include(newStatus); }); } } } // Gebruik de validator validateOrderSchema(pm.response.json()); ``` ## 8. Tips voor Gebruik 1. **Environment Management**: Gebruik verschillende environments voor dev/test/prod 2. **Variable Scoping**: Gebruik collection variables voor gedeelde data 3. **Error Handling**: Implementeer robuuste foutafhandeling 4. **Monitoring**: Gebruik console.log() voor debugging 5. **Documentatie**: Voeg descriptions toe aan elke request Deze workflow geeft je een solide basis voor geavanceerde API testing met conditionele logica, data-uitwisseling tussen requests en dynamische variabele manipulatie in Postman.