Webhook Testing Guide
What is a Webhook?
A webhook is a method of event-driven communication where one system notifies another when a specific event occurs. It sends real-time HTTP POST requests to a configured URL.
How Webhooks Work
- Event occurs in the source system.
- Webhook is triggered, sending an HTTP request.
- Data is transmitted in JSON/XML format.
- Receiving system processes the data.
Testing Webhooks
1. Using Postman
POST https://your-webhook-url.com
Headers:
Content-Type: application/json
Body:
{
"event": "user_signup",
"user_id": 12345,
"email": "test@example.com"
}
2. Using RequestBin
Visit RequestBin, create a bin, and configure the webhook to send requests to the generated URL.
3. Testing with Ngrok
# Install and run Ngrok
grok http 5000
4. Using cURL
curl -X POST "https://your-webhook-url.com" \
-H "Content-Type: application/json" \
-d '{"event":"payment_success", "transaction_id":78945, "amount":100.50}'
5. Automated Testing with Rest Assured (Java)
import io.restassured.RestAssured;
import io.restassured.response.Response;
import org.testng.Assert;
import org.testng.annotations.Test;
import static io.restassured.RestAssured.given;
public class WebhookTest {
@Test
public void testWebhook() {
RestAssured.baseURI = "https://your-webhook-url.com";
String requestBody = "{ \"event\": \"order_created\", \"order_id\": 1234, \"status\": \"confirmed\" }";
Response response = given()
.header("Content-Type", "application/json")
.body(requestBody)
.when()
.post("/webhook-endpoint")
.then()
.extract().response();
Assert.assertEquals(response.getStatusCode(), 200);
}
}
Summary
Method | Use Case |
---|---|
Postman | Manually send test webhook requests. |
RequestBin | Capture and inspect incoming webhook requests. |
Ngrok | Test webhooks locally by exposing your server online. |
cURL | Send test requests via command line. |
Rest Assured | Automate webhook API testing using Java. |
Demo Website
Visit Webhook.site to test and debug webhook requests easily.
Visit Beeceptor to create mock endpoints and test webhooks.