postman测试

当然,以下是针对你提供的API层Service层 代码中涉及到的各个接口,如何使用 Postman 进行详细测试的指南。这个指南将帮助你理解如何配置 Postman 来测试这些接口,包括请求的构造、认证的处理、以及如何解读响应。

目录

  1. 准备工作
  2. 接口测试指南
  3. 常见问题与解决方案
  4. 总结

1. 准备工作

在开始测试之前,请确保以下条件满足:

  • 后端服务已启动 :确保你的 FastAPI 应用正在运行,并监听相应的端口(如 127.0.0.1:8000127.0.0.1:7860)。
  • Postman 安装 :确保你已经安装了最新版本的 Postman,可以从 Postman 官网 下载。
  • 获取 JWT 认证令牌:大多数接口依赖于 JWT 认证。你需要先通过登录接口(假设存在)获取一个有效的 JWT 令牌,或者根据代码中的逻辑生成一个。

获取 JWT 认证令牌

假设你有一个登录接口,如 POST /api/login,用于获取 JWT 令牌。以下是获取令牌的步骤:

  1. 创建登录请求

    • 方法:POST

    • URLhttp://127.0.0.1:8000/api/login(请根据实际情况调整端口)

    • Headers

      • Content-Type: application/json
    • Body

      (选择

      复制代码
      raw

      并选择

      复制代码
      JSON

      格式):

      json 复制代码
      {
          "username": "your_username",
          "password": "your_password"
      }
  2. 发送请求 :点击 Send 按钮发送请求。

  3. 获取响应

    • 如果登录成功,你将收到一个包含 JWT 令牌的响应,例如:

      json 复制代码
      {
          "access_token": "your_jwt_token",
          "token_type": "bearer"
      }
    • 记录下 access_token,稍后在其他请求中使用。

注意:如果没有登录接口,你需要根据项目中的认证逻辑手动生成或获取一个有效的 JWT 令牌。


2. 接口测试指南

以下是针对每个接口的详细测试步骤,包括如何配置 Postman 请求、所需的参数和示例响应。

2.1 POST /chat/completions

描述:该接口用于处理聊天完成请求,返回实时流式响应。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/chat/completions

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "messages": [
        {
            "role": "user",
            "content": "Hello, how are you?"
        }
    ],
    "model": "gpt-4",
    "session_id": "optional_session_id",
    "streaming": true
}

测试步骤

  1. 打开 Postman,创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/completions

  3. 复制代码
    Headers

    标签下,添加以下键值对:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 按钮发送请求。

预期响应

由于返回的是 StreamingResponse,Postman 可能无法完全显示流式响应。建议使用支持 WebSocket 或 SSE 的客户端工具,如 Postman 的 Event Source 或其他专用工具。


2.2 GET /chat/app/list

描述:通过消息表进行聊天App统计,全量表查询,支持关键词、标记用户、标记状态等筛选。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/app/list

Headers

  • Authorization: Bearer your_jwt_token

参数(可选,通过 URL 查询参数):

  • keyword(字符串):搜索关键词
  • mark_user(字符串):标记用户
  • mark_status(整数):标记状态
  • task_id(整数):任务ID
  • page_num(整数,默认1):页码
  • page_size(整数,默认20):每页数量

示例请求

复制代码
http://127.0.0.1:8000/api/v1/chat/app/list?keyword=chat&mark_status=1&page_num=1&page_size=10

测试步骤

  1. 创建一个新的 GET 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/app/list,并添加查询参数(如上例)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": {
        "list": [
            {
                "user_name": "John Doe",
                "flow_name": "ChatFlow",
                "flow_type": "flow",
                "other_fields": "..."
            },
            // 更多记录...
        ],
        "total": 50
    }
}

2.3 GET /chat/history

描述:获取指定聊天的历史消息。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/history

Headers

  • Authorization: Bearer your_jwt_token

参数(通过 URL 查询参数):

  • chat_id(字符串,必填):聊天ID
  • flow_id(字符串,必填):流ID
  • id(字符串,可选):用于分页,获取ID小于指定值的消息
  • page_size(整数,默认20):每页数量

示例请求

复制代码
http://127.0.0.1:8000/api/v1/chat/history?chat_id=chat123&flow_id=flow456&page_size=10

测试步骤

  1. 创建一个新的 GET 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/history,并添加必要的查询参数。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": [
        {
            "id": 1,
            "flow_id": "flow456",
            "chat_id": "chat123",
            "user_id": 1,
            "is_bot": false,
            "message": "Hello!",
            "type": "human",
            "category": "question",
            "create_time": "2024-04-27T12:34:56",
            "update_time": "2024-04-27T12:35:00"
        },
        // 更多消息...
    ]
}

2.4 DELETE /chat/{chat_id}

描述:删除指定聊天记录及相关数据。

方法 :DELETE
URLhttp://127.0.0.1:8000/api/v1/chat/{chat_id}
示例http://127.0.0.1:8000/api/v1/chat/chat123

Headers

  • Authorization: Bearer your_jwt_token

测试步骤

  1. 创建一个新的 DELETE 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/chat123(将 chat123 替换为实际的 chat_id)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "删除成功"
}

2.5 POST /chat/message

描述:添加一条完整的问答记录,包括用户的提问和机器人的回答。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/chat/message

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "flow_id": "flow456",
    "chat_id": "chat123",
    "human_message": "What is the weather today?",
    "answer_message": "The weather today is sunny with a high of 25°C."
}

测试步骤

  1. 创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/message

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "添加成功"
}

2.6 PUT /chat/message/{message_id}

描述:更新指定消息的内容。

方法 :PUT
URLhttp://127.0.0.1:8000/api/v1/chat/message/{message_id}
示例http://127.0.0.1:8000/api/v1/chat/message/1

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "message": "Updated message content."
}

测试步骤

  1. 创建一个新的 PUT 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/message/1(将 1 替换为实际的 message_id)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "更新成功"
}

2.7 DELETE /chat/message/{message_id}

描述:删除指定的消息。

方法 :DELETE
URLhttp://127.0.0.1:8000/api/v1/chat/message/{message_id}
示例http://127.0.0.1:8000/api/v1/chat/message/1

Headers

  • Authorization: Bearer your_jwt_token

测试步骤

  1. 创建一个新的 DELETE 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/message/1(将 1 替换为实际的 message_id)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "删除成功"
}

2.8 POST /liked

描述:为指定消息添加点赞状态。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/liked

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "message_id": 1,
    "liked": true
}

测试步骤

  1. 创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/liked

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "操作成功"
}

2.9 POST /chat/copied

描述:更新指定消息的复制状态。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/chat/copied

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "message_id": 1
}

测试步骤

  1. 创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/copied

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "操作成功"
}

2.10 POST /chat/comment

描述:为指定消息添加评论。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/chat/comment

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "message_id": 1,
    "comment": "Great response!"
}

测试步骤

  1. 创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/comment

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "操作成功"
}

2.11 GET /chat/list

描述:获取用户的聊天列表,包括每个聊天的最后一条消息和相关信息。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/list

Headers

  • Authorization: Bearer your_jwt_token

参数(通过 URL 查询参数):

  • page(整数,默认1):页码
  • limit(整数,默认10):每页数量

示例请求

复制代码
http://127.0.0.1:8000/api/v1/chat/list?page=1&limit=10

测试步骤

  1. 创建一个新的 GET 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/list,并添加必要的查询参数。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": [
        {
            "flow_name": "ChatFlow",
            "flow_description": "A flow for chatting",
            "flow_id": "flow456",
            "flow_type": "flow",
            "chat_id": "chat123",
            "logo": "http://example.com/logo.png",
            "create_time": "2024-04-27T12:34:56",
            "update_time": "2024-04-27T12:35:00",
            "latest_message": {
                "id": 2,
                "flow_id": "flow456",
                "chat_id": "chat123",
                "user_id": 1,
                "is_bot": true,
                "message": "I'm good, thank you!",
                "type": "bot",
                "category": "answer",
                "create_time": "2024-04-27T12:35:00",
                "update_time": "2024-04-27T12:35:00"
            }
        },
        // 更多聊天记录...
    ]
}

2.12 GET /chat/online

描述:获取所有已上线的技能和助手,支持关键词和标签筛选。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/online

Headers

  • Authorization: Bearer your_jwt_token

参数(通过 URL 查询参数):

  • keyword(字符串,可选):搜索关键词
  • tag_id(整数,可选):标签ID
  • page(整数,默认1):页码
  • limit(整数,默认10):每页数量

示例请求

复制代码
http://127.0.0.1:8000/api/v1/chat/online?keyword=assistant&tag_id=2&page=1&limit=10

测试步骤

  1. 创建一个新的 GET 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/online,并添加必要的查询参数。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": [
        {
            "id": "flow456",
            "name": "AssistantFlow",
            "desc": "An assistant flow",
            "logo": "http://example.com/assistant_logo.png",
            "count": 10,
            "create_time": "2024-04-25T10:00:00",
            "update_time": "2024-04-27T12:00:00",
            "flow_type": "assistant"
        },
        // 更多记录...
    ]
}

2.13 WebSocket /chat/{flow_id}

描述:WebSocket端点,用于实时聊天功能。

方法 :WebSocket
URLws://127.0.0.1:7860/api/v1/chat/{flow_id}?chat_id={chat_id}&t={access_token}

参数

  • flow_id(路径参数):流ID
  • chat_id(查询参数,可选):聊天ID
  • t(查询参数,可选):JWT认证令牌

测试步骤

Postman 支持 WebSocket 连接。以下是使用 Postman 测试 WebSocket 的步骤:

  1. 打开 Postman

  2. 创建新的 WebSocket请求

    • 点击左上角的 New 按钮,选择 WebSocket Request

    • 输入 WebSocket URL,例如:

      复制代码
      ws://127.0.0.1:7860/api/v1/chat/flow456?chat_id=chat123&t=your_jwt_token

      替换

      复制代码
      flow456

      复制代码
      chat123

      复制代码
      your_jwt_token

      为实际值。

  3. 连接到 WebSocket

    • 点击 Connect 按钮建立连接。
    • 连接成功后,Postman 会显示连接状态。
  4. 发送消息

    • 复制代码
      Messages

      面板中,输入要发送的消息。例如:

      json 复制代码
      {
          "message": "Hello, how can I help you today?",
          "flow_id": "flow456",
          "chat_id": "chat123"
      }
    • 点击 Send 发送消息。

  5. 接收响应

    • Postman 会在 Messages 面板中显示来自服务器的响应消息。

预期响应

json 复制代码
{
    "type": "bot",
    "message": "Hello! I'm here to assist you.",
    "flow_id": "flow456",
    "chat_id": "chat123",
    "status": "init"
}

注意 :根据 chat/manager.py 中的逻辑,WebSocket 连接会处理接收到的消息,并通过 ChatManager 返回相应的响应。响应的具体内容取决于后端的实现。


2.14 POST /build/init/{flow_id}

描述:初始化构建流程,存储图数据并返回唯一的会话ID。

方法 :POST
URLhttp://127.0.0.1:8000/api/v1/chat/build/init/{flow_id}
示例http://127.0.0.1:8000/api/v1/chat/build/init/flow456

Headers

  • Authorization: Bearer your_jwt_token
  • Content-Type: application/json

参数(通过路径参数和请求体):

  • flow_id(路径参数,必填):流ID
  • version_id(查询参数,可选):技能版本ID

Body (选择 raw 并选择 JSON 格式):

json 复制代码
{
    "chat_id": "chat123",
    "other_graph_data_fields": "..."
}

测试步骤

  1. 创建一个新的 POST 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/build/init/flow456,并根据需要添加查询参数(如 version_id)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
    • Content-Type: application/json
  4. Body 标签下,选择 raw,然后选择 JSON 格式,粘贴上面的 JSON。

  5. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": {
        "flowId": "flow456"
    }
}

2.15 GET /build/{flow_id}/status

描述:检查指定流ID的构建状态。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/build/{flow_id}/status
示例http://127.0.0.1:8000/api/v1/chat/build/flow456/status

Headers

  • Authorization: Bearer your_jwt_token

参数(通过路径参数和查询参数):

  • flow_id(路径参数,必填):流ID
  • chat_id(查询参数,可选):聊天ID
  • version_id(查询参数,可选):技能版本ID

测试步骤

  1. 创建一个新的 GET 请求。

  2. 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/build/flow456/status,并根据需要添加查询参数(如 chat_idversion_id)。

  3. 复制代码
    Headers

    标签下,添加:

    • Authorization: Bearer your_jwt_token
  4. 点击 Send 发送请求。

预期响应

json 复制代码
{
    "code": 200,
    "message": "成功",
    "data": {
        "built": true
    }
}

2.16 GET /build/stream/{flow_id}

描述:基于存储的流数据,流式返回构建过程。

方法 :GET
URLhttp://127.0.0.1:8000/api/v1/chat/build/stream/{flow_id}
示例http://127.0.0.1:8000/api/v1/chat/build/stream/flow456

Headers

  • Authorization: Bearer your_jwt_token

参数(通过路径参数和查询参数):

  • flow_id(路径参数,必填):流ID
  • chat_id(查询参数,可选):聊天ID
  • version_id(查询参数,可选):技能版本ID

测试步骤

  1. 使用 Postman 的 Streaming 功能

    • 创建一个新的 GET 请求。

    • 设置 URL 为 http://127.0.0.1:8000/api/v1/chat/build/stream/flow456,并根据需要添加查询参数(如 chat_idversion_id)。

    • 复制代码
      Headers

      标签下,添加:

      • Authorization: Bearer your_jwt_token
    • 点击 Send 按钮。

  2. 查看流式响应

    • Postman 会以流式的方式显示响应数据,每当后端有新的数据发送时,Postman 会即时显示。

    • 你会看到类似以下的响应块:

      json 复制代码
      {"event": "message", "data": {"input_keys": [...], "memory_keys": [...], "handle_keys": [...]}}
      {"event": "message", "data": {"end_of_stream": true}}
    • 如果发生错误,可能会看到:

      json 复制代码
      {"event": "error", "data": {"error": "Error message"}}

预期响应

  • 构建进行中

    json 复制代码
    {"event": "message", "data": {"input_keys": [...], "memory_keys": [...], "handle_keys": [...]}}
  • 构建完成

    json 复制代码
    {"event": "message", "data": {"end_of_stream": true}}
  • 错误发生

    json 复制代码
    {"event": "error", "data": {"error": "具体错误信息"}}

注意:Postman 的 StreamingResponse 显示可能有限。如果需要更详细的流式数据监控,建议使用专用的工具或编写简单的 WebSocket/SSE 客户端。


3. 常见问题与解决方案

3.1 认证失败

问题 :请求返回 401 Unauthorized 或类似错误。

解决方案

  • 确保在 Authorization 头中包含有效的 JWT 令牌,格式为 Bearer your_jwt_token
  • 检查 JWT 令牌是否过期。
  • 确认令牌生成时的 subjectexpires_time 是否正确。

3.2 WebSocket 连接问题

问题

  • 无法建立 WebSocket 连接。
  • 发送消息后没有收到响应。

解决方案

  • 确认 WebSocket 端点 URL 正确,使用 ws://wss:// 协议。
  • 确保后端服务正在运行并监听正确的端口。
  • 检查 JWT 令牌是否正确传递。
  • 查看后端日志,确认是否有错误信息。

3.3 流式响应显示不完整

问题:Postman 无法正确显示流式响应。

解决方案

  • 确保使用支持流式响应的客户端工具。虽然 Postman 支持 WebSocket,但其对流式 HTTP 响应的支持有限。
  • 考虑使用其他工具,如 cURL 或专用的 WebSocket/SSE 客户端。
  • 在 Postman 中,确保请求的 Accept 头设置为 text/event-stream(如果适用)。

3.4 请求参数错误

问题 :API 返回 400 Bad Request,提示参数错误。

解决方案

  • 检查请求中是否包含所有必填参数。
  • 确认参数的类型和格式是否正确。例如,chat_id 应为字符串,page_size 应为整数。
  • 使用 JSON 验证工具,确保请求体的 JSON 格式正确。

4. 总结

通过以上详细的步骤和示例,你应该能够使用 Postman 测试项目中的各个接口,包括 RESTful API 和 WebSocket 端点。以下是一些关键点的回顾:

  1. 认证处理 :大多数接口依赖于 JWT 认证,确保在请求头中正确设置 Authorization 头。
  2. 请求构造:根据接口需求,正确设置请求方法、URL、参数、头和体。
  3. 流式响应 :对于返回 StreamingResponse 的接口,Postman 的支持有限,必要时使用更合适的工具。
  4. 错误处理:通过检查响应状态码和错误信息,快速定位和解决问题。
  5. 日志分析:在后端遇到问题时,通过日志可以帮助你快速找到问题根源。

进一步建议

  • 自动化测试:考虑使用 Postman 的集合(Collections)和环境(Environments)功能,编写自动化测试脚本,提高测试效率。
  • 文档生成:使用 OpenAPI(Swagger)自动生成 API 文档,方便测试和维护。
  • 持续集成:将 Postman 测试集成到 CI/CD 流程中,确保每次代码变更后接口依然正常工作。

通过系统性的测试和持续的优化,你将能够确保项目中的各个接口功能稳定、可靠,并提供良好的用户体验。

多轮对话测试

在接口设计中,多轮对话一般指的是一个持续的聊天会话,其中用户和系统之间的交互是基于之前的对话上下文进行的。对于需要与后端进行多轮对话的接口测试,可以使用 Postman 来模拟这些交互过程,确保接口的正确性和响应。

以下是如何使用 Postman 测试支持多轮对话接口的步骤:

1. 理解接口请求结构

首先,需要了解多轮对话接口的设计。比如,你提到的 /chat/completions 接口,通过 messages 字段发送对话内容。通常这些请求会包括以下字段:

  • messages: 传递每轮对话的消息列表,通常包括当前消息以及之前的消息(上下文)。
  • session_id: 标识会话的唯一 ID,保证多轮对话的连续性。
  • model: 用来标识当前对话使用的模型,可能是 OpenAI 或自定义的模型。
  • streaming: 是否支持流式返回数据。
2. 使用 Postman 测试多轮对话的流程
步骤 1: 创建一个新的会话(获取 session_id

大部分多轮对话系统会通过 session_id 来标识会话,如果你没有现成的 session_id,可以尝试:

  • 发送一个初始的聊天请求 (比如 /chat/completions),但不包括任何历史消息,或者只传递第一轮对话的消息。通常,系统会自动生成一个新的 session_id

例如,发送一个请求:

json 复制代码
{
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "user",
      "content": "你好,系统!"
    }
  ]
}

响应中通常会返回一个新的 session_id,比如:

json 复制代码
{
  "session_id": "12345abcde"
}
步骤 2: 使用 session_id 进行多轮对话

一旦获得了 session_id,你可以使用它来进行后续的多轮对话。每次发送请求时,除了当前的用户消息,还需要带上 session_id,以保证对话的连续性。

例如:

json 复制代码
{
  "session_id": "12345abcde",
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "user",
      "content": "请告诉我关于人工智能的简介"
    }
  ]
}

响应可能会是:

json 复制代码
{
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "system",
      "content": "人工智能(AI)是模拟人类智能的技术..."
    }
  ]
}
步骤 3: 继续对话(发送多轮消息)

基于上一步的响应,你可以继续发送新的消息。记得每次都带上 session_id,系统会利用历史消息来生成基于上下文的回答。

例如:

json 复制代码
{
  "session_id": "12345abcde",
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "user",
      "content": "人工智能的应用有哪些?"
    }
  ]
}

响应示例:

json 复制代码
{
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "system",
      "content": "人工智能有广泛的应用,包括自动驾驶、语音识别、推荐系统等..."
    }
  ]
}
步骤 4: 测试流式返回(如果适用)

如果该接口支持流式返回(streaming=true),你可以通过设置 streaming=true 来测试如何接收实时数据。流式返回通常会将消息分成多个部分逐步返回,可以模拟实时聊天过程。

例如,使用 Postman 的流式请求:

json 复制代码
{
  "session_id": "12345abcde",
  "model": "chat-model-v1",
  "messages": [
    {
      "role": "user",
      "content": "实时聊天测试"
    }
  ],
  "streaming": true
}

你可以在 Postman 的 Console 中查看分批返回的数据。

3. 模拟用户行为与状态管理

为了更好地模拟多轮对话,你还可以考虑:

  • 在不同的请求之间使用环境变量 :在 Postman 中,你可以创建环境变量来存储 session_id 和其他动态数据(如用户 ID、Token 等)。这样每次发送请求时,可以动态插入这些变量。

例如:

  • 创建环境变量 session_id,将其设置为从第一次请求中获取的 session_id
  • 在后续请求中引用 {``{session_id}} 变量。
4. Postman 测试策略
  • 模拟不同的对话场景:可以创建多个请求,模拟不同的用户交互场景。
  • 断言和验证响应 :利用 Postman 的断言功能(例如 pm.test())来检查响应是否符合预期,例如验证返回的消息是否正确、session_id 是否一致等。
  • 性能测试 :你可以设置 Postman 的 Collection RunnerNewman 来批量执行请求,测试系统在多轮对话下的性能。

5. WebSocket 测试(如果接口支持)

如果接口是 WebSocket 类型(如 /chat/{flow_id}),你也可以通过 Postman 的 WebSocket 测试功能来进行多轮对话的交互。你可以发送消息并实时接收流式响应来模拟多轮对话。

Postman WebSocket 测试步骤:

  • 打开 Postman,点击 New -> WebSocket Request
  • 输入 WebSocket URL,例如:ws://127.0.0.1:7860/api/v1/chat/{flow_id}
  • 连接后发送消息,并观察返回的流式数据。

总结

  1. 使用 Postman 测试多轮对话接口时,首先确保能够通过 session_id 维持会话状态。
  2. 通过多次请求、逐步发送用户消息并携带 session_id,模拟整个对话流程。
  3. 如果支持流式返回,确保使用 streaming=true 参数,并监控实时数据返回。
  4. 使用 Postman 的环境变量和自动化功能,确保测试的一致性和高效性。
相关推荐
FAREWELL000751 小时前
Lua学习记录(3) --- Lua中的复杂数据类型_table
开发语言·学习·lua
IT19957 小时前
Wireshark笔记-DNS流程与数据包解析
笔记·测试工具·wireshark
Hacker_Fuchen9 小时前
外包干了一个月,技术明显进步。。。。。
自动化测试·软件测试·测试工具·职场和发展
测试199821 小时前
Appium使用指南与自动化测试案例详解
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
程序员三藏2 天前
快速弄懂POM设计模式
自动化测试·软件测试·python·selenium·测试工具·设计模式·职场和发展
程序员三藏2 天前
使用Docker和Selenium构建自动化测试环境
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
让世界再也没有bug2 天前
JMeter与Postman的区别
测试工具·jmeter·postman
天道有情战天下2 天前
Lua使用
开发语言·lua
优测云服务平台2 天前
质效飞跃,优测金融数智质效解决方案全新升级!
测试工具·金融
minglie13 天前
Wireshark抓HTTPS协议包
网络·测试工具·wireshark