CreateBenchmarkTask - 创建压测任务

调用CreateBenchmarkTask,创建压测任务。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
eas:CreateBenchmarkTask
*BenchmarkTask
acs:eas:{#regionId}:{#accountId}:benchmarktask/*

请求语法

POST /api/v2/benchmark-tasks HTTP/1.1

请求参数

名称类型必填描述示例值
bodystring

压测任务的配置参数。

{ "base": { "duration": 600 }, "service": { "serviceName": "test_service", "requestToken": "test_token" }, "data": { "path": "https://larec-benchmark-cd.oss-cn-chengdu.aliyuncs.com/youbei/sv_dbmtl/data/youbei.warmup.tf.bin", "dataType": "binary" }, "optional": { "maxRt": 100 } }

压测任务配置参数

eas-benchmark 整体配置分五部分,如下所示:

参数说明
base压测任务的基本配置。
service待压测服务的相关配置。
data压测请求数据的相关配置。
http服务请求 HTTP 相关配置。
optional压测任务可选高级配置。

表 1. base 描述表

参数说明
name【可选】压测任务的名称,如果不指定,会根据服务名自动生成。
duration【可选】压测任务执行的总时间,单位为秒,默认为 1200。
qps【可选】压测任务的目标(预期)QPS, 默认为 10000。
concurrency【可选】每个压测实例内创建的并发连接数, 初始值默认为 40,会动态修改。
agentCount【可选】压测任务创建的实例个数,初始值默认为 1,会动态修改。

表 2. service 描述表

当您需要通过访问网关的模式创建压测任务时,需要提交工单开通白名单权限。

参数说明
serviceUrl【可选】待压测服务的访问 URL,如果待压测服务是 EAS 服务,无需配置。
serviceName【可选】待压测服务的服务名,如果待压测服务是 EAS 服务,必须配置;如果待压测服务是自定义服务,无需配置。
requestToken【可选】访问服务的鉴权 token,如果 serviceName 被指定,无需配置。
endpointType【可选】服务支持的压测类型,支持 default(网关)、direct(直连模式) 两种模式,默认为 direct

表 3. data 描述表

参数说明
content【可选】压测请求数据,字符串格式。
path【可选】测试数据源的 HTTP 路径,可以是单个文件,也支持.zip文件,对.zip文件下载后会自动解压。
dataType【可选】测试数据的类型,支持 text 和 binary 两种类型,默认为 text 类型。
multiLine【可选】测试数据是否是按行分割的,BOOL 类型,如果设置为 true,会将下载的数据逐行解析。

表 4、HTTP 描述表

参数说明
method【可选】HTTP 请求方法,默认为 POST 类型。
host【可选】请求主机 HOST 设置,默认为空。
headers【可选】HTTP 请求 HEADER 设置,LIST 类型,例如:["Authorization:aaa", "Content-Type:text"]
timeout【可选】HTTP 请求延时,单位为毫秒,默认 20000。

表 5. optional 描述表

参数说明
mode【可选】压测模式,支持以下三种模式:
auto(自动加压模式):默认值。eas-benchmark 控制器会自动创建用于压测的 Agent Worker,并设置合适的并发,通过自动寻优的算法来寻找服务的承压上限。
scan(周期加压模式):根据您指定的起始 QPS(minQPS)、QPS 上限(maxQPS)、QPS 增长时间间隔(adjustInterval)和 QPS 增长步长(qpsGrowthDelta)等参数,动态加压,当服务承载到达指定的 maxRT、maxQPS 或服务压测出现错误数量超出容忍程度(faultTolerate)时为止。
manual(手动加压模式):固定压测 Agent 数量及每个 Agent 的并发数,您可以在压测过程中动态调整 Agent 数量及 Agent 并发数。
adjustInterval【可选】自动加压的动态调整间隔,单位为秒,默认为 60。例如设置为 30, 则每隔 30 秒调整加压阈值。
minQPS【可选】在自动加压过程中 QPS 的最小值,默认为 100。
maxQPS【可选】在自动加压过程中 QPS 的最大值,默认为 10000。
maxRT【可选】期望的最大 RT,超过该阈值会自动调节 QPS,直到实时 RT 符合预期。
qpsGrowthDelta【可选】在自动加压过程中 QPS 每次增长的数值,默认为 50 。
faultTolerate【可选】请求错误(非 200 状态码)率的容忍程度,默认为 0.001。
faultAction【可选】在请求错误率超过 faultTolerate 设定的阈值时,压测的行为,可选值:stop (维持当前 qps, 不再继续加压);revise(动态调整 QPS,直到请求错误率符合预期)

返回参数

名称类型描述示例值
object

返回结果。

RequestIdstring

请求 ID。

40325405-579C-4D82********
TaskNamestring

压测任务名字。

benchmark-larec-test-1076
Regionstring

压测任务所在的区域。

cn-shanghai
Messagestring

请求返回信息。

Benchmark task [foo] is Creating

示例

正常返回示例

JSON格式

{
  "RequestId": "40325405-579C-4D82********",
  "TaskName": "benchmark-larec-test-1076",
  "Region": "cn-shanghai",
  "Message": "Benchmark  task [foo] is Creating"
}

错误码

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
暂无变更历史