授课语音

Postman接口测试方法与实战

Postman 是一个强大的 API 测试工具,可以帮助开发者快速测试、调试和管理 Web 服务接口。Postman 提供了图形化界面,方便用户发送各种类型的 HTTP 请求,查看响应内容,并进行断言验证。

1. Postman介绍

Postman 是一款非常流行的接口测试工具,常用于测试 RESTful API 和 Web 服务。它支持多种 HTTP 请求类型(如 GET、POST、PUT、DELETE 等),并且具有强大的响应分析功能。你可以通过 Postman:

  • 构造不同类型的请求。
  • 提交请求并查看返回结果。
  • 进行自动化测试,使用脚本验证 API 响应。

2. Postman基础操作

2.1 安装Postman

可以在Postman官网(https://www.postman.com/downloads/)下载适用于不同操作系统的版本并安装。

2.2 Postman的界面

Postman的界面分为几个主要部分:

  • 请求构造区:用来输入URL、选择请求类型(GET、POST等)、设置请求头、请求体等。
  • 请求发送区:点击"Send"按钮后,向服务器发送请求。
  • 响应区:显示服务器返回的响应数据,包括状态码、响应时间、响应体等。

3. Postman常用功能

3.1 创建请求

  1. 打开Postman,点击左上角的“New”按钮创建一个新的请求。
  2. 选择请求类型(如GET、POST、PUT等)。
  3. 输入请求的URL,例如 http://example.com/api/user.
  4. 添加请求头(可选),例如设置 Content-Type: application/json
  5. 设置请求体(POST、PUT请求需要),例如发送JSON数据。
  6. 点击“Send”按钮,向服务器发送请求。

3.2 查看响应

  • 响应状态码:如200、404、500等。
  • 响应体:包括JSON、XML、HTML等格式的内容。
  • 响应时间:请求从发送到返回所花费的时间。
  • 响应头:显示服务器返回的头信息,例如 Content-Type

4. Postman高级功能

4.1 环境变量与全局变量

在 Postman 中,你可以创建环境变量和全局变量来存储请求中的动态数据。

  • 环境变量:特定于某个环境(如开发环境、测试环境等),可以在不同的环境中切换。
  • 全局变量:在所有环境中共享的变量。

例如,可以在请求中使用变量 {{url}},而在环境或全局变量中定义 url 的值为 http://localhost:5000

4.2 请求参数和Headers

  • Query Parameters(查询参数):在GET请求中传递数据,如 http://example.com/api/user?id=1
  • Headers(请求头):常用于设置请求的元数据,比如 AuthorizationContent-TypeAccept 等。

4.3 请求体

  • JSON格式:发送结构化的数据。
  • Form Data:发送表单数据。
  • Raw:发送原始数据。

4.4 断言与测试脚本

Postman提供了内置的JavaScript脚本引擎,可以对API响应进行断言(验证),比如:

  • 验证响应状态码是否为200
  • 验证响应数据是否包含某些字段
  • 验证响应时间是否在预期范围内

示例:检查返回的状态码和响应时间

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response time is less than 200ms", function () {
    pm.response.to.have.responseTimeLessThan(200);
});

4.5 集合与自动化测试

Postman允许将多个请求放入一个集合(Collection)中,可以对集合进行批量测试。你可以将多个请求和测试脚本组合在一起,执行批量API测试,并查看测试结果。

5. Postman实战:开发与测试一个简单的RESTful API

假设你已经开发了一个简单的Flask RESTful API,功能是通过 GET 和 POST 请求访问用户数据。我们将通过 Postman 来测试它。

5.1 Flask代码实现

from flask import Flask, request, jsonify

app = Flask(__name__)

# 假数据
users = {
    1: {"name": "John", "age": 30},
    2: {"name": "Jane", "age": 25}
}

# GET请求:获取用户信息
@app.route('/user', methods=['GET'])
def get_user():
    user_id = request.args.get('id')
    user = users.get(int(user_id))
    if user:
        return jsonify(user)
    else:
        return jsonify({"message": "User not found"}), 404

# POST请求:创建用户
@app.route('/user', methods=['POST'])
def create_user():
    data = request.get_json()
    new_user = {"name": data['name'], "age": data['age']}
    users[len(users) + 1] = new_user
    return jsonify(new_user), 201

if __name__ == '__main__':
    app.run(debug=True)

5.2 使用Postman进行接口测试

  1. GET请求测试

    • 在Postman中选择GET请求类型。
    • 输入请求URL http://127.0.0.1:5000/user?id=1
    • 点击Send,查看返回的用户数据。
  2. POST请求测试

    • 在Postman中选择POST请求类型。
    • 输入请求URL http://127.0.0.1:5000/user
    • 在请求体中选择raw,并设置类型为JSON,输入以下内容:
      {
        "name": "Alice",
        "age": 28
      }
      
    • 点击Send,查看服务器返回的数据(新创建的用户信息)。

5.3 Postman断言实例

你可以在“Tests”选项卡中添加断言,验证接口响应是否符合预期。

例如:

  • 检查响应是否为200状态码
  • 验证响应数据中的name字段
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm.test("Response contains name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("name");
});

6. Postman与团队协作

Postman不仅仅是个人使用,它还支持团队协作。通过Postman的云同步功能,团队成员可以共享请求集合、环境变量等内容。

  • 共享集合:可以将请求集合与团队成员共享,方便团队协作开发。
  • 监控:Postman支持对API进行定期监控,确保其正常运行。

7. 总结

  • Postman是进行API测试和开发的强大工具,支持HTTP请求的多种方法(GET、POST、PUT、DELETE等)。
  • Postman能够帮助开发人员快速进行API接口的手动测试,并支持断言验证、环境变量、自动化测试等高级功能。
  • Postman还具有团队协作功能,可以方便地共享和同步请求集合,适用于团队开发和测试。

使用Postman,你可以快速测试接口,发现问题并修复,从而提高开发效率和代码质量。

去1:1私密咨询

系列课程: