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

try_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 ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

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.