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

