项目场景:

调用Deepseek API-Key的时候我常会想:

        我向同一个API-Key同时发送三个不同的问题,他是按照顺序依次返回结果?(线性)还是哪一个问题先回答完成哪一个问题先返回结果?(并行)


实验准备:

问题分析:单个用户使用Deepseek API-Key的响应模式是线性还是并行的?

工具与材料:

1.测试工具:Apache JMeter (非GUI模式压测)

2.测试材料:Deepseek API (https://api.deepseek.com)

3.实验资产:Deepseek API-Key (需从Deepseek官网充值)


实验步骤:

实验简介:利用JMeter设置多个线程组接入Deepseek API进行循环测试

总体框架:

1.添加线程组(Thread Group)

        添加三个不同的线程组(Thread Group),这里每个线程组我设置的是一个线程数,循环次数采用了无限循环(此处为了验证线性or并行,可以手动停止后观察每次启动进程的分界)。

2.添加HTTP请求采样器(HTTP Request)

        在JMeter中HTTP请求采样器的核心作用是模拟HTTP下客户端的请求,并向服务器发送请求获得回应。在其中填写相对应的Web服务器的协议,IP,端口号以及HTTP请求的路径。由于三个线程使用的是相同的Web服务器以及HTTP请求路径,所以我在开头新添了一个HTTP请求默认值,这样就可以避免反复填写相同信息,并在每个线程组下创立其独特的HTTP请求,以便后续操作。

3.添加HTTP信息头管理器(HTTP Header Manager)

        新添HTTP信息头管理器,创建头部信息填写名称和值。Bearer后的API本人自用已隐藏。

4.添加请求体(JSON Body)

        回到HTTP请求的配置页面,在消息体数据中粘贴JSON请求体。

线程组(你是谁?)的JSON请求体:

{
  "model": "deepseek-chat",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你是谁?"}
  ],
  "stream": false
}

线程组(1+1=?)的JSON请求体:         

{
  "model": "deepseek-chat",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "1+1等于几?"}
  ],
  "stream": false
}

线程组(大学生就业情况?)的JSON请求体: 

{
  "model": "deepseek-chat",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "你怎么看待当下大学生就业情况"}
  ],
  "stream": false
}

5.添加监听器查看结果:

由于为了更好查看每个进程的开始结束时间,我使用了“用表格查看结果”的监听器,从而可以清晰的看到每个请求的详细结果。


实验结果与分析:

上述实验步骤结束后,初次运行JMeter,得到了以下的表格数据:

通过以上表格数据我们可以具体分析:

1.三个样本的起始时间分析:

        第一次测试三个样本的开始时间均为16:14:18.853

        第二次测试三个样本的开始时间均为16:15:24.608

这两组数据则可以看出,这三个请求是同时发起的,但是响应时间并不一样,可以说明API没有严格按照顺序依次执行,而是同时响应的并行处理。

2.后续交叉返回:

表格中三个样本的返回顺序,并不是按照一定规律,而是交叉返回。说明返回顺序与发送请求顺序无关,更一步验证了并行处理的结果。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐