您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>通讯/手机编程>

iOS研发工具MockServer的实践分析

大小:0.10 MB 人气: 2017-09-25 需要积分:1

前言

京东APP核心购物流程因其重要性,内部称之为黄金购物流程,公司各大业务事业部都有许多个性化诉求,每个版本承接的需求量很大。研发在保证需求完成数量的同时,还需要保证代码质量和持续提升开发效率,对于工具的应用就显得非常急迫。

iOS Mocker是我们部署的一套服务端接口Mock工具,主要用于业务开发过程解耦、测试数据保存和分享、客户端容错测试等场景。目前已完成搜索、商详、购物车等核心购物流程的接入,内部存储的数据基本覆盖了这些模块所有线上可能出现的接口返回场景,为各模块的版本迭代和代码重构提供了更全面的数据保障。

现状和痛点

 

开发过程客户端依赖服务端接口进行联调

在开发阶段,客户端和服务端同时进行需求开发,客户端在有些需求上可能需要等待服务端需求上线之后再进入开发,这种等待是不必要的,也增加了客户端后期的工作压力。

 

客户端更便捷的积累和获取验证数据

以搜索结果页的商品列表为例,由于商品种类繁多,特性差异巨大,列表页中给每个商品的展示区域虽然很小,但是却希望将每个商品的卖家、好评、促销等特征信息全面的呈现出来,所以每个商品占位仅有242像素高的cell上总共分出了9个区域。每个区域的展示根据服务端下发配置的不同,不同机型适配逻辑不同,组合成200多种不同的展示形态。手机品类的几种情况如下图:

 

由于cell有复用机制,在线上环境,cell中的每一种布局在理论上都有被回收复用到另一种布局的可能。那么,我们如何保证每一种布局之间相互复用都不会有问题?如何保证在某个区域新增加一种展示方案后,不会对相关区域造成不确定的影响?这种全面验证的主要难点在于特殊数据的积累上,需要一个工具来辅助客户端研发创建和积累这些特殊的验证数据。数据积累之后,客户端研发在代码重构和需求开发时能更方便更快速的进行验证。

客户端容错和健壮性测试

在生产环境,客户端做好接口容错处理是必须的。比如接口某字段下发为null时候,进行各种容器操作会导致Crash,或者可能会导致界面显示不能降级,所以容错和健壮性测试也是很关键的。

Mocker目标

去除开发阶段客户端对服务端进度的依赖,研发在Mocker服务器上编辑Json数据,开发时对应接口直接从Mocker服务器上拉取预先编译好的数据进行解析,完成后续开发和自测,无需在客户端添加额外的任何测试代码。

Mock数据全面覆盖客户端所有测试用例需要的接口数据,回归测试时或者代码重构之后,可以结合测试的代码覆盖率数据,保证完成了工程的全面验证。

有效改善研发和测试的沟通和工作效率,研发在需求提测时候会携带验证的Mock数据ID,测试在功能测试期间不需要依赖预发环境就可以进行测试;测试在发现问题向研发提出时候也会携带对应的Mock数据ID,方便研发快速定位问题。

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!