中间件测试—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.采招公告福建省中通通信物流有限公司本询比项目为2024年中电福富信息科技有限公司办公系统零信任安全网关服务项目(项目编号:FJZT-2024-12335),采购人为中电福富信息科技有限公司,采购代理机构为福建省中通通信有限公司。项目资金已落实,具备采购条件,现进行公开询比,特邀请有意向的且具有提供标的物能力的潜在供应商(以下简称供应商)参加询比响应。 https://zb.chinaccsscm.cn/zbgg/330303.jhtml
2.中国快递协会EMS顺丰速运圆通速递中通快递韵达速递申通快递极兔速递德邦快递中铁快运中外运跨境电商宅急送中外运敦豪中国银联菜鸟网络苏宁物流京东物流北京市快递协会上海市快递协会广东省快递协会天津市快递协会河北省快递协会江苏省快递协会山东省快递协会黑龙江快递协会福建省快递协会陕西省快递协会甘肃省快递协会江西省快递协会 友情链接 http://www.cea.org.cn/index.html
3.关于拟公告作废快递分支机构名录的公示根据《中华人民共和国邮政法》《中华人民共和国行政许可法》的相关规定,依照《快递业务经营许可管理办法》《快递业务经营许可注销管理规定》,依法注销忻州市天福中通速递有限公司下属分支机构,现予公告。 一、拟注销分支机构名单 (见附件) ? ? ? ? ? ? ? ? ? ? http://sx.spb.gov.cn/sxsyzglj/c101336/c101339/202412/219b22f2a37549f6aba8a59b63485655.shtml
4.寄中通快递两个箱子算一个件吗中通快递单号四种查询方法寄中通快递两个箱子算一个件吗 中通快递单号四种查询方法2024-12-15 14:50:11 苏有朋影音馆 吉林 举报 0 分享至 0:00 / 0:00 速度 洗脑循环 Error: Hls is not supported. 视频加载失败 苏有朋影音馆 5910粉丝 每天更新好的作品 04:42 尹光与胡美仪粤曲《梦会杨贵妃》,传承经典 03:58 什么是https://www.163.com/v/video/VAIHC0LBV.html
5.一站式业务门户用户可以自定义门户卡片,每日关注、日常办公因人而异,按需配置,支持应用快捷检索,助力高效办公 一键分享、一触即达 通用的页面分享组件,支持分享页面截图,或页面链接到单聊、群聊,已授权的会话内用户,点击链接可直接访问到指定的业务页面 宝盒 中通安全协作办公平台 https://baohe.zto.com/product/portal
6.统一业务门户统一业务门户是中通内部的门户产品,我们致力于提高用户的工作效率,保护用户信息安全;https://asset-workbench.zt-express.com/
7.中通快递统一身份管理通过SSO360多样的无密码登录方式,可以通过扫码、动态口令、FIDO等进行快速登录认证,多样防护策略提升企业门户访问安全。 集成中通安全中心APP SSO360与中通安全中心APP快速集成,通过中通安全中心APP扫码或OTP实现办公电脑系统快捷登录,无需额外携带安全终端,安全便捷效率高。 http://www.sso360.cn/case_detail?id=2
8.内蒙古智慧教育平台内蒙古智慧教育平台-统一门户及中小学智慧教育平台运维服务项目采购人为天翼云科技有限公司内蒙古分公司,项目资金已落实,现已具备采购条件,拟采取单一来源方式采购,现进行公示。 一、采购内容 采购统一门户及中小学智慧教育平台运维服务,具体内容为用户管理、资源管理、空间管理、门户改造、授课系统、互动,教研、深度应用指https://xunbiaobao.baidu.com/biddingDetail?id=9df12a201f0b5a4665d0f3ee5987b9ae581bbdad&source=seo
9.鄱阳快递电话大全,轻松实现一键查询快递公司联系方式!五、 中通快递 中通快递是国内一家较为新兴的快递公司,发展速度迅猛,服务质量上乘,得到了广大用户的称赞与青睐。在鄱阳市,中通快递也能为用户提供全方位的服务。以下是中通快递的联系方式: 1. 中通快递全国客服热线:95311 2. 鄱阳中通速递分公司电话:0793-8243077 https://www.youxiaoge.cn/ddnews/10004.html
10.北京联通5G套餐资费介绍北京联通宽带北京联通合约手机话费业务查询.实时话费.账户余额.历史账单.历史欠费.通话详单.话费购.集团客户账单.交费记录.上网卡、充值卡业务查询.上网卡号查询.充值卡状态查询https://www.10010.com/
11.企业信息门户(EnterpriseInformationPortal,EIP)公司不同的部门和众多的雇员拥有大量的数据,如何知道他们的数据的不同特点并将合适的信息提供给最需要的人?企业信息门户(Enterprise Information Portal,EIP)就是要解决这样的问题。 企业信息门户是一个将企业的所有应用和数据集成到一个信息管理平台之上,并以统一的用户界面提供给用户,使企业可以快速地建立企业对企业https://blog.csdn.net/weixin_33937913/article/details/92755026
12.专用电动三轮车正式上牌启用4月13日上午,泉州市首批邮政快递专用电动三轮车注册挂牌交车仪式在泉州市侨乡体育中心举行。 泉州网4月13日讯(记者洪荣堆 通讯员陈鑫)4月13日上午,泉州市首批邮政快递专用电动三轮车注册挂牌交车仪式在泉州市侨乡体育中心举行,这标志着泉州市邮政快递行业的出行交通工具统一走向监管,正式进入专用电动三轮车“依法上路”https://www.qzwb.com/gb/content/2023-04/13/content_7193028.htm
13.首页中通快运官网为您提供中通快运单号(运单)跟踪查询,运费报价查询,收寄范围查询,中通营业网点查询,在线下单等服务,全国统一客服热线:95708https://www.zto56.com/
14.中通软CNBOSS云网综合管理平台云网管最新版云商店1、门户 支持不同用户统一登录,实现服务浏览、订阅、以及多云资源的统一管理、编排。 2、运营维护管理 对云、网、安资源进行全生命周期管理,包括统一监控、智能运维和自动化运营管理。 3、资源管理 (1)云资源管理:云主机、云存储、数据库、中间件等多云资源管理。 https://marketplace.huaweicloud.com/contents/f524a5b4-87a3-4de9-a340-a3f8c11c0ffb
15.中通宝盒中通宝盒免费下载中通宝盒是中通推出的安全协作平台,高效沟通,极速沟通,随时随地拉起会议,灵活存储,企业数据和文档创作、协同、共享平台,待办管理,个人、团队待办便捷管理,会议室便捷预定协同门户,办公应用、企业服务、定制开发应有尽有,便捷找人,随身携带,同步更新,随时找人! https://down.chinaz.com/ruanjian/50690.htm