注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

一、全链路压测概述

全链路压测日常版是零售云平台提供的一项商家业务质量压测服务,测试商家业务从店铺前端产生高并发订单到后端业务系统各环节的处理效率,通过自动化压测工具,模拟商家店铺线上优惠策略和双11预计订单按峰值、正常值对业务系统进行压测,检测商家业务系统各环节的业务处理能力,及时发现业务系统性能瓶颈,最后起到优化系统的目的。

二、产品使用介绍

三、产品使用流程

用户登陆零售云官网(https://qa2.cloud.tmall.com,在压测列表中创建压测任务并启动压测,具体步骤如下:

1. 基本信息设置

填写应用基本信息,根据商家业务选择压测的应用类型(ERP、奇门、全渠道),并选择参与压测的应用和商家。

2. 系统信息配置

注意:添加rds服务器(推送库),无须在订单同步服务进行相关配置,用户只需压测任务时添加新购压测rds即可。

 

1)服务器性能监控配置

系统信息配置中需要先对压测环境服务器安装性能采集工具,压测过程中实时采集测试服务器的性能指标,需要用户安装主机性能监控,如何安装请查看文档 。

2)任务流转配置

转单、审单等环节很多情况下是通过人工或自动任务完成的,压测中需进行改造来确保压测与实际作业的一致性,将业务系统中各订单处理链路封装业务测试执行脚本,根据业务需求自动或手工执行压测业务场景,压测的核心的业务场景包括订单转单(下载)、客审、通知配货、仓库已出库、ERP回写淘宝订单发货状态,其它业务场景根据商家业务需求进行测试,同时需要对各个业务处理场景的订单状态数据进行实时回传,以便统计商家订单全链路业务处理效率。

3)转单场景测试脚本示例代码(JAVA)

ISV自定义转单接口服务如: http://121.41.***.***/erp/test***.do?action=download ,根据商家的业务逻辑下载系统库的订单数据到业务库。

Java示例代码:
public Boolean test*** (String start, String end) {  
    
    Map param=JsonTools.fromJson(tags,Map.class);
    String sql="select * from 表名 wherewhere jdp_modified >? and jdp_modified<? ";
    .....//业务处理;
    .....//回流处理状态 ;
} 

4)业务场景订单处理状态回传示例代码

用户可根据业务需求选择不同的回流方式,详情文档参考:订单链路监控

以单条订单状态回流为例,调用taobao.qimen.event.produce将商家订单业务处理状态实时进行回传,示例代码为已转单状态数据回传:

Public class Test{

         Public static void main(String [] args){

             TaobaoClient client=new DefaultTaobaoClient(url, appkey, secret);

             QimenEventProduceRequest req=newQimenEventProduceRequest();

                 req.setStatus("QIMEN_ERP_TRANSFER");

                req.setTid(12231221231232L);

             QimenEventProduceResponse response = client.execute(req,sessionkey);

             System.out.println(rsp.getBody());

        }

}

用户代码改造注意事项:

 

① 日常版压测环境调用的接口为测试环境,接口请求地址为:http://mockgw.zjk.taeapp.com/gw;

② 订单履行处理后的回流订单说明请参考文档<全链路压测核心业务场景说明>;

③ 对于订单中的seller_nick字段,压测的时候由于安全原因都会生成一个”clustertest-“打头的名字代替真实的seller_nick;

④ 对于订单中的seller_id字段,压测的时候由于安全原因都会做一下偏移,压测SellerID = 真实SellerID + 9223372000000000000;

⑤ 对于访问TOP接口,如果是全链路压测的数据,需要添加系统级参数tb_eagleeyex_t=1表明是全链路压测数据(访问奇门接口也是如此);

⑥ 压测的订单数据与线上的存在一定差别,即某些id做了偏移,具体差别如下:

    i)压测num_iid= 真实num_iid + 5000000000000000000;

    ii)压测sku_id = if(sku_id == 0l){ return 0l; }else if(sku_id > 0l){ return sku_id + 5000000000000000000; };

    iii)压测商品其他数据使用线上真实数据,包括outer_iid,outer_sku_id等字段。

3. 预售压测指导

1)任务配置第二步中选在使用预售场景。

 

 

2)启动压测后,系统会分两个阶段推单,首先推送预售付定金的订单,单量是任务设置的单量,QPS是任务设置的QPS。

3)在所有预售付定金订单全部推送完成后,不需要用户做任何操作,系统会继续推送预售付尾款订单,单量是任务设置的单量,QPS是任务设置的QPS。

 

4. 自助改地址压测指导

 1)确认奇门网关配置了改地址的服务地址。

正式地址和测试地址都能配置一个。

2)任务配置先选择压测环境。

选择性能环境的话。改地址压测流量就会走到服务商在奇门网关配置的测试服务地址。

选择正式环境的话。改地址压测流量就会走到服务商在奇门网关配置的正式服务地址。

3)任务配置第二步中选在使用自助改地址场景。

4)启动压测后,系统会对2%的压测订单进行该地址操作,自助改地址为奇门网关配置的相应地址并且在url参数中使用压测标tb_eagleeyex_t=1来帮助用户区分压测流量。

5. 订单加密压测指导

1)任务配置第二步中选在使用OAID场景。

2)启动压测后,系统会对压测订单进行OAID加密操作。

6. 业务信息配置

1)商品信息配置

压测推送的订单是基于基本信息配置中提交的商家帐号店铺下生成的订单,需要用户通过文本文件提供线上店铺真实商品id(至少五个商品),多个商品id用逗号隔开。

2)订单信息配置

系统自动分析得出。

3)优惠信息配置

系统自动分析,可以手动添加删除。

4)压测场景调试

用户提交压测任务并审核通过后,即可启动压测调试,检查压测业务场景能否跑通,订单状态是否回流,是否采集到服务器性能监控数据,联调测试只支持小批量订单推送,若联调测试通过进入正式压测.

① 场景调试时候将转单审单通知配货全部流程走一遍并有数据回流。

② 点击停止调试,此时弹出一个框,点击完成调试,场景生效。或者停止调试后点击完成环境准备按钮。

5)新建正式压测任务

压测场景调试通过后,用户可以在任务列表页面新建压测任务,选择刚刚调试通过的压测场景,或者在场景列表页面点击该场景后面的快速执行,系统会自动建立压测任务并跳转到压测任务执行页面,压测场景作为压测配置模板可以反复新建压测任务,正式压测过程中建议用户观察压测业务信息和性能监控,若监控发现问题支持暂停推送,修复后重新启动压测,压测结束后,用户自行查看压测报告并将最优的压测结果设置为最优压测报告,若压测不符合商家业务需要,建议优化后重新进行压测.

 

四、压测数据推送优惠券类型

优惠类型

适用类型

优惠比例

优惠类型 适用类型 优惠比例

B商品大促优惠

天猫店 10%

C商品大促优惠

集市店

10%

特价宝

天猫店 10%

店铺红包(C专用)

集市店

10%

天猫定向优惠

天猫店 10%

UMP限时折扣

集市店

10%

UMP限时折扣

天猫店 10%

UMP_ISV商品子订单优惠

集市店

10%

UMP_ISV商品子订单优惠

天猫店 10%

单品优惠券

集市店

10%

UMP_ISV主订单优惠

天猫店 10%

淘金币活动构建

集市店

10%

单品优惠券

天猫店 10%

UMP满就送店铺优惠

集市店

10%

TSPALL天猫全店商品店铺优惠

天猫店 10%

店铺优惠券

集市店

10%

UMP满就送店铺优惠

天猫店 10%

子订单全店参与

集市店

10%

店铺优惠券

 天猫店  10%  

大促购物券

 

集市店

 

10%

     

UMP_ISV主订单优惠

集市店

10%

五、全链路压测核心业务场景说明

订单管理(ERP、进销存、订单处理OMS)

业务场景 接口    回流状态 业务场景描述 是否必须
 

转单

 taobao.qimen.event.produce QIMEN_ERP_TRANSFER 下载订单到业务库
单个订单处理完成回传已转单状态
是 
客审 taobao.qimen.event.produce   

QIMEN_ERP_CHECK

审核订单;单个订单客审完成回传已客审状态
注意:

1.检测是否缺货/占用库存/是否退换货等
2.前置打单需要获取电子面单

通知配货  taobao.qimen.event.produce QIMEN_CP_NOTIFY  完成订单审核后,通知仓储接单进行仓内操作,完成后回传通知配货状态
生成拣货单      待发货订单批量生成拣货单,回传已打拣货单
打印发货单      批量查询待打印的发货订单,回传已打发货单状态;注释真实打印
打印物流单      批量查询待打印的物流单,回传已打物流单订单状态;注释真实打印物流单
 验货      根据单个商品匹配验证发货订单商品
 仓库打包出货  taobao.qimen.event.produce QIMEN_CP_OUT  后置打单需要获取电子面单匹配订单,并扣减实际库存。
同时回传仓库出库订单状态
 回写订单  taobao.logistics.offline.send    调用发货接口将订单状态修改为已发货状态 是 

六、日常版转大促版改造注意事项

若用户在日常版完成压测后,在大促版进行压测需要进行如下改造:

1)不能使用线上的数据推送RDS,因为大促版压测使用的是和线上一样的sys_info库进行压测订单推送,所以需要使用一个专门用于压测的rds来接收压测订单。

2)调用的订单状态回流接口和其他TOP接口需要使用正式环境接口请求地址(http://gw.api.taobao.com/router/rest),每个接口调用一定要带有压测标tb_eagleeyex_t=1,TOP正式环境是通过这个标来判断是否压测流量。以单条订单状态回流为例,调用taobao.qimen.event.produce将商家订单业务处理状态实时进行回传,示例代码为已转单状态数据回传:

Public class Test{

         Public static void main(String [] args){

             TaobaoClient client=new DefaultTaobaoClient(url, appkey, secret);

             QimenEventProduceRequest req=newQimenEventProduceRequest();

                 req.setStatus("QIMEN_ERP_TRANSFER");

                req.setTid(12231221231232L);

                req.putOtherTextParam("tb_eagleeyex_t", "1");//该参数标识该订单为压测数据

             QimenEventProduceResponse response = client.execute(req,sessionkey);

             System.out.println(rsp.getBody());

        }

}

3)大促版压测商品模板和日常版压测一样,使用num_iid:sku_id,num_iid:sku_id,num_iid:sku_id这样的格式(10月9号支持),之前使用num_iid,num_iid,num_iid这样的格式。

七、FAQ

1. 我的应用系统调用api或消息服务下载订单,没有使用数据推送,是否要进行压测?

双11期间通过api或消息服务通知下载订单会进行限流,建议使用数据推送,平台会针对使用数据推送参与压测的商家优先保障推送资源。

2. 如何识别我的应用是否需要参与压测?

1)针对订单履行链路应用,应用包括订单管理、企业ERP、进销存OMS,商家自研系统等,业务覆盖全渠道、奇门&菜鸟仓、奇门ERP&WMS、商家自有仓、打单发货等业务系统需进行全链路压测。

2)针对非订单履行链路应用,比千牛交易插件、无线互动应用、会员通等业务需进行压测,非订单履行链路压测工具帮助文档:点击查看

3)补充说明:订单管理类目下存在评价、物流跟踪等应用,不涉及到订单履行业务处理,在大促期间,平台会统一进行api调用降级。

3. 创建压测任务时,新增监控机器时提示验证机器状态失败如何解决?

 添加压测服务器ECS,需要先安装agent,如何安装请查看文档

添加压测数据推送RDS不需要安装agent,需要用户确保选择的推送库rds不是线上真实的数据推送实例,填写订单同步服务中配置过的RDS系统将会提示报错,建议用户使用新购的测试rds。

4. 创建压测任务时,如何进行基础信息配置?

配置基础信息时,需要选择压测的应用,填写的压测商家必须是订购过该应用下的商家店铺,即商家授权过该应用的店铺nick,压测生成的订单会对该店铺id进行偏移,不会影响商家线上真实店铺数据。

5. 启动压测调试时,提示open db timeout?

RDS配置了ip白名单,需要将压测生产订单机器ip加入到rds白名单,ip为:10.24.153.150,10.24.152.119,10.24.153.105,若还无法解决,请在钉钉群:21712893反馈问题。

 

      

FAQ

关于此文档暂时还没有FAQ
返回
顶部