Ontwerp en Test API WebSocket-integraties met Postman of Insomnia
description
Met deze prompt kun je effectief WebSocket API-integraties ontwerpen en testen, wat essentieel is voor moderne real-time applicaties. Je leert hoe je verbindingen beheert, berichten valideert en foutscenario's simuleert, wat resulteert in stabielere en betrouwbaardere API's. Dit is uniek omdat het specifiek inspeelt op WebSocket-testroutines, een aspect dat vaak ontbreekt in standaard API testprompts.
prompt
try_prompt
Help me met het ontwerpen en testen van WebSocket API-integraties in <kies Postman of Insomnia>. Mijn WebSocket-API endpoint is: <voer de WebSocket-URL in>. Ik wil verbinding maken, berichten sturen en ontvangen, en testen ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een uitgebreide gids om WebSocket API-integraties te ontwerpen en testen in Postman met jouw endpoint ws://echo.websocket.org.
---
### 1. WebSocket-verbinding maken in Postman
**Stap 1:** Maak een nieuwe WebSocket-verbinding
- Klik op "New" > "WebSocket Request"
- Voer de URL in: `ws://echo.websocket.org`
- Klik op "Connect"
**Stap 2:** Verbindingsstatus controleren
- Postman toont nu de status van de verbinding en een tekstvak voor berichten.
---
### 2. Berichten sturen en ontvangen
**Stap 3:** Berichten verzenden
- Typ je bericht in het tekstvak onder "Message"
- Klik op "Send"
- Ontvangst wordt weergegeven onder "Messages" in real-time
**Voorbeeld:**
Stuur bijvoorbeeld:
```json
{"action":"test","message":"Hallo WebSocket"}
```
**Stap 4:** Ontwikkel scripts voor automatische tests
---
### 3. Test automatisering in Postman
**Stap 5:** Gebruik de `Test Scripts` sectie na het ontvangen van een bericht
**Voorbeeldscript voor ontvangen berichten:**
```javascript
// Controleren of het bericht een echo is
pm.test("Ontvangen bericht bevat verwachte tekst", function () {
var message = pm.response.text();
pm.expect(message).to.include("Hallo WebSocket");
});
```
---
### 4. Verbinding beheren en foutafhandeling
**Stap 6:** Scripts voor het afhandelen van connectie- en disconnectiefouten
Omdat WebSocket in Postman beperkt is in foutafhandeling, kun je werken met `onOpen`, `onMessage`, en `onClose` events via Postman’s WebSocket scripting.
**Voorbeeld van connectiecontrole:**
```javascript
// Script dat wordt uitgevoerd bij het openen van de verbinding
if(pm.websocket.readyState === 1){
console.log("Verbonden met WebSocket");
} else {
console.error("Geen verbinding");
}
```
**Voorbeeld van disconnectie:**
```javascript
// Script dat wordt uitgevoerd bij disconnectie
pm.test("WebSocket disconnectie detectie", function () {
pm.expect(pm.websocket.readyState).to.eql(3); // 3 = Closed
});
```
---
### 5. Teststrategieën voor real-time communicatie
- **Verbindingstest:** Controleer of de verbinding succesvol wordt gemaakt binnen een bepaald tijdsbestek.
- **Berichtintegriteit:** Verzend een testbericht en controleer of hetzelfde bericht wordt ontvangen (echo).
- **Foutscenario's:** Simuleer netwerkuitval door de verbinding te sluiten en te controleren of Postman dit correct detecteert.
- **Herverbinding:** Test automatische herverbindingen na disconnecties (mits scripting mogelijk).
- **Lage latency en doorvoer:** Meet de tijd tussen verzenden en ontvangen van berichten.
---
### 6. Geavanceerde automatisering
**Gebruik van pre-request scripts:**
Stel bijvoorbeeld vooraf berichten in of configureer testgegevens.
**Voorbeeld pre-request script:**
```javascript
// Voorbereiden van een bericht
pm.variables.set("testMessage", JSON.stringify({action: "test", message: "Automated message"}));
```
**Gebruik in test:**
```javascript
// Verstuur het bericht uit variabele
pm.sendWebSocketMessage(pm.variables.get("testMessage"));
```
---
### Samenvatting
- Maak verbinding via "WebSocket Request" in Postman
- Stuur berichten in het berichtvak en ontvang ze in real-time
- Gebruik scripts om berichten te valideren en fouten af te handelen
- Automatiseer tests voor connectiviteit, berichtintegriteit, en foutscenario's
---
Als je verdere hulp nodig hebt bij het schrijven van specifieke scripts of bij het opzetten van meer geavanceerde testscenario's, laat het gerust weten!
provider: deepseek
model: deepseek-chat
Hier is een uitgebreide handleiding voor het testen van WebSocket API's in Postman met je endpoint `ws://echo.websocket.org`:
## 1. WebSocket Verbinding Opzetten
### Basis Configuratie:
- **URL**: `ws://echo.websocket.org`
- **Protocol**: WS (WebSocket)
- **Initial Headers** (optioneel):
```json
{
"User-Agent": "PostmanRuntime/7.0.0",
"Connection": "Upgrade"
}
```
## 2. Test Scripts voor Automatisering
### Verbindings Script (Pre-request):
```javascript
// Stel timeout in voor verbinding
pm.environment.set("connection_timeout", 5000);
pm.environment.set("max_retry_attempts", 3);
```
### Bericht Verzenden Script:
```javascript
// Voorbeeld bericht verzenden
const message = {
"type": "echo_test",
"timestamp": new Date().toISOString(),
"data": "Test bericht van Postman"
};
// Verzend als JSON string
pm.collectionVariables.set("last_sent_message", JSON.stringify(message));
```
### Ontvangen Berichten Handler:
```javascript
// Deze code komt in de 'Tests' tab na ontvangst
const response = pm.response.text();
// Parse ontvangen bericht
try {
const receivedMessage = JSON.parse(response);
// Valideer echo functionaliteit
const sentMessage = JSON.parse(pm.collectionVariables.get("last_sent_message"));
pm.test("Bericht correct geëchood", function() {
pm.expect(receivedMessage.data).to.equal(sentMessage.data);
});
pm.test("Timestamp binnen acceptabele marge", function() {
const sentTime = new Date(sentMessage.timestamp);
const receivedTime = new Date(receivedMessage.timestamp);
const timeDiff = Math.abs(receivedTime - sentTime);
pm.expect(timeDiff).to.be.lessThan(1000); // Max 1 seconde verschil
});
} catch (e) {
// Fallback voor niet-JSON berichten
pm.test("Echo response ontvangen", function() {
pm.expect(response).to.include("Test bericht");
});
}
```
## 3. Foutafhandeling Scripts
### Verbindingsfouten Handler:
```javascript
// In Tests tab voor connectie
pm.test("Verbinding succesvol", function() {
pm.expect(pm.response.code).to.be.oneOf([101, 200]);
});
// Timeout handling
setTimeout(() => {
if (!pm.response) {
pm.test("Verbinding timeout", function() {
pm.expect.fail("Verbinding timeout na " +
pm.environment.get("connection_timeout") + "ms");
});
}
}, pm.environment.get("connection_timeout"));
```
### Onverwachte Disconnect Handler:
```javascript
// Monitor verbindingsstatus
let disconnectDetected = false;
// Simuleer disconnect voor testing
const simulateDisconnect = () => {
// Deze functie kan worden aangeroepen om disconnect te testen
console.log("Simulating disconnect...");
disconnectDetected = true;
};
pm.test("Verbinding stabiel", function() {
pm.expect(disconnectDetected).to.be.false;
});
```
## 4. Geavanceerde Test Strategieën
### Load Test Scenario:
```javascript
// Meerdere berichten snel achter elkaar
const loadTestMessages = [
"Test bericht 1",
"Test bericht 2",
"Test bericht 3"
];
let receivedCount = 0;
loadTestMessages.forEach((message, index) => {
setTimeout(() => {
// Verzend bericht
pm.collectionVariables.set("current_test_message", message);
// Verzend logica hier...
// Verhoog teller bij ontvangst
receivedCount++;
}, index * 100); // 100ms interval
});
// Valideer alle berichten ontvangen
setTimeout(() => {
pm.test("Alle load test berichten ontvangen", function() {
pm.expect(receivedCount).to.equal(loadTestMessages.length);
});
}, loadTestMessages.length * 150);
```
### Herverbindings Logica:
```javascript
let reconnectAttempts = 0;
const maxReconnectAttempts = 3;
const attemptReconnect = () => {
if (reconnectAttempts < maxReconnectAttempts) {
reconnectAttempts++;
console.log(`Herverbindingspoging ${reconnectAttempts}/${maxReconnectAttempts}`);
// Implementeer herverbindingslogica
// Postman ondersteunt dit via nieuwe WebSocket request
} else {
pm.test("Max herverbindingspogingen bereikt", function() {
pm.expect.fail("Kon niet herverbinden na " + maxReconnectAttempts + " pogingen");
});
}
};
```
## 5. Collection Variabelen Setup
### Environment Variables:
```json
{
"websocket_url": "ws://echo.websocket.org",
"connection_timeout": 5000,
"message_timeout": 3000,
"max_reconnect_attempts": 3
}
```
### Collection Variables:
```json
{
"last_sent_message": "",
"last_received_message": "",
"connection_status": "disconnected"
}
```
## 6. Test Uitvoering Strategie
### Test Flow:
1. **Initialisatie**: Stel environment variabelen in
2. **Verbinding**: Maak WebSocket verbinding
3. **Health Check**: Verzend test bericht en valideer echo
4. **Load Test**: Verzend meerdere berichten onder verschillende condities
5. **Fout Scenario's**: Test timeout en disconnect handling
6. **Cleanup**: Sluit verbinding netjes
### Automatisering Tips:
- Gebruik Postman Collection Runner voor batch tests
- Implementeer retry logic voor intermittente failures
- Log alle verzonden en ontvangen berichten voor debugging
- Monitor performance metrics (response tijd, throughput)
## 7. Monitoring en Reporting
### Performance Metrics:
```javascript
// Meet response tijd
const startTime = new Date();
// Na bericht ontvangst
const endTime = new Date();
const responseTime = endTime - startTime;
pm.test("Response tijd acceptabel", function() {
pm.expect(responseTime).to.be.lessThan(1000); // < 1 seconde
});
// Log metrics voor reporting
console.log("Response tijd: " + responseTime + "ms");
```
Deze setup geeft je een solide basis voor het testen van WebSocket APIs in Postman. Pas de scripts aan op basis van je specifieke API requirements en test scenario's.

