背景

随着闲鱼业务的高速发展,其商品类型、交易模板以及互动玩法日趋丰富。造数常常需要耗费测试同学大量的时间,其根本问题归纳为以下几点:

  1. 1. 人工成本高:商品、订单的类型与状态笛卡尔乘积后多达上百种,数据种类丰富且构造流程长,测试过程费时又费力;

  2. 2. 造数门槛高:商品数据构造往往和账户类型、人群等有强耦合关系,无论是测试验收还是跨部门协作时,都需要测试同学投入很多额外的时间辅助数据构造;

  3. 3. 测试工具无数据支撑:在自动化测试、性能测试过程时,需要丰富的数据类型作为驱动。

为了解决以上问题,闲鱼测试设计了一套各业务可快速接入,并在PC、闲鱼APP内和钉钉上均可使用的测试数据构造解决方案,旨在提升测试效率的同时,更好地推进测试左移。

方案设计

如下图所示为闲鱼业务的整体架构图,造数平台需要触达多条业务线,支撑商品、订单、优惠等业务的数据构造,并为测试自动化工具提供数据支持。此外,我们期望合作方在进行产品验收时,也能以便捷的方式获取到数据。

业务架构图.png

基于以上愿景,造数平台系统内部设计考虑到了可扩展性、易用性两大方面,其整体架构图如下图所示,一是提供了用户进行模板化管理的入口,通过可插拔的配置来自定义搭建自己所需的造数场景;二是和各平台打通,发挥各平台的优势,达到敏捷高效造数的目的。

造数架构设计图.png

支持动态化配置

为了方便后续不同业务的接入,并为自动化巡检、CI/CD、接口测试等提供数据支持,平台期望以一种确保数据源动态可插拔的方式来承接:不同业务可结合自身业务,配置不同接入源类型的元数据模板,并做到数据源隔离;而后再基于元数据模板进行自定义的业务模板配置,整体步骤如下:

  1. 1. 在造数平台上对业务元数据进行配置管理;

  2. 2. 基于元数据进行业务模板化配置;

  3. 3. 造数PC端、闲鱼APP以及钉钉机器人上将共享一份配置;

打通多端造数入口

为了兼顾不同用户人群的使用体验,平台上层入口支持了三种:PC工作台、闲鱼APP内和钉钉内交互机器人。三种渠道各有优势。

闲鱼APP内

闲鱼APP内的优势在于可以自动获取设备环境信息。以商品域测试为例,闲鱼不同商品类型的发布入口不同,其中部分商品发布流程有一定时间成本。我们基于JS Bridge,拿到闲鱼app当前用户的登录态,一键发布宝贝,并获取到商品的schema信息跳转至商品详情页,方便测试同学进行快速验证。

闲鱼APP内发布商品.gif

钉钉内交互机器人

钉钉交互机器人的方式进行造数的优势在于便捷 、通用、简洁,可以和日常工作无缝衔接。举个栗子:验货宝业务是C2S2C的模式,中间部分订单节点的推进是需要联系开发或对应的服务商的。遇到问题都需要拉群进行处理,如下图所示,我们将验货宝推单的功能做在钉钉内,支持机器人交互的方式进行推单,一是省去了联系开发和服务商推单的时间成本,二是如遇订单推进的相关问题,我们也可直接将错误信息反馈到群内,省去了换端的成本。

钉钉机器人交互.png

PC工作台

PC工作台操作的优势在于方便管理。在PC端,我们可以进行商品发布和订单模板的配置和自定义修改,其操作流程可参加上文中提及的动态化配置步骤。此外在PC端,我们还支持了模板克隆、以及批量造数等功能。

PC端批量造数.png

提升数据覆盖度

目前平台主要覆盖了商品、交易、营销优惠三大业务线,支持构造商品、订单、交易履约以及营销优惠的数据构造。如下图所示为造数工厂目标覆盖的主要数据类型。

数据覆盖度.png

其中商品支持了诸如优品、营销以及一些基础商品类型的构造,目前全部类型都已覆盖完成。交易已支持C2C不同状态类型的订单构造,其他订单类型也已在持续接入中。

效果及展望

造数工厂未上线之前,无论是业务测试、产品设计验收还是跨部门合作,都需要牺牲测试同学的大量时间构造数据。现如今我们以最小的建设成本,搭建了一套具有可配置、可扩展能力的造数工具平台,支持大家自主获取数据,工作效率得以大幅度提升。根据目前效果来看,商品的获取速度由原本的分级提升至秒级。至于订单的构造和履约推进流程复杂,如下图所示,测试同学往往需要准备买卖家两个账号,分别发布和购买商品,后续履约推进还需联系开发,中间的等待过程往往总是漫长。现在通过造数工厂即可自助造单和履约推进,单笔交易流程回归耗时由1h下降到分钟级别。

交易测试流程.png

自年初上线以来,造数平台已接入商品、交易、优惠三大业务线,覆盖核心商品类型20+,通过平台发布商品60000+,造单100+。此外还支撑了商品合规、商详升级等多个重构需求的数据准备工作,测试效率得到显著提升。后续,我们将从几个方面对平台进行持续优化:

  • • 持续提升数据覆盖度,承接诸如订单诊断、商品诊断、用户资产等更多的数据构造工作;

  • • 目前平台的业务接入不支持自定义插件化扩展,降低接入成本将是我们持续努力的方向;

  • • 丰富"测钉一体化"的交互模式,让平台所有的数据获取,做到一个群就够了。

平台希望通过快速的数据构造能力赋能业务测试,推进测试左移。让更多的闲鱼小二解放双手,从重复性的劳动中跳脱出来。

关于闲鱼测试数据构造,我有几条心得相关推荐

  1. 闲鱼用户点击仿冒链接付款被骗钱 客服:线下付款不在保障范围

    想要了解更多更有趣网络安全技术新闻,可以搜索公众号关注:黑掌 闲鱼用户点击仿冒链接付款被骗钱,客服:线下付款不在保障范围,已封禁卖家账号.近日,广西南宁.裘先生称,在闲鱼看中一款ipad,标价1469 ...

  2. 闲鱼高效投放背后的秘密——鲲鹏

    背景 闲鱼业务发展迅猛,首页feeds等多个大流量场景成为了各条业务线的产品.运营争抢的流量入口.随着海量的投放需求提到技术团队,陈旧的开发.运营模式的弊端就显现出来了:现有技术难以保障多业务方的pv ...

  3. RxJava在闲鱼系统吞吐量提升上的实践

    https://mp.weixin.qq.com/s/7-h2w_iXrM5861iGTpftNQ 引言 响应式编程最简单的定义是Reactive programming is programming ...

  4. 闲鱼把各种玩法做成了一个平台:哆啦A梦

    简介:哆啦A梦的口袋里,都有哪些好玩的? 作者:闲鱼技术-齐悟 玩法平台背景 在闲鱼内我们把供给用户的闲鱼红包.支付宝红包.包邮券.宝卡等统称为用户权益.是闲鱼用户运营的重要策略,在拉新.留存.促活. ...

  5. 重磅发布 | 承载亿级流量的开发框架,闲鱼Flutter技术解析与实战大公开

    简介: 闲鱼是国内最早接触使用 Flutter 的团队,经过多次研讨验证并大规模上线,在App性能.稳定性.开发效率上收益甚多.现在,闲鱼将这个过程中的一手实践知识和技术沉淀,整理成册 --<F ...

  6. 为了帮助卖家成交,闲鱼工程师做了些什么?

    引言 闲鱼是一个C2C平台,提高卖家活跃度不仅有利于成交的提升,对于用户增长也有积极意义.而其中的关键点就在于其成交的效率.而个人卖家由于其专业程度不如专业卖家,成交效率往往并不高.我们希望可以实现两 ...

  7. 看!闲鱼在ServiceMesh的探索和实践

    背景: 在阿里服务端开发以Java为主的大背景下,其他异构语言业务如何调用现有Java服务,如何与集团中间件打通,就成为使用非Java语言团队必须要解决的首要问题. 已有方案问题: 在ServiceM ...

  8. Flutter高内聚组件怎么做?阿里闲鱼打造开源高效方案!

    fish_redux是闲鱼技术团队打造的flutter应用开发框架,旨在解决页面内组件间的高内聚.低耦合问题.开源地址:https://github.com/alibaba/fish-redux 从r ...

  9. Dubbo Mesh 在闲鱼生产环境中的落地实践

    本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是"借力开源. ...

  10. 闲鱼如何保障交易链路质量

    背景 闲鱼作为一款垂直交易社区APP,拥有复杂多样的业务场景:涉及c2c.回收寄卖.租房租赁.见面交易.验货担保等,复杂多变的交易模式.比如验货流程: 涉及39个状态机节点 横跨10+应用系统 涉及6 ...

最新文章

  1. 如何进入python程序代码编辑环境_Python怎么打开代码编辑器 来学习吧
  2. 微带线特性阻抗计算公式_利用HFSS计算微带线的特性阻抗
  3. dynamic与var
  4. LeetCode 第 23 场双周赛(970/2044,前47.5%)
  5. MyEclipse: The Table cannot be found on the database
  6. 精品软件 推荐 卡巴斯基安全软件 本人使用过的效果最好的杀毒软件之一哟...
  7. 【图神经网络】 漫谈图神经网络 (一)
  8. iOS 8 自适应 Cell
  9. Ubuntu安装gcc-7.3.0
  10. 2021 小白版,360 行行行转 IT
  11. 最嗨的不是抽奖,看看人家公司的年会
  12. eclipseme插件安装的一点心得
  13. 川大计算机系1999级高伟,四川大学计算机系主任魏骁勇研发人脸识别无人机课堂点名...
  14. 最新版 sublime text 3 切换中文方法
  15. 一种基于信令数据的业务推销类骚扰电话识别方法
  16. Maven model archetype说明
  17. 建模助手『 一键参数』快速修改构件,族参数
  18. 基于android的个人理财的论文,基于Android的个人理财系统的设计与实现毕业论文.doc...
  19. pdf论文图中数据自动扫描,识别和获取
  20. 数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍

热门文章

  1. 有向图和有权图的邻接矩阵表示法
  2. [BZOJ2177][最小/最大(曼哈顿距离)生成树]曼哈顿最小生成树
  3. wnmp环境配置php7,WNMP nginx+php5+mysql测试环境安装(Windows7)(二)
  4. 新版js进阶高频面试题
  5. 爬虫入门经典(一) | 一文教你用Spider制作简易的翻译工具
  6. Permission denied: user=10273, access=WRITE, inode=“/cou/jd_phone_list“:root:supergroup:-rw-r--r--
  7. 梦幻星空html,如何使用HTML5的canvas来画一个梦幻星空,快来学习一下吧 | 龙奔网...
  8. PHP修改后缀名绕过
  9. 69期-Java SE-036_MySQL-7 SQL练习 -doing
  10. ubuntu 安装网卡驱动