Back to skills
extension
Category: Development & EngineeringNo API key required

httpie-api-test

API interface testing workflow, using HTTPie as the core tool. This skill is used when users need to test API interfaces, perform interface calls, generate test reports, manage interface dependencies, or establish standardized interface testing processes in projects. It is suitable for scenarios such as RESTful API testing, interface integration, and regression testing.

personAuthor: jakexiaohubgithub

HTTPie API Test

使用 HTTPie 进行 API 测试的标准化工作流。

核心工具

HTTPie 比 curl 更优雅。安装:

# macOS
brew install httpie

# Ubuntu/Debian
apt install httpie

# pip
pip install httpie

API 注册表

在项目根目录创建 api-registry.md 作为接口测试的神经中枢。完整格式见 references/api-registry.md

基本结构

# API Registry

## Environment
| Name | Value |
|------|-------|
| BASE_URL | https://api.example.com |
| TOKEN | Bearer xxx |

## Endpoints

### [GET] /users - 获取用户列表
- Status: tested
- Depends: none
- Last tested: 2024-01-15

**Request:**
http GET $BASE_URL/users Authorization:$TOKEN

**Expected:** 200, 返回用户数组

---

### [POST] /users - 创建用户
- Status: pending
- Depends: none

**Request:**
http POST $BASE_URL/users Authorization:$TOKEN \
  name="张三" email="test@example.com"

**Expected:** 201, 返回新用户对象

工作流

1. 初始化

在项目根目录创建 api-registry.md,定义环境变量和接口列表。

2. 执行测试

读取注册表,按依赖顺序执行:

# 设置环境变量
export BASE_URL="https://api.example.com"
export TOKEN="Bearer your-token"

# GET
http GET $BASE_URL/users Authorization:$TOKEN

# POST with JSON body
http POST $BASE_URL/users Authorization:$TOKEN \
  name="测试" email="test@example.com"

# 保存响应
http GET $BASE_URL/users Authorization:$TOKEN > response.json

3. 更新状态

测试完成后更新注册表中的 StatusLast tested 字段。

4. 生成报告

python scripts/generate_report.py api-registry.md -o test-report.md

HTTPie 速查

# Headers
http url Header:Value

# 认证
http -a user:pass url

# 表单提交
http -f POST url field=value

# 仅显示 headers
http --headers url

# 详细模式
http --verbose url

依赖管理

Depends 字段声明依赖关系:

### [DELETE] /users/{id} - 删除用户
- Status: pending
- Depends: POST /users

测试时按依赖拓扑排序执行。

状态标记

| Status | 含义 | |--------|------| | pending | 待测试 | | tested | 已通过 | | failed | 测试失败 | | blocked | 被阻塞 | | deprecated | 已废弃 |