测试环境回归用例跑完,300 个真实手机号各收到一条验证码短信,账单多出 300 条。用例里的号码是从线上库导的测试账号。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

if env != "prod":
    log.info("mock sms to %s: %s", phone, code)
    return

测试环境用的是生产短信通道和真实密钥,配置只改了数据库地址。用例数据没脱敏,手机号是真实值。发送前没有任何环境判断。这一点先确认清楚,后面就不用反复试。

碰到「测试环境误发」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。

具体做法是,测试环境接沙箱通道 只记录不真发;密钥按环境隔离 生产密钥不下发到测试;发送前判断环境和号码白名单;把这条写进上线检查清单。

改完照着核一遍,测试环境再跑用例只产生日志不消耗条数,服务商后台没有新增发送记录。

作者 9823189