美文网首页
灰度测试的设计思路在交易模块中的实践

灰度测试的设计思路在交易模块中的实践

作者: 天草二十六_简村人 | 来源:发表于2023-01-15 18:09 被阅读0次

一、背景

测试人员在回归整个交易流程的时候,需要创建内部测试商品,除了价格是1分钱外,还不能对外暴露给普通用户。
在推新品或者特定的商品的时候,其可见性是指定人群范围,符合市场的推广需求。这时也需要具备灰度的思维。

另外一个场景就是支付测试。

在做多渠道多商户的支付路由,新的渠道特别是新的商户,为安全起见,在本地测试完成后,直接上线。这样做,既减少中间流程,不让支付api密钥和退款证书暴露在开发和测试环境,也大大提高了发布效率。但这要求我们在本地能够做好支付的测试。

二、目标

  • 1、提高测试验证的安全性。
  • 2、满足市场的定向推广。
  • 3、方便测试人员回归整个交易流程。

三、关键设计

3.1、业务隔离

测试支付的路由配置,采取单独的业务。新业务的测试目标是新商户的支付和退款两大功能。

image.png

编号105就是我们用于灰度测试支付的业务。

为了测试拉起支付的场景,我们特意申请了一个微信公众号。然后把业务105的支付路由指向新商户。

image.png

待测试验证完成后, 再将线上正式的业务111的支付路由指向新商户。


image.png

这就是业务隔离给我们在测试支付路由带来的好处。正式业务在切换使用新商户前,使用灰度业务来提前验证。再也不用担心换商户带来的额外风险了,另外还有一重要的点是,测试可以在生产环境里直接验证。

业务方105就是一个试水者,蹚过了这浑水,业务方111才放心了。

3.2、灰度商品的展示

在之前的商品模块里已或多或少介绍过,这里简单再梳理一遍思路。

灰度商品的要求有以下几点:

  • 1、灰度商品只有特定的测试人群才能看到
  • 2、需要维护一个灰度人员的名单,一般是登录用户的userId
  • 3、前端默认展示的是正常商品列表
  • 4、当登录后且用户ID是在灰度人员名单里,有两种展示设计,一是和商品列表在一起混合展示,另一是在单独的一块区域界面展示灰度商品。(推荐使用前一个方案,查询商品列表接口由后端提供,查询条件增加是否灰度)
  • 5、测试人员对商品定价为1分钱,方便测试后面的业务。

试想,没有灰度商品的设计,你会偷偷摸摸地上架一个商品,商品名称前增加“测试”字眼,大写特写,还担心真实用户看到了。呵呵,当用户看到了只需要一分钱就能购买,你还敢不履约吗?想想风险不可谓不大。

3.3、商品的标签

上一点只是简单地区分是灰度还是正常,我们在推广商品的时候,开放的规则往往是更复杂的。比如只有ip地址是浙江的才可见,也可能要求某个学校的用户才可见(甚至不同的学校看到的商品价格是不一样的),或者对指定的vip用户而言可见。

这些就不是单纯地灰度一把,就能解决得了。要实现它,其实是灰度设计的延续,那就是标签机制了。

这里梳理一下标签机制的适用场景:

  • 1、任务的优先级匹配。比如对某些任务打上high的标签,说明该任务的优先级是高。还可以打上其他标签,因为标签是支持多个的。
  • 2、商品的可见学校,多个使用逗号隔开。刚开始学校标签,就只有一个学校ID,随着市场的推广开放,标签包含的学校会越来越多。
  • 3、给商品打上什么标签,展示的时候,根据查询条件,反查标签。

3.4、灰度订单

支持将不同的业务隔离开来

具体的实现和商品、支付类同,这里就不赘述了。

四、总结

在做服务发布的时候,灰度发布也是采用上面的设计思路了。所以,很多设计思路都是相通的,互相借鉴,能让你的业务满足产品或者市场的各种变化的需求,高阶的程序员在设计的时候,还要能够做到更抽象的设计。(产品没想到的,你早想到了)

相关文章

  • 灰度测试的设计思路在交易模块中的实践

    一、背景 测试人员在回归整个交易流程的时候,需要创建内部测试商品,除了价格是1分钱外,还不能对外暴露给普通用户。在...

  • iOS中利用TestFlight进行灰度测试

    iOS中利用TestFlight进行灰度测试 iOS中利用TestFlight进行灰度测试

  • YYCache 源码学习(二):YYDiskCache

    整体思路 从作者的《YYCache 设计思路》一文中可以看出,作者在设计YYDiskCache之前做了充分的测试:...

  • Python测试

    单元测试 在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最...

  • Android 单元测试实践

    什么是单元测试 在计算机编程中,单元测试(Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最...

  • iOS开发单元测试基础

    什么是单元测试 在计算机编程中,单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最...

  • 代码测试用例入门

    在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来...

  • 26. 什么是单元测试

    在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来...

  • PHP单元测试-mock和数据库测试

    在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来...

  • 软件测试的测试思路总结

    清晰的测试思路会让工作更加流畅,先来看看进行初步软件测试时,一些测试思路: 模块测试 l模块功能点检查 l功能操作...

网友评论

      本文标题:灰度测试的设计思路在交易模块中的实践

      本文链接:https://www.haomeiwen.com/subject/wmeacdtx.html