中间件测试—ZCAT监控平台测试探索与实践·测试之家

目前中通上千个线上应用,一直使用CAT作为线上监控工具。随着业务量的增大,采集的数据量直线上升,每秒上报采集的数据上达百万。与此同时,也对数据采集工具的要求也越来越高。但由于CAT集群存在宕机、文件破坏、重启失败、丢失数据等问题,所以,中通科技中心自研了中通监控平台ZCAT。ZCAT提供了链路数据跟踪、信息采集存储、数据计算、风险预警等能力,低成本的排障方案能帮助不同职级的用户快速定位问题,主要分为这四部分实现:1)支持各类客户端SDK数据上报;

2)数据采集计算查询服务;

3)数据本地存储;

4)基于查询和报表展示的监控门户;

本文主要介绍如何从功能测试出发,针对JSSDK功能、后端Java服务数据上报及查询结果验证等实践案例进行分析,最终将功能测试转化为自动化测试的实践过程。

首先,来看一下研发架构。ZCAT客户端SDK支持无感知的字节码增强/hook的方式采集,同时也支持业务方自定义埋点。Java应用端直接使用CAT的客户端上报,服务端兼容CAT的Message协议。以下是研发架构图。

经过对研发的架构进行分析并结合业务功能,可以得知,ZCAT实际就是经过对用户操作进行采集、存储、再将结果展示到平台供研发、运维等快速查询和跟踪链路问题。但无论是JSSDK端还是后端Java服务,测试都需要考虑有以下几点:①数据如何准备?

②准备什么样的数据?

③数据如何上报?

④数据上报后,用户在查询接口返回的数据如何验证?(用户在查询接口返回的数据是经过聚合后的计算结果,因此,还需要非常清楚这些计算规则。)

带着这些问题,我们继续往下看。在进入正题之前先来看一下上面提到的两个部分的测试流程图

基于上面两个测试流程图结过分析,其实,贯穿整个测试流程,需要做测试工作主要有以下几个部分:

暂时撇开数据存储各种维度等复杂逻辑,对于功能测试而言,无论是JSSDK端还是后端Java服务首先要考虑的两个点:

1、数据上报正常;

2、数据查询结果正确;其次,由这两个点再衍生出更多测试点如下:

JSSDK是通过在前端应用中引用SDK的JS文件进行数据采集并上报到服务器。首先,需要确定数据采集维度;其次,要梳理公司所有的前端框架、确定兼容性测试范围、JSSDK本身健壮性(异常影响、止血规则)等。最后,上报数据结果的验证。具体如下:

首先,在测试之前,整理出JSSDK采集的维度,如下图。

目前,公司主要支持五个前端框架(VUE、Angular、jQuery、H5、React),因此,兼容性测试主要基于这五个框架来开展。

①JSSDK与各种框架兼容性

为了测试更真实,提前创建好上述五个测试项目,分别引用JSSDK文件。利用SpringBoot后端服务提供接口,用来模拟各种维度数据返回并供这五个测试项目调用。分别运行这五个前端项目,通过页面按钮调用模拟访问后端接口,分别上报上文中所提到的几个维度的数据。上报过程中页面调用后端接口时,将上报PV/UV、访问速度、API请求、用户满意度等信,再通过页面模拟JS异常并抛出。观察JSSDK是否正常将数据上报,且通过接口或页面查看这些数据的正确性。

基本异常:在几个前端框架中模拟下面几种类型异常并观察是否正常返回预期结果

a.引用错误的JSSDK文件地址

b.JSSDK上报数据地址错误

c.引用内部有异常的JSSDK文件

a.数据收集限制最大量:b.数据上报限制最大量:c.数据上报接口报错限制:

以上几个方面测试完成后,对于五个维度(用户满意度、PV/UV、访问速度、错误数、API请求)的数据验证,利用自动化的方式快速上报快速检测结果(由于上报后数据存储与查询方式一致,因此在Java后端部分会详细介绍)。直接调用ZCAT后端上报接口模拟各种维度数据到服务端,再对返回结果进行验证。

将上报数据封装为对象方便上报。

各种不同类型数据上报方法封装并通过HttpClient进行上报:

首先,来看一下测试工作推进开始前,还需要了解哪些部分:

与JSSDK一样,后端同样有多种采集维度

根据上面数据采集的维度进行分析,测试工作存在以下痛点:

a.测试场景复杂:几十种类型、子类型数据采集上报,业务功能支持数据落盘精确到分钟级别。因此,在上报数据时就要考虑多种场景的组合,单/多分钟,单/多个IP等。

b.数据难模拟:上文提到Java后端应用数据上报采用CAT的MessageTree的信息结构,这种结构可读性比较差,大大降低了自定义数据的灵活性。

c.数据结果对比复杂:大量的数据在上报到服务器后,查询结果都是按分钟、小时、天单位经过聚合计算的。

d.数据各类多:主要基于主机、CPU、线程、异常、服务调用等。

在分析了这些痛点后,迫切需要解决的是如何快速、高效上报自定义的数据,丰富测试场景,并验证结果。

结合上面的痛点,在保证了主要业务功能正常运行之后,利用自动化的技术手段不断迭代高效完成测试工作。

测试工程按功能层级化分为:

提前整理上文提到的五个维度的原始MessageTree类型的数据,将其转为Json模板。对于关键性的数据采用通配符定义($domain等),自动化程序运行时替换数据快速生成自定义测试数据丰富测试场景,提高效率。

提前定义日期格式化处理、精度处理、计算等方法,为自动化运行提供日期格式化、数据计算及数据精度处理等。

数据上报类型多达几十种,创建类来统一定义这些类型,如Dubbo(Service,Client)类型、Http类型(Service、Client、Request)、MQ类型(Consumer、Sender,Kafka)、异常、SQL(MySQL、Oracle、MyBatis)、NoSQL(Redis、ES、HBase)等,为程序能高效运行,提前定义好这些类型。

为了更好的管理用例执行,每个用例虽然场景不同,但总体运行流程基本相同。下面举例说明用例整体运行流程:

例:入口流量单IP多分钟请求用例

第一步:定义部分类全局预期数据,如第一分钟第一次请求耗时数、第一分钟第二次请求耗时数、请求次数、失败次数、成功次数、耗时最大值;第二分钟第一次请求耗时数、第二分钟第二次请求耗时数、请求次数、失败次数、成功次数、耗时最大值

第二步:定义测试用例

定义测试用例时,自定义上报类型、每分钟上报数据等

第三步:数据上报

前面讲过,为了方便模拟自定义数据,将MessageTree的结构转成了Json模板,在数据上报时,需要将其再转成MessageTree的格式通过TCP的方式最终上报到ZCAT服务端进行存储。第四步:预期结果计算

为了代码通用性,预期结果使用类对象进行存储,在上文中提过,ZCAT数据采集后,用户在查询时返回的结果是经过聚合计算的,因此,在数据结果断言前需要将预期结果根据上报的测试数据进行聚合计算并赋值。

第五步:结果断言

数据上报后,服务器对采集的数据根据一定结构进行存储,我们需要验证查询的结果是否正常,调用查询接口并对服务器返回的结果和预期结果进行对比,从而验证数据的正确性。此环节,需要保证代码计算规则是正确的,在编写之前,需要非常清楚各个数据指标的计算规则,否则,结果验证将会失败。

6)用例执行统一

用例执行支持多种类型参数,测试人员可随意定时运行或调整自己执行方式

7)执行结果统一输出

采用TestNG的报告进行输出

在项目测试的整个过程中,有时遇到的问题是复杂多样的,需要去分析、思考、不断实践摸索,这样做是否可以更好地解决问题。正如上文所讲,笔者也是经过了几个阶段的演进和迭代,不断探索、改进,最终将项目从功能测试转换为自动化测试,并不断优化测试工程。目前,此自动化测试工程已频繁用在研发日常单元测试、回归测试中。在中通科技像这样的产品比较普遍,站在测试的角度,我们需要不断学习、改进,最终为团队贡献一份力量。

目前,此自动化测试工程主要针对Java服务端,为了更好的服务团队,未来将打通三端实现自动化测试统一管理(JSSDK、移动端SDK、Java服务端统一管理);一站式定时执行及结果推送;统一丰富的Allure测试报告输出。

THE END
1.中通开放平台平台公告历史轨迹接口切换通知 查看更多 多样的集成方案 满足业务所需 基于开放能力灵活定制,满足复杂业务场景,助理企业数字化升级 连锁门店寄件 门店寄件,针对连锁门店类业务,包含:门店发货给消费者、门店间调拨、O2O等发货点众多、单个门店发件量较小的场景,中通总部推出了统一对接,统一管理,统一服务的连锁门店预约寄https://open.zto.com/
2.中通开放平台平台公告 历史轨迹接口切换通知 查看更多 多样的集成方案 满足业务所需 基于开放能力灵活定制,满足复杂业务场景,助理企业数字化升级 连锁门店寄件 门店寄件,针对连锁门店类业务,包含:门店发货给消费者、门店间调拨、O2O等发货点众多、单个门店发件量较小的场景,中通总部推出了统一对接,统一管理,统一服务的连锁门店预约http://zop.zto.cn/
3.中国快递协会EMS顺丰速运圆通速递中通快递韵达速递申通快递极兔速递德邦快递中铁快运中外运跨境电商宅急送中外运敦豪中国银联菜鸟网络苏宁物流京东物流北京市快递协会上海市快递协会广东省快递协会天津市快递协会河北省快递协会江苏省快递协会山东省快递协会黑龙江快递协会福建省快递协会陕西省快递协会甘肃省快递协会江西省快递协会 友情链接 http://www.cea.org.cn/index.html
4.中通客车股份有限公司至今,中通客车已累计产销客车30余万辆,其中新能源客车超过10万辆。公司现有国家认定企业技术中心、国家级工业设计中心、国家 CNAS 认可试验室、院士工作站、博士后科研工作站多个创新平台,联合国内知名院校和科研院所,专注于客车安全、节能及新能源客车技术研究,现有授权专利 571 余项,参与制定了数十项国家标准,承担https://www.zhongtong.com/ztkc/2024-12/19/
5.中通快递中通快递-W(02057.HK)发布公告,于2024年12月13日斥资1872.2万美元回购97.3万股。 本文源自:金融界AI电报特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。付费内容精选 更多 36天快速盈利 ¥19910人已购 日常炒股经验分享 ¥9923人已购 二手房各个环节搞https://m.163.com/dy/article/JJH1LKSI0519QIKK.html
6.关于拟公告作废快递分支机构名录的公示根据《中华人民共和国邮政法》《中华人民共和国行政许可法》的相关规定,依照《快递业务经营许可管理办法》《快递业务经营许可注销管理规定》,依法注销忻州市天福中通速递有限公司下属分支机构,现予公告。 一、拟注销分支机构名单 (见附件) ? ? ? ? ? ? ? ? ? ? http://sx.spb.gov.cn/sxsyzglj/c101336/c101339/202412/219b22f2a37549f6aba8a59b63485655.shtml
7.首页中通快运官网为您提供中通快运单号(运单)跟踪查询,运费报价查询,收寄范围查询,中通营业网点查询,在线下单等服务,全国统一客服热线:95708https://www.zto56.com/
8.北京联通5G套餐资费介绍北京联通宽带北京联通合约手机话费业务查询.实时话费.账户余额.历史账单.历史欠费.通话详单.话费购.集团客户账单.交费记录.上网卡、充值卡业务查询.上网卡号查询.充值卡状态查询https://www.10010.com/
9.中演票务通行业领先的网上订票网站,全国订票电话4008182024-12-21 价位:580.380.280.180.100.50 场馆:中山音乐堂 扫码查看购买 2025北京儿童新年音乐会(交响演唱版) 2024-12-22 价位:580.480.380.280.180 场馆:中山音乐堂 扫码查看购买 《维也纳皇家爱乐乐团新年音乐会》 2024-12-25 价位:880.680.480.280.180 场馆:佛山大剧院大剧场 扫码查看购买 维也纳圆舞曲之夜-2025http://www.t3.com.cn/
10.网络空间安全定义范文技术层面:主要探讨社交网络企业运用各种新型技术应用,如安全套接层(SSL)技术、虚拟专用网(VPN)技术、DB2匿名解决方案、密码加密技术、P3P隐私倾向平台等保护社交网络中的隐私权。 篇3 在不久的将来,我国公民将拥有一张像“居民身份证”那样权威、统一、普适性的“网络身份证”。 https://www.gwyoo.com/haowen/265219.html
11.智慧医疗数字卫生应急指挥平台建设方案.pdf5.3.7门户组件(HAPPortal)98 5.3.8Bl组件(HAPBI)100 5.3.9专家系统(HAPES)109 5.4统一管控平台111 5.5应用成环境112 5.5.1统一基础数据服务112 5.5.2统一认证服务112 5.5.3统一授权服务112 5.5.4中应用管理服务113 5.5.5界面整合服务113 第6章应急指挥平台设计方案114 6.1应急指挥场所建设114 6.1.1应急指挥https://max.book118.com/html/2024/0415/7040123024006065.shtm
12.中通宝盒电脑版下载中通宝盒pc版下载v8.33.1官方版中通宝盒pc版还提供了文字聊天、音视频会议、文档在线编辑等功能,用户在一对一或群聊过程中可以随时开启音视频会议,并且支持PC端和移动端,这样就算不出门,也能轻松实现异地面对面高效沟通,从而大大提升工作效率,还有可靠的文件分享、加密功能,为信息安全赋能,支持Android、iOS、macOS、Windows四端下载,全平台统一,工作https://www.32r.com/soft/109342.html
13.中原工业学院信息门户系统使用手册20230713.docx1中原工学院信息门户平台晴用户锻使用未手册1喊目姓录TOC\o"1-5"\h\z\u乏1.蹈赢关于雀本手挤册晓 软5猜2.逆述系统倒介绍右 哈5烫3.巴迷安装狐步骤赠 漠5扒4.揉就系统际使用骂 巾5态4.听1祥页面沾设置框 沈7艰4.朱1.循1科新增半页面影 级7骂4.晶1.亏2睡添加妹子页殿面磨 绒7现4.肃1https://m.renrendoc.com/paper/282456840.html
14.新能源汽车策划方案(通用15篇)同时微信海云平台智能客服可接入商桥客服系统,方便用户直接在微信平台进行咨询、与客服人员进行沟通。 一键拨号功能把微信和联系方式融合在一起,通过移动门户的1、有意参加的同学请到汽车学院网站上下载“中通客车?聊城大学第九届汽车科技文化学术节之汽车营销创意大赛报名表及创意表格”。 各参赛个人或团队可根据各自https://www.ruiwen.com/fangan/6609343.html
15.采招公告福建省中通通信物流有限公司为前端市场部门提供承包管理平台及针对性营销的工作平台。划小承包经营平台在功能定位上属于CTG-MBOSS规范中的市场营销和销售功能域中的部分功能,属于CRM域中面对客户经理的功能门户,可以作为一个松耦合的子系统或者系统模块进行部署。划小承包经营平台对原网格营销系统门户、营销派单子门户及代理商统一门户进行功能和架构https://zb.chinaccsscm.cn/zbgg/329080.jhtml
16.彩神通官方网站首页正式版【彩神通官方网站首页】支持:1088isp/1298bit系统类型:彩神通官方网站首页官网(2024综合APP)全新/版本IOS/安卓官方入口V18.14.68(注册,登录,官方网)官方入口是一款服务与城市一卡通的手机端充值app,作为官方出牌,其快速便捷的充值平台给用户带来不少便利,省时省心! 【彩神通官方网站首页】支持:1088isp/129http://www.philipsrespironics.cn/post/264787.html