压测验收
功能介绍
压测验收是解决方案接入的关键稳定性验证阶段;
开发者需基于真实业务场景,完成平台提供的高并发模拟测试,以验证服务在高负载情况下的可用性与稳定性。
前提条件
已完成联调验收。
压测计划
警告
发送的压测请求必须携带请求头
X-Stress-Tag:1,以便与正常请求区分;否则可能被当作真实请求处理,影响线上业务的稳定性。自定义变量
压测接口自定义变量
先下载模板,按照模板上传csv文件来自定义压测接口的变量,文件大小不超过10M,如上传文件超过10M,请参考大文件操作。
参数文件说明
- •每行即为一个参数,参数体需要为json转义(建议转义且压缩);
- •每个json的key数量至少2个,如果只有一个,可随意新增一个spi接口未定义的参数;
- •文件示例格式如下:
Params |
{\"order_id\":1,\"account_id\":123456} |
{\"order_id\":2,\"account_id\":123456} |
{\"order_id\":3,\"test\":2} |
{\"order_id\":4,\"account_id\":123456} |
{\"order_id\":5,\"account_id\":123456} |
{\"order_id\":6,\"account_id\":123456} |
- •需填写完测试账户client_key、对接能力、压测接口后才可上传文件,如保存前用户已上传了文件,再次修改上述必填字段后,需要重新上传文件;
- •如已上传1个文件,要上传新的文件,必须删除原文件后再进行上传;
大文件操作
超过10M文件的操作步骤:
- •重新创建一个小于10M的demo文件,保留原文件的第一条数据(必须是第一条),上传后完成调试步骤;
- •联系抖音技术支持TS,将原始的大文件发送给TS进行文件上传;
- •抖音技术支持处理完成后,用户申请压测时间。
注意
如抖音技术支持处理完成后,用户再次上传了文件,则原始大文件会被覆盖掉,需要重新联系抖音技术支持进行原始大文件上传。
新建计划
功能入口
点击右上角【创建压测计划】按钮。
表单字段填写
压测基本信息:
字段名 | 是否必填 | 字段描述 |
计划名称 | 是 | 不可重复(按照应用信息+商户ID在提交时验重),最长100字符 |
对接能力与接口 | 是 | 如团购三方码、日历票、团购套票、团购在线预约等 |
压测场景 | 是 | 固定为首次对接,开发者首次对接,有准入QPS的限制,可配置的最大QPS是50-300 |
压测接口自定义变量 | 是 | 详见本文的“自定义变量”章节 |
QPS配置:每秒向服务端打多少请求,例如10QPS表示1s发送10个请求
字段名 | 是否必填 | 字段描述 |
最大QPS | 是 | 最小为准入QPS,最大为准入QPS的3倍 |
起始QPS | 是 | 最小为1,最大为“最大QPS”的一半 |
每阶段增加QPS | 是 | 最小为1,最少增加3次梯度 |
每阶段持续时间 | 是 | 最小为30,最大与“总持续时间”一致 |
总持续时间 | 是 | 最大限制根据压测模板的配置获取,最小限制300秒。 说明 计算逻辑:(最大QPS-起始QPS)/每阶段增加QPS*每阶段持续时长+每阶段持续时长,可点击【获取最小时长】后进行修改配置 |
接口超时时间 | 是 | 最大限制30000、最小为0 |
操作栏按钮的作用
- •保存并下一步:当前输入的所有字段内容保存后进入调试页面;
- •取消:当前输入的字段内容不做保存。
计划列表
列表信息
- •列表每页展示10条数据,按照创建时间倒序来排序
- •列表支持以下字段的搜索:计划名称、计划ID、对接能力、压测接口、计划状态
操作按钮
操作栏显示的按钮根据计划状态的不同进行展示:
状态 | 支持的操作按钮 |
待调试 | 查看、调试、编辑、删除 |
待申请 | 查看、申请、编辑、删除 |
审核中 | 查看 |
待执行 | 查看、执行、编辑、删除 |
执行中 | 查看 |
已执行 | 查看、执行、编辑、删除 |
已终止 | 查看、执行、编辑、删除 |
计划状态的含义
状态 | 含义 |
待调试 | 计划内容的必填项已完成填写,但未完成调试 |
待申请 | 计划内容的必填项已完成填写,调试通过,或调试通过后申请压测审核拒绝 |
审核中 | 计划内容的必填项已完成填写,调试通过,发起了压测申请,审批流未完结 |
审核失败 | 计划内容的必填项已完成填写,调试通过,发起了压测申请,审批拒绝,点击有浮窗提示拒绝原因 |
待执行 | 计划已完成填写并完成调试,审核通过但未执行过 |
执行中(n次) | 计划正在执行,n次表示执行次数(启动执行操作时次数+1),点击可跳转到计划对应的压测任务列表 |
已执行(n次) | 计划已完成执行,n次表示执行次数(启动执行操作时次数+1),点击可跳转到计划对应的压测任务列表 |
已终止(n次) | 计划最后一次执行结果为用户手动终止状态,n次表示执行次数(启动执行操作时次数+1),点击可跳转到计划对应的压测任务列表 |
接口调试
功能入口
接口调试共有两个入口:
- •压测计划列表页的操作栏点击调试,跳转至压测计划的调试页;
- •创建压测计划或编辑压测计划页,点击【保存并下一步】进入调试页。
操作
点击【发起调试】,如调试失败,则按照页面报错提示进行相应操作,如调试成功,点击完成即可。
注意
点击【发起调试】,抖音侧会读取压测文件中的第一条数据,重复请求两次,需要做去重逻辑。
执行计划
发起申请
- •入口:列表页的操作栏;
- •发起时可选压测时间:最多展示未来14天的固定工作日周一到周四时间 23:00~隔天的7:00可选,当天00:00之前最早可选第二天的23:00~隔天的7:00,每2小时为一个隔断(23:00-01:00、01:00-03:00、03:00-05:00、05:00-07:00),如开始时间选择23点后,默认结束时间为01:00,用户选完日期后点选具体的时间段;
- •调试通过后方可发起压测申请;
- •审核结果
- ◦审核通过:压测时间期间及压测结束后48小时内,测试账户ck不可用于功能测试,回调流量会被识别为压测流量,如压测申请为明天01:00-03:00,审核通过后,该测试ck从明天01:00至 明天03:00点+48小时内,都不可用于功能测试;
- ◦审核拒绝:如审核拒绝,则在列表页状态栏的 审核失败 问号hover中展示 审核拒绝原因,用户可自行查看拒绝原因。
执行压测计划
- •提交的压测审批通过且在压测申请的时间范围内,手动点击列表页操作栏的【执行】进行压测;
- •每执行一次压测计划,则生成一条压测任务。
修改计划
- •入口:点击列表页操作栏的【编辑】按钮进入编辑详情页;
- •可修改字段:压测接口自定义变量、QPS配置的相关字段(最大QPS、起始QPS、每阶段增加QPS、每阶段持续时间、总持续时间、接口超时时间)。
删除计划
点击压测计划列表操作栏中点击「删除」按钮,可删除该计划。
压测任务
任务列表
列表信息
- •列表每页展示10条数据,按照执行时间倒序来排序;
- •列表支持以下字段的搜索:计划名称、计划ID、对接能力、压测接口、执行状态。
列表操作
- •查看报告:支持在执行过程中随时查看结果;
- •终止执行:仅在执行中的报告支持终止。
查看报告
功能入口
点击压测任务右侧操作栏中「查看报告」按钮,可跳转到报告详情页。
展示&刷新逻辑
执行完毕计划展示完整结果,执行中计划每10S刷新一次结果。
报告内容
包含“成功 / 失败QPS曲线”、“接口响应耗时P75、P90、P99、P999曲线”、”接口明细及失败时的错误信息“。
任务成功的判断标准
- •接口请求的成功率大于99.95(接口返回error_code=0);
- •PCT99耗时<=计划配置的超时时长。
终止任务
- •入口展示时机:仅执行中任务,在压测任务列表右侧操作栏中展示【终止】按钮;
- •点击终止按钮可终止执行该计划。
常见错误码含义信息
错误码 | 错误信息 | 排查建议 |
0 | 成功 | —— |
4000400 | 网关侧参数校验未通过 | 抖音侧调用异常
|
4000401 | 服务商返回参数类型不合法 | 开发者调用异常,排查开发者响应体中error_code, description类型是否正确 |
4001400 | 未配置三方接口路径 | 开发者配置异常,开发者应 用未配置SPI回调地址 |
4000405 | 构建HTTP请求体错误 | 网关异常,构造HTTP请求异常 |
4000406 | 服务商返回内容不合法 | 网关异常,解析HTTP响应异常 |
499999 | 错误码范围异常 | 见业务错误码 |
4000404 | 未找到三方接口路径 | HTTP调用异常:状态码404 |
4000502 | 网关侧未知异常 | HTTP调用异常:HTTP非超时错误,可能包括https证书错误,开发者网关错误等 |
4000503 | 三方返回内容空 | 开发者调用异常 |
4000504 | 调用三方服务超时 | HTTP调用超时 |
4000505 | 下游HTTP码非200&404 | HTTP调用异常:HTTP返回码不是200,不是404,常见返回码包括400,401,403,405,429,500,502,503,505,请联系开发者排查 4000505与4000502的区别:
httpClient.Do(req)返回非timeout err
httpClient.Do(req)成功返回,HTTP状态码不合法 |
4000510 | 未找到ck对应secret | 抖音侧调用异常,排查ClientKey是否合法,如使用sandbox账号,排查sandbox账号是否绑定真实应用 |
4001601 | SPI触发限流 | 抖音侧调用异常,排查action + 应用是否被频控 |
