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
tags
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.