Agent Skills
› cosmicstack-labs/mercury-agent-skills
› api-testing
api-testing
GitHub系统化测试REST和GraphQL API,涵盖功能、验证、认证、边缘情况、契约及性能。支持Pact契约测试防漂移,以及多区域合成监控与SLA告警。
Trigger Scenarios
需要测试REST或GraphQL接口时
进行API契约一致性校验时
配置API健康监控与告警时
Install
npx skills add cosmicstack-labs/mercury-agent-skills --skill api-testing -g -y
SKILL.md
Frontmatter
{
"name": "api-testing",
"metadata": {
"tags": [
"api",
"testing",
"rest",
"graphql",
"contract-testing"
],
"author": "cosmicstack-labs",
"version": "1.0.0",
"category": "testing-qa"
},
"description": "REST and GraphQL testing, Postman\/Insomnia patterns, contract testing, schema validation, and monitoring"
}
API Testing
Test REST and GraphQL APIs systematically.
Test Categories
| Category | What | Example |
|---|---|---|
| Functional | Does it work? | POST /users returns 201 |
| Validation | Input handling | Missing required field → 400 |
| Auth | Access control | No token → 401 |
| Edge Cases | Boundary conditions | Max page size, empty results |
| Contract | Schema conformance | Response matches OpenAPI spec |
| Performance | Within SLO | p95 < 500ms |
REST API Testing
Structure
describe('POST /users', () => {
it('creates a user with valid data', async () => {
const res = await request(app)
.post('/api/users')
.send({ name: 'Alice', email: 'alice@test.com' });
expect(res.status).toBe(201);
expect(res.body).toHaveProperty('id');
});
it('rejects duplicate email', async () => {
const res = await request(app)
.post('/api/users')
.send({ name: 'Alice', email: 'existing@test.com' });
expect(res.status).toBe(409);
});
});
Contract Testing (Pact)
- Provider publishes OpenAPI spec
- Consumer tests verify against published spec
- CI rejects PR if contract breaks
- Prevents API drift between services
GraphQL Testing
- Test queries and mutations independently
- Validate against schema
- Test error paths (partial failures, null propagation)
API Monitoring
- Synthetic checks every 5 minutes
- Assert status, response time, required fields
- Alert on SLA breaches
- Monitor from multiple regions
Version History
- 38e2523 Current 2026-07-05 19:42


