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 的环境变量和自动化功能,确保测试的一致性和高效性。
相关推荐
染指11101 小时前
50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
c++·windows·lua·游戏安全·反游戏外挂·游戏逆向·luastudio
Heaven6452 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
Blankspace学4 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark
低调之人4 小时前
Fiddler勾选https后google浏览器网页访问不可用
前端·测试工具·https·fiddler·hsts
utmhikari5 小时前
【Python随笔】如何用pyside6开发并部署简单的postman工具
python·postman·pyqt·pyside6·桌面工具
测试老哥7 小时前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
spencer_tseng9 小时前
WeakAuras NES Script(lua)
lua·wow·nes·weakauras
红黑色的圣西罗16 小时前
xlua中自定义lua文件加载的一种方式
lua
法外狂徒张三!18 小时前
Roblox踩坑1——动画无法完整播放
lua·roblox
大霞上仙18 小时前
selenium 在已打开浏览器上继续调试
python·selenium·测试工具