分享好友 最新资讯首页 最新资讯分类 切换频道
订单导出的预发和线上的自动化对比工具
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



最新文章
搜狗输入法官方下载_搜狗输入法最新破解版v11.5.0.5369免费下载
资源说明 搜狗输入法v11.5.0.5369是目前最新的一个版本,作为王牌中的输入法,赢得了大众好评,用户数量庞大,界面简洁,操作简
WordPress成品站:畅享豪华设计与卓越性能
近年来,SUV市场迎来一股新潮流,亚洲与欧洲品牌的精品SUV凭借独特的设计风格与尖端科技脱颖而出,深受消费者喜爱。这些车型不仅
独立站的推广运营方式有哪些
随着互联网的快速发展,越来越多的人开始创建自己的网站,独立站的数量也在不断增加。但是,如何让自己的独立站被更多的人知道和
个人工作计划安排(模板3篇)
忙碌的七月已过去,八月的到来充满了未知,但对我而言,工作中的不确定*正是推动我前行的动力。作为一名行政人员,我始终秉持着
写作工具的全方位应用
随着人工智能技术的飞速发展智能写作工具逐渐成为文字工作者的得力助手。2024年写作将迎来全新的发展机遇,本文将为您全面解析写
电子邮件营销:构建客户紧密联系的桥梁
  在当今这个快节奏的商业环境中,与客户保持紧密联系是至关重要的。而电子邮件营销正是一种高效、便捷的方式,能够帮助企业与
淘宝返利app叫什么?高佣金安全可靠的返利软件推荐
免费领取淘宝返利软件的APP叫【氧券】免费领取,不收任何费用,还有返利佣金,佣金目前是最高的平台。淘宝返利APP哪个好?高佣金
精选挂件图片赏析探索心灵手作的独特魅力 —— 超高自然流量揭秘挂件图片的SEO优化秘诀!
在数字时代的洪流中,挂件图片以其独特的审美价值和情感表达迅速占领了我们的视线,本文深入探索挂件图片的多元化主题、精湛工艺
酒店管理创新应用:鹿马以自助入住为核心,构建多端多场景方案
品牌是酒店的核心资产与竞争优势所在,而如何提升运营效率、降低成本、增强客户黏性,是当代酒店管理者亟需解决的问题。作为酒店数
安兔兔评测2024最新版
《安兔兔评测》(AnTuTu Benchmark)是一款专业实用的手机评测软件,软件中你可以对你的手机进行一系列的测试,一键显示手机硬件