做前端或者后端开发,免不了要跟接口打交道。比如你写了个登录功能,点一下按钮,数据得发到服务器,对方返回成功或失败的结果。这个过程就是网络请求。但怎么知道它真能跑通?靠上线后再试?肯定不行。这时候就得提前测。
用浏览器开发者工具看请求
最直接的办法就是打开 Chrome 的“开发者工具”,切到 Network 标签页。点个按钮触发请求,这里立马就能看到发出的 HTTP 请求:地址、方法(GET/POST)、请求头、参数、响应数据,一清二楚。如果状态码是 401,说明没登录;500 就是服务端出错了。适合快速排查问题,比如传参少了字段,或者跨域被拦了。
借助 Postman 这类工具手动发请求
Postman 几乎是每个开发者的桌面常驻软件。你可以手动构造一个 POST 请求,填上 URL、请求头(比如带上 token),再写个 JSON 格式的请求体:
{
"username": "testuser",
"password": "123456"
}
点“Send”就发出去了,马上能看到返回结果。适合测试还没联调的接口,或者让后端同事帮你验证某个异常场景。
写单元测试自动验证请求逻辑
如果你用的是 JavaScript,配合 Jest 和 axios,可以模拟请求不走真实网络。比如你有个函数 fetchUser(id),正常会发请求拿用户信息。测试时可以 mock 掉 axios.get:
jest.mock('axios');
import axios from 'axios';
import { fetchUser } from './user';
it('should fetch user data', async () => {
axios.get.mockResolvedValue({ data: { id: 1, name: 'John' } });
const user = await fetchUser(1);
expect(user.name).toBe('John');
});
这样即使断网也能跑测试,还能验证代码在不同响应下的行为,比如服务器报错时有没有正确提示。
使用 Mock Server 搭建假接口
前后端并行开发时,后端接口可能还没好。这时候可以用 Mock Server 先模拟返回数据。比如用 json-server 起一个本地服务:
npx json-server --watch db.json --port 3001
只要写个 db.json 文件:
{
"users": [
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" }
]
}
访问 http://localhost:3001/users 就能拿到数据。前端可以先用这个地址开发,等真实接口好了再切换过去。
集成测试中用 Supertest 测试 API
如果是 Node.js 写的后端服务,用 Express + Supertest 是很常见的组合。可以直接启动应用的一部分,发请求进去,检查返回是否符合预期:
const request = require('supertest');
const app = require('../app');
it('should return 200 when getting /health', async () => {
const res = await request(app).get('/health');
expect(res.statusCode).toEqual(200);
expect(res.text).toEqual('OK');
});
这类测试贴近真实运行环境,能发现路由、中间件、鉴权等方面的潜在问题。
测试网络请求不是非要等到部署上线才碰。从开发初期就开始验证,能少踩很多坑。工具不在于多高级,而在于用得顺手、嵌入到日常流程里。调试窗口多看一眼,写个简单脚本跑一跑,问题往往就藏在细节里。