惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
罗磊的独立博客
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
D
DataBreaches.Net
博客园 - 叶小钗
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
阮一峰的网络日志
阮一峰的网络日志
B
Blog
V
Visual Studio Blog
雷峰网
雷峰网
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
How I stopped building Postman collections by hand (Claud...
Anton Kirilchuk · 2026-06-20 · via DEV Community

If you test backend services, you know the
ritual. A new service shows up, you need to poke its endpoints, so you open Postman and start building a collection request by request. Method, URL, headers, auth, request body, fix the folder structure, name everything so future-you can read it. On a service with a few dozen endpoints, that's an hour or two gone before you send a single request.

I haven't done that in months.

Now I hand the API definition to Claude, and it builds the whole collection through the Postman MCP server in a few seconds - laid out as a step-by-step runbook, with values already filled in. I just hit Send and read the responses. This post is how I set it up and how I actually use it day to day.

The usual way, and why it's a waste

The information about an API lives in different places depending on the team. Sometimes it's a clean Swagger / OpenAPI page. Sometimes it's a description in a Jira ticket. Sometimes a Confluence page, or just a message from the developer who wrote the endpoint. Wherever it lives, the manual move is the same: read it, then re-type each endpoint into Postman.

It's not hard work. It's just slow, repetitive, and easy to get subtly wrong - a missing header here, a wrong content type there. And none of it is actually testing. It's setup that stands between you and the part of the job that matters.

What you need

Three things:

  1. A Postman account and an API key
  2. Claude (Claude Code or the desktop app) with the Postman MCP server connected
  3. The API definition - from wherever it lives

1. Get your Postman API key

In Postman: Settings -> API keys -> Generate API Key. Copy it somewhere safe - you'll pass it to the MCP server, not paste it into chats.

2. Connect the Postman MCP server to Claude

MCP (Model Context Protocol) lets Claude talk directly to Postman instead of you copy-pasting back and forth. Add the server to your .mcp.json (project root, or ~/.claude/mcp.json for global):

{
 "mcpServers": {
 "postman": {
 "command": "npx",
 "args": ["-y", "@postman/postman-mcp-server", "--full"],
 "env": {
 "POSTMAN_API_KEY": "${POSTMAN_API_KEY}"
 }
 }
 }
}

Set POSTMAN_API_KEY in your environment, restart Claude, and run /mcp to confirm it connected. Now Claude can create and edit collections in your workspace on its own.

3. Point it at the API

If you have Swagger, even better - Spring services expose the full method library as OpenAPI at /v3/api-docs:

curl -s http://your-service/v3/api-docs -o api.json

But the source doesn't have to be Swagger. Paste the Jira ticket text, the Confluence export, or the endpoint description straight into Claude. It pulls the endpoints out either way.

How it actually works

Here's the part I like. I don't just get a flat dump of requests - I ask Claude to build the collection as a runbook, where the order of the requests is the order I run the test:

  • request names are steps: 1) create threshold, 2) get by id, 3) update, 4) delete and verify
  • top to bottom is the test sequence
  • every value (host, ids, request bodies) is hardcoded right into the request - no {{variables}} to fill in by hand

Then testing looks like this: I open the collection and press Send, top to bottom. When a request creates something and returns a new id, Claude reads it from the response and patches it into the next requests through the Postman API. I keep pressing Send.

A quick example

Say I give Claude an endpoint spec like this:

POST /api/threshold - create a detection threshold for a resource
GET /api/threshold/{id} - read it back
PUT /api/threshold/{id} - update it
DELETE /api/threshold/{id}

I ask: "Build a Postman collection in my workspace as a step-by-step runbook to create a threshold, read it, update it, and delete it. Hardcode the values, name each request as a numbered step."

A few seconds later there's a collection with four ordered requests, bodies filled in, auth set at the collection level. I run them in order. After step 1 returns the new threshold id, the GET/PUT/DELETE steps already point at it. I read each response and decide whether the service behaved correctly.

Where this helps, and where it doesn't

The setup work mostly disappears. The thinking doesn't, and that's the point.

AI is good at: turning a spec into a structured collection, naming and ordering requests, filling in boilerplate, patching ids between steps.

AI does not do the actual QA: deciding which scenarios matter, what the edge cases are, whether a 201 actually means the business logic is correct, reading logs to find why something failed. A green response is not a passing test - that judgment is still mine.

So this isn't "AI tests for me". It's "AI clears the busywork so I spend my time on the part that needs a tester".

Wrapping up

If you do REST API testing and haven't tried Claude + Postman MCP yet, it's worth half an hour to set up. The first time a collection you'd have spent an hour building shows up ready in seconds, it clicks.

I wrote up my full setup, prompt templates, and honest notes on where AI breaks down here: github.com/anton-kirilchuk/ai-assisted-qa-mcp

I post more about backend QA and AI-augmented testing on LinkedIn - happy to compare notes.

How much of your testing time still goes to setup before the real testing starts?