1. 测试计划整体架构与设计思路

本教程将详细讲解如何构建一个完整的JMeter测试计划,用于评估通义千问(Qwen)大模型API在高并发场景下的每秒查询率(QPS)性能。JMeter测试计划采用XML格式(.jmx文件),其结构遵循严格的层次化设计,所有测试元件通过<hashTree>标签组织成树状结构。

步骤一:理解JMX文件根结构

测试计划文件以<jmeterTestPlan>作为根元素,声明JMeter版本信息。在本配置中使用的是JMeter 5.6.3版本:

<?xml version="1.0" encoding="utf-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.6.3">
  <hashTree>
    <!-- 测试计划主体内容 -->
  </hashTree>
</jmeterTestPlan>

步骤二:配置TestPlan主节点

<TestPlan>元素定义测试计划的基本属性,包括名称、注释和执行模式:

<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="通义千问API QPS性能测试" enabled="true">
  <stringProp name="TestPlan.comments">用于测试通义千问API的QPS性能和并发能力</stringProp>
  <boolProp name="TestPlan.functional_mode">false</boolProp>
  <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
  <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
</TestPlan>

属性名称

配置值

功能说明

functional_mode

false

关闭功能测试模式,启用性能测试模式

tearDown_on_shutdown

true

测试结束时执行清理操作

serialize_threadgroups

false

允许线程组并行执行

测试计划组件层次结构

整个测试计划按照以下层次组织,确保各组件协同工作:

层级

组件类型

组件名称

作用

第1层

配置元件

API配置变量

定义全局参数

第2层

线程组

QPS测试线程组

控制并发执行

第3层

配置元件

HTTP请求默认值/信息头管理器

预设HTTP参数

第3层

采样器

通义千问API请求

发送实际请求

第4层

定时器

固定/高斯随机定时器

控制请求间隔

第4层

断言

状态码/JSON/持续时间断言

验证响应

第3层

监听器

聚合报告等5种监听器

收集结果

2. 用户自定义变量配置

用户自定义变量是JMeter实现参数化配置的核心机制,通过将API密钥、服务器地址等可变内容提取为变量,既便于维护又增强了测试计划的可移植性。

步骤一:创建Arguments配置元件

在测试计划节点下添加<Arguments>元件,使用collectionProp容器存放所有变量定义:

<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="API配置变量" enabled="true">
  <stringProp name="TestPlan.comments">配置通义千问API相关参数</stringProp>
  <collectionProp name="Arguments.arguments">
    <!-- 变量定义列表 -->
  </collectionProp>
</Arguments>

步骤二:定义API_KEY变量

API密钥是调用通义千问API的身份凭证,必须配置为用户自定义变量以便灵活替换:

<elementProp name="API_KEY" elementType="Argument">
  <stringProp name="Argument.name">API_KEY</stringProp>
  <stringProp name="Argument.value">YOUR_API_KEY_HERE</stringProp>
  <stringProp name="Argument.desc">请替换为您的通义千问API密钥</stringProp>
  <stringProp name="Argument.metadata">=</stringProp>
</elementProp>

步骤三:定义BASE_URL变量

指定DashScope平台的API服务器域名:

<elementProp name="BASE_URL" elementType="Argument">
  <stringProp name="Argument.name">BASE_URL</stringProp>
  <stringProp name="Argument.value">dashscope.aliyuncs.com</stringProp>
  <stringProp name="Argument.desc">API服务器地址</stringProp>
  <stringProp name="Argument.metadata">=</stringProp>
</elementProp>

步骤四:定义MODEL和TIMEOUT变量

MODEL变量控制测试使用的模型,TIMEOUT设置请求超时阈值:

<elementProp name="MODEL" elementType="Argument">
  <stringProp name="Argument.name">MODEL</stringProp>
  <stringProp name="Argument.value">qwen-turbo</stringProp>
  <stringProp name="Argument.desc">使用的模型名称</stringProp>
  <stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="TIMEOUT" elementType="Argument">
  <stringProp name="Argument.name">TIMEOUT</stringProp>
  <stringProp name="Argument.value">30000</stringProp>
  <stringProp name="Argument.desc">请求超时时间(毫秒)</stringProp>
  <stringProp name="Argument.metadata">=</stringProp>
</elementProp>

变量配置汇总表

变量名

默认值

用途

引用方式

API_KEY

YOUR_API_KEY_HERE

API身份认证

${API_KEY}

BASE_URL

dashscope.aliyuncs.com

服务器地址

${BASE_URL}

MODEL

qwen-flash

测试模型

${MODEL}

TIMEOUT

30000

超时时间(ms)

${TIMEOUT}

3. 线程组详细配置

线程组是JMeter性能测试的执行引擎,通过配置线程数量、启动策略和循环次数来模拟真实的并发用户行为。精确的线程组配置是获得可靠QPS测试结果的关键。

步骤一:创建ThreadGroup基础结构

线程组通过<ThreadGroup>元素定义,包含多个关键属性控制执行行为:

<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="QPS测试线程组" enabled="true">
  <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
  <!-- 详细配置参数 -->
</ThreadGroup>

on_sample_error属性设置为continue,确保单个请求失败不会中断整个测试流程。

步骤二:配置并发线程数(num_threads)

num_threads参数决定模拟的并发用户数量,直接影响测试压力强度:

<stringProp name="ThreadGroup.num_threads">10</stringProp>

配置为10个线程意味着最多有10个虚拟用户同时发送请求。线程数的选择需要考虑API的并发限制和测试机器的资源能力。

步骤三:配置Ramp-Up时间(ramp_time)

Ramp-Up时间控制线程启动的渐进性,避免瞬时流量冲击:

<stringProp name="ThreadGroup.ramp_time">10</stringProp>

设置为10秒表示10个线程将在10秒内逐步启动,即每秒启动1个新线程。这种渐进式加压更接近真实场景,也便于观察系统在不同负载下的性能表现。

步骤四:启用调度器控制测试时长(scheduler/duration)

通过调度器可以精确控制测试的运行时长:

<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">60</stringProp>
<stringProp name="ThreadGroup.delay">0</stringProp>

参数

说明

scheduler

true

启用调度器功能

duration

60

测试持续60秒后自动停止

delay

0

无启动延迟,立即开始

步骤五:配置循环控制器(LoopController)

循环控制器定义每个线程执行请求的次数:

<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="循环控制器" enabled="true">
  <boolProp name="LoopController.continue_forever">false</boolProp>
  <stringProp name="LoopController.loops">100</stringProp>
</elementProp>

配置100次循环意味着每个线程将执行100次请求。由于同时启用了60秒的duration限制,实际执行以先达到的条件为准——如果60秒内未完成100次循环则测试自动结束。

线程组参数对照表

参数名称

XML属性

配置值

计算说明

并发用户数

num_threads

10

最大同时活跃线程数

启动时间

ramp_time

10秒

线程启动速率=10/10=1个/秒

循环次数

loops

100

理论最大请求数=10×100=1000

持续时间

duration

60秒

实际测试时长上限

理论QPS上限

-

-

1000/60≈16.7(不含定时器延迟)

4. HTTP请求配置

HTTP请求配置是与通义千问API交互的核心部分,需要精确设置服务器连接参数、认证头和符合API规范的请求体。

4.1 HTTP请求默认值配置

步骤一:创建ConfigTestElement

HTTP请求默认值为所有HTTP请求预设通用参数,避免重复配置:

<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP请求默认值" enabled="true">
  <stringProp name="HTTPSampler.domain">${BASE_URL}</stringProp>
  <stringProp name="HTTPSampler.port">443</stringProp>
  <stringProp name="HTTPSampler.protocol">https</stringProp>
  <stringProp name="HTTPSampler.connect_timeout">${TIMEOUT}</stringProp>
  <stringProp name="HTTPSampler.response_timeout">${TIMEOUT}</stringProp>
</ConfigTestElement>

属性

说明

domain

${BASE_URL}

引用变量,实际值为dashscope.aliyuncs.com

port

443

HTTPS标准端口

protocol

https

使用HTTPS加密协议

connect_timeout

${TIMEOUT}

连接超时30秒

response_timeout

${TIMEOUT}

响应超时30秒

4.2 HTTP信息头管理器配置

步骤二:配置认证和内容类型头

通义千问API需要Bearer Token认证和JSON内容类型声明:

<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP信息头管理器" enabled="true">
  <collectionProp name="HeaderManager.headers">
    <elementProp name="" elementType="Header">
      <stringProp name="Header.name">Authorization</stringProp>
      <stringProp name="Header.value">Bearer ${API_KEY}</stringProp>
    </elementProp>
    <elementProp name="" elementType="Header">
      <stringProp name="Header.name">Content-Type</stringProp>
      <stringProp name="Header.value">application/json</stringProp>
    </elementProp>
    <elementProp name="" elementType="Header">
      <stringProp name="Header.name">X-DashScope-SSE</stringProp>
      <stringProp name="Header.value">disable</stringProp>
    </elementProp>
  </collectionProp>
</HeaderManager>

HTTP头配置说明表

头名称

作用

Authorization

Bearer ${API_KEY}

API身份认证,${API_KEY}运行时替换为真实密钥

Content-Type

application/json

声明请求体为JSON格式

X-DashScope-SSE

disable

禁用流式输出,获取完整响应便于性能测量

4.3 HTTPSamplerProxy请求体配置

步骤三:构造POST请求采样器

HTTP请求采样器是实际发送API请求的组件,需要配置请求方法、路径和JSON请求体:

<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="通义千问API请求" enabled="true">
  <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
  <stringProp name="HTTPSampler.method">POST</stringProp>
  <stringProp name="HTTPSampler.path">/api/v1/services/aigc/text-generation/generation</stringProp>
  <!-- 请求体配置 -->
</HTTPSamplerProxy>

步骤四:编写符合API规范的JSON请求体

通义千问API要求特定的JSON结构,包含model、input和parameters三个顶级字段:

{
  "model": "${MODEL}",
  "input": {
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
        "role": "user",
        "content": "请用一句话介绍人工智能。"
      }
    ]
  },
  "parameters": {
    "result_format": "message",
    "max_tokens": 100,
    "temperature": 0.7
  }
}

请求体参数说明

字段路径

说明

model

${MODEL}

使用qwen-turbo模型

input.messages

数组

对话消息列表

parameters.result_format

message

返回消息格式

parameters.max_tokens

100

限制输出长度以控制成本

parameters.temperature

0.7

生成随机性参数

5. 定时器配置

定时器用于控制请求之间的间隔时间,既能模拟真实用户行为,又能避免过于密集的请求触发API限流。本测试计划采用固定定时器与高斯随机定时器组合的策略。

步骤一:配置固定定时器

固定定时器在每个请求前添加恒定的等待时间:

<ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="固定定时器" enabled="true">
  <stringProp name="ConstantTimer.delay">100</stringProp>
</ConstantTimer>

delay属性设置为100毫秒,意味着每次请求前至少等待0.1秒。这确保了请求频率的基本控制。

步骤二:配置高斯随机定时器

高斯随机定时器在固定延迟基础上增加随机波动,使请求模式更接近真实场景:

<GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="高斯随机定时器" enabled="true">
  <stringProp name="ConstantTimer.delay">100</stringProp>
  <stringProp name="RandomTimer.range">300</stringProp>
</GaussianRandomTimer>

定时器计算公式

高斯随机定时器的实际延迟遵循正态分布:

  • 固定基础延迟:100ms

  • 随机偏差范围:±300ms(实际偏差服从标准差为range/3的正态分布)

  • 实际延迟范围:约0ms~400ms(中心在100ms)

定时器组合效果

定时器类型

延迟值

叠加效果

固定定时器

100ms

每次请求必定等待100ms

高斯随机定时器

100±300ms

在固定延迟基础上叠加随机延迟

总延迟范围

100~500ms

平均约300ms,符合真实用户行为

两个定时器的延迟会叠加生效,使得每次请求间隔在200ms~500ms之间波动,平均约300ms,换算为单线程理论QPS约3.3次/秒。

6. 断言配置

断言是JMeter验证响应正确性的机制。在QPS测试中,断言不仅用于功能验证,还直接影响测试结果中的成功/失败统计。本测试计划配置了三种互补的断言类型。

6.1 HTTP状态码断言

步骤一:配置ResponseAssertion验证HTTP 200

HTTP状态码断言检查服务器返回的响应状态:

<ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="HTTP状态码断言" enabled="true">
  <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
  <stringProp name="Assertion.assume_success">false</stringProp>
  <intProp name="Assertion.test_type">8</intProp>
  <collectionProp name="Asserion.test_strings">
    <stringProp name="49586">200</stringProp>
  </collectionProp>
</ResponseAssertion>

属性

说明

test_field

Assertion.response_code

检查响应状态码

test_type

8

匹配模式:等于

test_strings

200

期望状态码为HTTP 200 OK

6.2 JSON路径断言

步骤二:配置JSONPathAssertion验证输出字段

JSON路径断言用于验证响应体中是否包含预期的数据结构:

<JSONPathAssertion guiclass="JSONPathAssertionGui" testclass="JSONPathAssertion" testname="JSON路径断言" enabled="true">
  <stringProp name="JSON_PATH">$.output</stringProp>
  <stringProp name="EXPECTED_VALUE"/>
  <boolProp name="JSONVALIDATION">false</boolProp>
  <boolProp name="EXPECT_NULL">false</boolProp>
  <boolProp name="INVERT">false</boolProp>
  <boolProp name="ISREGEX">true</boolProp>
</JSONPathAssertion>

JSON_PATH设置为$.output,验证通义千问API响应中包含output字段。EXPECTED_VALUE为空表示只检查字段存在性,不验证具体内容。

6.3 持续时间断言

步骤三:配置DurationAssertion设置超时阈值

持续时间断言确保响应时间不超过预设阈值:

<DurationAssertion guiclass="DurationAssertionGui" testclass="DurationAssertion" testname="持续时间断言" enabled="true">
  <stringProp name="DurationAssertion.duration">30000</stringProp>
</DurationAssertion>

duration设置为30000毫秒(30秒),超过此时间的响应将被标记为失败,与TIMEOUT变量保持一致。

断言配置汇总

断言类型

检查内容

阈值/期望值

失败含义

HTTP状态码断言

响应状态码

200

服务器返回错误

JSON路径断言

$.output字段

存在即可

响应格式异常

持续时间断言

响应耗时

≤30000ms

响应超时

7. 结果聚合报告配置

监听器是JMeter收集和展示测试结果的组件。本测试计划配置了5种不同类型的监听器,覆盖实时监控、统计分析和数据导出等多种需求。

步骤一:配置聚合报告(StatVisualizer)

聚合报告是最常用的性能统计组件,提供QPS、响应时间、错误率等核心指标:

<ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="聚合报告" enabled="true">
  <boolProp name="ResultCollector.error_logging">false</boolProp>
  <objProp>
    <name>saveConfig</name>
    <value class="SampleSaveConfiguration"/>
  </objProp>
  <stringProp name="filename"/>
</ResultCollector>

步骤二:配置查看结果树(ViewResultsFullVisualizer)

查看结果树展示每个请求的详细信息,便于调试和问题排查:

<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="查看结果树" enabled="true">
  <boolProp name="ResultCollector.error_logging">false</boolProp>
  <!-- 配置同上 -->
</ResultCollector>

步骤三:配置响应时间图(GraphVisualizer)

响应时间图以可视化方式展示延迟随时间的变化趋势:

<ResultCollector guiclass="GraphVisualizer" testclass="ResultCollector" testname="响应时间图" enabled="true">
  <!-- 配置同上 -->
</ResultCollector>

步骤四:配置汇总报告(SummaryReport)

汇总报告提供精简的统计摘要:

<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="汇总报告" enabled="true">
  <!-- 配置同上 -->
</ResultCollector>

步骤五:配置简单数据写入器(SimpleDataWriter)

简单数据写入器将原始测试数据导出为CSV文件,便于后续分析:

<ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="简单数据写入器" enabled="true">
  <objProp>
    <name>saveConfig</name>
    <value class="SampleSaveConfiguration">
      <time>true</time>
      <latency>true</latency>
      <timestamp>true</timestamp>
      <success>true</success>
      <label>true</label>
      <code>true</code>
      <message>true</message>
      <threadName>true</threadName>
      <bytes>true</bytes>
      <sentBytes>true</sentBytes>
      <url>true</url>
      <connectTime>true</connectTime>
    </value>
  </objProp>
  <stringProp name="filename">qps_test_results.csv</stringProp>
</ResultCollector>

监听器功能对照表

监听器类型

GUI类

输出形式

主要用途

聚合报告

StatVisualizer

统计表格

查看QPS/平均响应时间/错误率

查看结果树

ViewResultsFullVisualizer

树形列表

调试请求/响应详情

响应时间图

GraphVisualizer

折线图

观察延迟变化趋势

汇总报告

SummaryReport

简表

快速查看总体结果

简单数据写入器

SimpleDataWriter

CSV文件

导出原始数据深度分析

8. QPS计算方法和性能指标解读

QPS(Queries Per Second)是衡量API性能的核心指标,表示系统每秒能处理的查询请求数量。理解QPS的计算方法和相关指标对于准确评估测试结果至关重要。

生活比喻新建连接QPS和并发连接的关系:

新建连接 = 每秒进多少人

并发连接 = 商场里同时有多少人

连接存活时间 = 每个人逛多久

人进的快,待的久 = 商场里人就多(并发高)

步骤一:理解QPS的计算公式

JMeter聚合报告中的Throughput(吞吐量)即为实际测得的QPS:

QPS=测试持续时间(秒)总请求数​

例如:在60秒测试中完成了300次请求,则QPS = 300/60 = 5次/秒。

步骤二:解读关键性能指标

指标名称

计算方式

参考基准

优化方向

QPS/吞吐量

总样本÷时间

越高越好

增加并发、减少响应时间

平均响应时间

Σ响应时间÷样本数

越低越好

优化网络、选择快速模型

错误率

失败数÷总数×100%

<1%为佳

检查认证、网络、限流

90%响应时间

90%请求的响应上限

评估稳定性

优化长尾请求

标准差

响应时间离散程度

越小越稳定

识别性能波动

步骤三:理论QPS与实际QPS

本测试计划的理论QPS上限受以下因素制约:

因素

配置值

影响分析

并发线程数

10

最多10个请求并行

定时器延迟

200~500ms

单线程约2~5次/秒

API响应时间

约1~3秒

大模型推理耗时

理论单线程QPS

约0.3~0.5

受响应时间主导

理论总QPS

约3~5

10线程×单线程QPS

实际测试时,QPS主要受API响应时间限制,大模型推理通常需要1~3秒,因此实际QPS可能在3~10之间。

9. 实战操作指南与参数调优建议

9.1 测试执行步骤

步骤一:导入测试计划

启动Apache JMeter(5.0及以上版本),通过菜单"文件→打开"加载测试计划文件:

文件路径:qianwen_api_qps_test.jmx

步骤二:配置真实API密钥

在左侧树形结构中展开"测试计划",点击"API配置变量"节点,将API_KEY变量的值从YOUR_API_KEY_HERE修改为您在阿里云DashScope平台申请的真实API密钥。

步骤三:执行测试

点击工具栏绿色启动按钮(或按Ctrl+R)开始测试。测试将持续60秒后自动停止。

步骤四:查看结果

在"聚合报告"监听器中查看QPS(Throughput列)、平均响应时间、错误率等指标。

9.2 参数调优建议

根据不同测试目的,推荐以下配置方案:

测试场景

线程数

Ramp-Up

持续时间

定时器

适用说明

功能验证

2

2秒

30秒

保持默认

验证配置正确性

基线测试

5

5秒

60秒

保持默认

建立性能基准

标准压测

10

10秒

60秒

保持默认

常规性能评估

高压测试

30

30秒

120秒

减半

评估并发上限

极限测试

50

10秒

60秒

禁用

测试峰值承压能力

9.3 注意事项

类别

注意事项

建议措施

API限流

通义千问存在并发限制

查阅官方文档确认账户额度

费用控制

每次调用消耗Token

使用qwen-turbo,设置max_tokens=100

模型选择

不同模型响应速度差异大

QPS测试推荐qwen-turbo

网络环境

延迟影响测试结果

使用稳定网络或同区域云主机

结果分析

关注错误率异常

高错误率可能是限流导致

10. 生成文件路径

本教程涉及的JMeter测试计划文件:

  • JMX测试计划文件:qianwen_api_qps_test.jmx

  • 测试结果输出:qps_test_results.csv(测试执行后在JMeter工作目录生成)

该JMX文件为标准XML格式,兼容Apache JMeter 5.x版本,配置好保存下来可直接导入运行。使用前请确保已将API_KEY变量替换为有效的通义千问API密钥。

11. 配置和效果图展示(具体参可数根据具体情况进行调整)

提醒:Don't use GUI mode for load testing !only for Test creation and Test debugging.For load testing, use CLI Mode

12. API限频说明(并发线程数超过一定值就会出现限频)

通义千问(DashScope)API 的限频(Rate Limit)策略根据模型、用户类型(免费/付费)和具体服务等级而有所不同。以下是基于当前常见情况的总结,但最准确的限频信息请务必以阿里云平台官方文档为准

核心限频规则(典型参考)

用户类型 / 模型

默认 QPS (每秒请求数)

说明

免费用户

较低 (通常为 1-5 QPS)

为体验和轻量使用设计,例如qwen-turbo可能为 2 QPS。极易触发限流,不适合压测或生产。

付费用户(按量付费)

较高 (通常为 5-50 QPS 或更高)

基础商用级别。例如qwen-turbo可能默认为 20-50 QPS。具体额度在开通付费后可在控制台查看。

企业级/高需求用户

可协商 (可达数百甚至上千 QPS)

通过工单联系阿里云客服,根据业务需求和承诺用量申请提升配额。

关键特性与注意事项

  1. 限频维度:限频通常基于 API Key 进行。同一个账户下的不同Key可能有独立或共享的限额。

  2. 错误响应:当触发限频时,API会返回 Throttling.RateQuota,限流速率的配额。

  3. 模型差异:更高阶的模型(如 qwen-max)其默认QPS可能低于 qwen-turbo,因为计算资源消耗更大。

  4. 突发限制:除了QPS,还可能存在并发连接数、每分钟/每日请求总数等限制。

给您的 JMeter 测试建议

  1. 确认您的账户限额:登录 阿里云DashScope控制台。在 “配额管理”“调用统计” 相关页面,查找您所用模型(如 qwen-turbo)的 “QPS限制”

  2. 在测试中处理限频监控429错误:在JMeter的聚合报告查看结果树中密切关注429状态码的出现。添加定时器:如果触发限频,可以在JMeter线程组中增加 “常数吞吐量定时器”“高斯随机定时器”,将请求速率控制在实际QPS限制以下。解析响应头:可以添加 “正则表达式提取器”“JSON提取器” 来捕获 X-RateLimit-Reset等头信息,实现更智能的退避重试。

  3. 申请更高的测试额度(如需):如果默认付费额度仍无法满足压测需求,请通过阿里云工单系统,说明您的测试目的、所需模型、目标QPS和测试时长,申请临时的额度提升。

总结:对于您正在进行的性能测试,最关键的一步是先在控制台查明您账户下qwen-turbo模型的确切QPS限制,并将JMeter的并发数(线程数/Ramp-up)设置在该限制以内,否则测试结果将充满429错误,无法反映真实性能。 如需更高并发,请务必提前申请。

 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐