分享好友 最新资讯首页 最新资讯分类 切换频道
订单导出的预发和线上的自动化对比工具
2024-12-28 02:11

订单导出需要将交易数据通过报表的形式导出并提供下载給商家,供商家发货、对账等。由于交易的场景非常多,承接多个业务(微商城、零售单店、零售连锁版、餐饮),订单类型很多,新老报表的字段覆盖交易、支付、会员、优惠、发货、退款、特定业务等,合计超过100个。每次代码变更(尤其是比较大的改动),如果想要手工验证指定时间段内的绝大多数场景下绝大多数订单类型的所有字段都没有问题,在前端页面点击下载报表,然后手工对比,将是非常大的工作量。因此,迫切需要一个自动化的对比工具,对比变更分支与线上分支的导出报表,找出和分析差异,修复问题。

为什么选择要在预发而不在QA进行呢? 因为订单导出的准确性不仅包含导出和下载功能(20%),更重要的是数据的准确性(80%)。而QA的数据不一定准确,且涵盖面不广,不准确的数据会导致错误的对比结果,对变更的影响造成很大的干扰,延误时间。 因此,这里直接选择用线上的数据来做对比,有时也会意外发现线上数据的一点问题。

先做出一个假定:如果master分支的线上逻辑是没有问题的,那么预发的branch分支导出的结果,应该跟线上保持一致; 如果线上的逻辑有问题,那么预发 branch 分支导出的结果,应该有部分跟线上不一致,且不一致的地方根据推断应该仅跟改动部分有关。 分两种情况:

  • 系统代码优化与重构:逻辑没有改动,那么预发和线上的导出结果应该完全一致。如果有不一致的情况发生,那么需要分析不一致的原因,决定是否可以接受和取舍。
  • 业务逻辑优化:比如在某个场景下,“订单类型”字段原来输出“分销买家订单”,现在需要输出“分销买家订单/拼团订单”,那么导出结果的不一致应该限于“订单类型”。当然,如果有其他报表字段的输出也依赖于“订单类型”字段,那么可能其他字段也会不一致,这时候需要进一步分析。

整体思路如下:

  • 使用 Python 来完成该任务,因为 Python 非常简洁实用 ,适合做质量要求不是非常高的接口测试工具;
  • 分别往预发和线上发送相同的请求,然后通过导出ID拿到预发请求的文件和线上请求的文件,然后读取并逐字段对比,打印出差异;
  • 将对比结果保存在 /tmp/cmp_export.txt , 发送邮件保存。
  • 不同店铺的不同业务配置的导出测试用例通过一个单独的配置文件来给出,测试用例配置与请求测试功能分离。

这里使用了闭包的技术来配置化地构造大量测试用例。参阅:Python使用闭包结合配置自动生成函数。

为了做一个尽可能通用一点的工具框架,需要将通用部分尽可能抽离出来。

从流程上看: 构造请求 - 发送请求 - 获取结果 - 比较结果并输出 。其中,具体请求会有所不同,获取结果的方式会有所不同,比较结果的方法可能不同。需要自定义请求构造函数、获取结果函数、比较函数。 不过从中也可以抽离通用部分。

  • 可以根据基本请求自动生成批量请求;
  • 发送 http rest 请求获取结果是通用的;
  • 逐行对比字段是通用的。

这里拆分成五个文件:

  • conf.py :工具的配置部分
  • common.py :包含可复用的基础功能函数,基本不用动;
  • cases.py :是测试用例构造部分;
  • export.py :是根据具体业务的定制化部分,需要实现 getFromService, compare 函数。
  • test.py :是测试入口,基本不用动。

test.py : 主测试程序。 只要运行 python test.py 即可。然后看看是否有 diff 。如果没有 diff ,那就说明预发和线上导出结果一致; 如果有 diff ,就需要仔细分析 diff ,找出原因并解决。


common.py


cases.py


export.py 定制化部分


conf.py



最新文章
链动3+1系统开发(模式详解)
  链动3+1app商城,链动3+1开发,链动3+1商城软件开发(费用便宜),链动3+1模式开发,链动3+1系统开发,链动3+1小程序开发  
河南单招难的学校排名(河南单招难不难)
河南单招难的学校排名随着高考竞争的日益激烈,越来越多的学生选择参加单招考试,希望通过这种方式进入理想的高职院校。河南省的
神魔启示录双开攻略详解,掌握秘籍,轻松解锁双倍游戏乐趣与效率
在奇幻与冒险交织的《神魔启示录》世界里,每一位玩家都渴望拥有更多的游戏乐趣和效率,而双开,即在同一台设备上同时运行两个《
第24336期排列五:揭示大奖背后的秘密与玩法
排列五,即数字型彩票游戏中的一颗璀璨明珠,近年来吸引了无数玩家的关注和参与。对于广大彩民而言,每一期的开奖结果仿佛都在倾
“老宅翻新”的风,还是吹到了高校!
有人说,现如今AI时代下,每位企业CIO手里,都有着一套急需翻新的“老宅”。对于很多企业来说,“老宅”是其业务运行的核心,但
汕头打胎药私人店联系方式(药流堕胎专用)第一时间发货+正品保证
关于打胎药的使用与注意事项 Www.TH38。CN打胎,即流产,是女性在意外怀孕后可能选择的一种终止妊娠的方式。在这个过程中,打胎
百度蜘蛛池首页覆盖推广,解锁搜索引擎优化新境界,百度蜘蛛池首页覆盖推广方案
百度蜘蛛池首页覆盖推广是一种创新的搜索引擎优化策略,通过构建专业的蜘蛛池,实现百度搜索引擎对网站首页的全面覆盖。该方案旨
键盘语 键盘语言设置在哪里
1、电脑屏幕按键怎么调成中文2、中国手机怎样添加键盘语言3、腾讯输入法键盘语录在哪里4、手机键盘语音怎么设置5、键盘语言详细
百度免费广告发布平台,百度竞价托管外包
免费发布广告的网站|广告信息发布平台|黄页广告网站,都有那些网站可以免费发布广告?网上有哪些平台可以免费发布广告?到哪里发