您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
大件测试效率提升之测试平台介绍
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
大件测试效率提升之测试平台介绍
自猿其说Tech
2021-11-02
IP归属:未知
120160浏览
测试
### 1 背景 测试效率提升,减少无效重复的操作一直是我们提倡的工作方式。在大件的测试中,对外需要接收上游的下单信息,对内的每一步生产单据都需要上游操作后触发。每一个需求或项目联调时,都需要联系相应的上游协助下单或操作后进行测试,这导致我们测试效率较低。为此,我们开始把各类接单的报文和操作的报文保存起来,需要下单或操作时时,自己修改报文进行模拟。但随着业务场景的增加,靠手工修改报文效率越来越低,且还容易出错。 ### 2 方案详解 随着测试场景的增加和复杂,每次靠手工改报文的方式效率越来越低,急需把该过程变成线上化或自动化,以提升测试效率。经过梳理,主要梳理出该平台、系统需要满足以下两个目标: 1. 给研发、测试提效,节省上下游需要操作才能产生对应报文的时间; 1. 快速配合上下游联调测试; 基于上述需求目标,系统需要有友好的交互层,用于测试操作,交互层主要功能包含所有大件的系统汇总,便于统一测试入口,不用再记录每一个系统的域名、host等信息;同时交互层需要有各类单据下单的入库,统一收口下单入口,对一个下单入口,除必要的变量信息外,其余信息可系统补全;同时,如果还能把一些测试过程中的小工具添加到系统里,那后续测试的准备工作在该系统、平台即可完成。在该平台中,针对每一次的登录信息,使用的功能以及操作,系统均有记录,并对这些记录形成报表汇总,便于分析测试、研发人员使用该系统的情况。 在测试、研发人员使用系统时,找到需要准备的数据功能,录入基本的信息,系统完成剩余信息补全后,提交到后端服务,后端服务对报文信息进行解析,补全必要的业务单据信息后,按业务逻辑进行调用响应的服务、或发送异步处理。同时,系统记录本次操作的日志信息,便于后续的分析汇总。 通过对需求及目标的梳理,设计的测试平台架构图如下: <center>![](//img1.jcloudcs.com/developer.jdcloud.com/beb5aa88-e423-4316-a14e-0a8a8a4e2b9420211102154643.jpg) 图2.1 架构图</center> 通过架构图可知,测试平台支持权限控制,报表统计等功能,把测试日常的测试过程通过测试平台记录下来,后端使用的数据库和缓存是测试环境本身自带的,jsf,jmq及jfs等中间件是直接使用的中间件的测试环境,测试平台在资源上并未多申请资源,真正做到了降本增效。 在测试平台的设计、开发过程中,根据我们系统的特点及开发中大家经常遇到的问题,我们做了一些技术点的突破以及团队内开发规范的建立,举例如下。 - 下单报文模板化:下单报文中,除几个标识单据类型及始发、目的的属性外,大部分信息是相同的,可设置默认值。所以,系统里对下单的报文进行了模板化处理,每一次下不同类型的单据,仅需要修改其中的几个可变属性即可完成下单,提升下单时报文录入的效率; - 变量信息配置化:在下单报文中,针对单据类型及始发、目的等决定单据特性的重要属性进行变量配置,在测试时,需要下发哪种类型的单据仅需要配置相对应的属性值即可。 - 一包一功能:在平台上进行代码开发时,当几个同事同时修改一个类里的代码时,避免不了代码冲突,解决代码冲突既耗费时间也不利于后续代码的维护。为了减少代码冲突,对同一个功能进行测试代码编写时,我们按包分功能,一个功能的测试代码都在一个包路径下,一个包路径下可建多个类进行区分,有效的降低了代码冲突这一问题的发生概率。 ### 3 功能介绍 本测试平台的功能汇总信息如图二所示: <center>![](//img1.jcloudcs.com/developer.jdcloud.com/4f6f3308-b151-4f8e-a10e-0c94f2ad30ac20211102154752.png) 图3.1 功能模块</center> 导航功能:这里将大件服务条线生产系统的测试环境域名以及测试负责人全部罗列出来,点击即可跳转至测试环境登录页面,无需配置host,想用哪个点哪里个,对产研测来说,无论是新人老人,都是非常友好的。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/b03d376d-1f7b-4de3-ae43-5b352943dddc20211102155047.png) 图3.2 导航功能</center> 通用工具:主要功能有大件联调工具 - 图3.3该功能点是一个配合联调的集中地,大件的上游比如ECLP,订单中间件,这些系统的单据流转到大件以后,可以在此页面查询出来,并且能操作大件各个流程节点的功能,直至大件流程闭环,比如调度预约,派车,分拣中心入库,出库,承运配送员收货,妥投或拒收。若是有需要配合联调的需求,此功能可只由大件测试组的某一个人操作,无需整个条线的人员投入,甚至可以由非大件测试组的人员操作即可。 - 图3.4通用工具里面还包含sendpay和jfs相关的辅助功能,比如sendpay的查询和修改功能,可以快速准确地查询某一位的sendpay值并进行替换,JFS的生成和查看功能,可以在测试过程中帮助我们查询key值里面的大报文,并能进行修改后重新生成新的key值。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/4df7fcfe-2641-434a-9ae2-b10503ca568820211102155500.png) 图3.3 通用工具一</center> <center>![](//img1.jcloudcs.com/developer.jdcloud.com/b4bd0341-47ff-4c8d-86da-6055116b137d20211102155836.png) 图3.4 通用工具二</center> 生产系统:包含的主流程功能是基于大件业务条线的各个系统的,包括:中间件、外单、调度、分拣、WMS、承运,每个系统都具备的功能有一键下单,一键查询订单关键信息以及操作日志,主流程功能按钮(e.g.图3.5),操作按钮会根据当前单据的状态更新,操作人员可根据当前的状态,点击按钮进行主流程的操作,无需思考复杂的业务流程,特别适合配合上下游联调,和研发自测造单使用; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/1c49f9d2-5b8b-41d3-ac5e-0bb5e188c24d20211102155915.png) 图3.5 分拣通用工具</center> ### 4 使用案例 我们拿该平台的大件分拣系统举例,从分拣系统接单(单据类型:纯配运单)到始发分拣中心封车,这是始发分拣中心闭环流程,其中的操作步骤包含:接单-批次收货-装箱&封箱-装车&封车 图4.1是分拣系统的一键下单功能,支持多种单据类型选择,多场景选择,还有根据分拣系统的特点,自定义包裹数量,以及修改sendpay功能; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/163d0ec7-a9fb-4152-8289-e4c77df4cdab20211102155951.png) 图4.1:一键下单</center> 图4.2是一键下单成功以后的提示信息,此时订单号已复制黏贴到了查询条件输入框里,直接点击查询按钮即可查询该单据状态; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/a8fbada1-1bcf-4602-acc6-c201c4fd0f8e20211102160032.png) 图4.2:一键下单成功</center> 图4.3是下单成功以后查询出来的运单的关键节点信息,以及它目前的生产状态:等待收货; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/ee6198da-85ad-4f4c-b393-fb2c0eb70a5220211102160106.png) 图4.3: 运单状态</center> 图4.4是点击始发分拣中心:北京分拣中心左边的【批次收货】按钮以后提示北京分拣中心收货成功; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/3b9d6caf-74b8-4f0c-a560-24b135df6c1620211102160137.png) 图4.4: 批次收货成功</center> 图4.5表示运单已全部入库成功,需要操作装箱和封箱; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/9a0e54e0-65c3-497c-afea-e8e1d0ee97bf20211102160227.png) 图4.5:运单待装箱&封箱</center> 图4.6操作装箱&封箱按钮以后提示PDA装箱&封箱成功,代表始发分拣中心已发货,且展示操作流水记录。 <center>![](//img1.jcloudcs.com/developer.jdcloud.com/0c4742a4-c557-445f-9b2e-452ef8f023a920211102160251.png) 图4.6:装箱&封箱成功</center> 图4.7运单已封箱完成后,待装车&封车; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/a6f68ca8-2b85-46a0-908f-3b43f179311f20211102160327.png) 图4.7:待装车&封车</center> 图4.8三运单已封车,始发分拣中心流程闭环,不可继续操作; <center>![](//img1.jcloudcs.com/developer.jdcloud.com/07ee500a-0fd0-499b-9149-b2ccc5e0559e20211102160353.png) 图4.8:已封车</center> ### 5 总结提升 通过该平台,解决了研发自测过程和测试联调中造单难的问题,无需研发搜罗各种工具或找测试人员帮助造数据,即可快速开展开发自测工作。新同事需要测试时,降低新同事学习成本,无需拼凑各种报文下单,即可快速进入业务测试的状态。同时,通过该平台,我们实现了如下几个核心、高频操作的秒级操作: - 一键下单:每个生产系统都具备常用订单类型的一键下单功能; - 自定义下单:下单报文中经常需要修改的字段支持修改后下单; - 主流程功能:通过查询功能将订单查询出来以后,根据订单的当前状态,可执行下一步操作,可快速配合联调; - 一键登录测试环境:该平台集成了大件测试环境的系统,方便测试、研发同学一次登录即可操作每一个系统; 通过该测试平台,目前我们的测试、开发同学在测试前,准备测试数据的时间得到了大幅的提升,平均2-3秒即可下单成功。我们后续将把更多的高频、主流程的测试功能在该平台实现,以便提升研发、测试的测试效率。 目前,在与外部系统联调测试中,对需要大家支持的联调测试,我们已经可以通过该平台快速支持。将来,我们期望可以直接让上、下游同学使用该平台,完成在测试联调中大件提供单据的下发及生产操作。同时,在我们测试平台的规划中,未来除支持大件的测试外,对于其他部门在测试上需要我们平台支持的需求,我们也很期待与大家一起合作,丰富我们测试平台支持场景的多样性,提升大家在测试工作中的效率,降低测试的成本。 ------------ ###### 自猿其说Tech-JDL京东物流技术发展部 ###### 作者:大件快运技术部 陈小兰
原创文章,需联系作者,授权转载
上一篇:Vue3 + Vite 前端工程化-基础篇
下一篇:单元测试百宝箱——大咖论道
相关文章
安全测试之探索windows游戏扫雷
Jmeter压测实战:Jmeter二次开发之JSF采样器实现
Laputa自动化测试框架介绍
自猿其说Tech
文章数
426
阅读量
2149964
作者其他文章
01
深入JDK中的Optional
本文将从Optional所解决的问题开始,逐层解剖,由浅入深,文中会出现Optioanl方法之间的对比,实践,误用情况分析,优缺点等。与大家一起,对这项Java8中的新特性,进行理解和深入。
01
Taro小程序跨端开发入门实战
为了让小程序开发更简单,更高效,我们采用 Taro 作为首选框架,我们将使用 Taro 的实践经验整理了出来,主要内容围绕着什么是 Taro,为什么用 Taro,以及 Taro 如何使用(正确使用的姿势),还有 Taro 背后的一些设计思想来进行展开,让大家能够对 Taro 有个完整的认识。
01
Flutter For Web实践
Flutter For Web 已经发布一年多时间,它的发布意味着我们可以真正地使用一套代码、一套资源部署整个大前端系统(包括:iOS、Android、Web)。渠道研发组经过一段时间的探索,使用Flutter For Web技术开发了移动端可视化编程平台—Flutter乐高,在这里希望和大家分享下使用Flutter For Web实践过程和踩坑实践
01
配运基础数据缓存瘦身实践
在基础数据的常规能力当中,数据的存取是最基础也是最重要的能力,为了整体提高数据的读取能力,缓存技术在基础数据的场景中得到了广泛的使用,下面会重点展示一下配运组近期针对数据缓存做的瘦身实践。
自猿其说Tech
文章数
426
阅读量
2149964
作者其他文章
01
深入JDK中的Optional
01
Taro小程序跨端开发入门实战
01
Flutter For Web实践
01
配运基础数据缓存瘦身实践
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号