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

2023-01-15  本文已影响0人  天草二十六_简村人

一、背景

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

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

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

二、目标

三、关键设计

3.1、业务隔离

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

image.png

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

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

image.png

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


image.png

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

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

3.2、灰度商品的展示

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

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

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

3.3、商品的标签

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

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

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

3.4、灰度订单

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

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

四、总结

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

上一篇 下一篇

猜你喜欢

热点阅读