如果每次运行都换一个新号码,注册与账号找回的回归测试就失去了意义:这样的场景只验证了输入表单,验证不了同一个联系方式重复登录时真实账号会发生什么。号码离线租用换了一种思路——测试环境拿到的是一个卡槽,它在每次运行之间保持不变,只有在接收验证码的时段才会上线。下面说明测试环境为什么需要一个不变的号码、回归测试该保留多少个卡槽、如何为回归运行规划在线时段,以及什么时候必须用到付费套餐。

为什么测试环境需要一个不变的号码

注册、确认、重复登录、账号找回——这样的完整场景依赖账号号码在各个步骤之间保持一致。占位验证码只能验证表单,验证不了链路本身:验证码投递到测试环境、号码与已存在账号的绑定关系、找回密码时的重复验证。这些环节只有在真实验证码送达一个真正分配给测试的号码时才能复现,而不是直接把验证码塞进测试脚本。

为什么一次性接码不适合回归测试

一次性接码卖的是验证码,不是号码:收到验证码后号码立即释放,下一次运行拿到的是另一个联系方式。已有测试账号在新号码上找回账号的场景每次都无法复现——回归测试需要的正是用同一个已绑定的联系方式重复登录。离线卡槽解决了这个问题:号码在整个已付费的持有期限内保持不变——一天、3天、一周、一个月、3个月或半年——同一个场景可以在上面每天重复运行。

测试环境该保留多少个卡槽

卡槽数量取决于并行场景的数量,而不是运行频率:注册、双重验证、账号找回和换号至少是四个互不依赖的联系方式,前提是测试之间不应争抢同一个卡槽。每个卡槽每天都有固定的免费在线时段——1小时,最多2次——只要验证码到达迅速且可预测,这个额度足以支撑同一场景每天一到两次短时回归运行;运行更频繁时,从一开始就购买付费套餐更划算。

为回归运行规划在线时段

卡槽需要提前上线,而不是等测试已经在等验证码时才上线:发往离线号码的短信不会送达,而卡槽上线后还需要时间在网络上完成注册,信道才准备好接收消息。实用的做法是在场景开始前几分钟就让卡槽上线,并在整个运行期间保持在线,而不是按测试的每一步分段开关。

与生产号码隔离,以及何时需要付费套餐

测试卡槽应来自独立的号码池,而不是与生产账号共用同一批号码:混用会打乱费用核算,还可能让回归运行意外占用正等待生产验证码的号码的在线时段。只要回归测试能装进每天一到两个短时段,免费时段就够用。当运行时间长——发版前完整跑一遍CI往往要几个小时而不是几分钟——两次一小时的时段、也就是每个卡槽每天两小时的在线时长,几乎肯定不够用,这时比以前更常需要给卡槽加购1、3、6、12或24小时的有保障在线时段套餐:这段时间信道持续在线不中断,也不与其他卡槽的免费时段一起排队等待物理信道。

常见问题

能否每天都在同一个离线号码上跑回归测试?

可以,这正是这套方案的意义所在:卡槽在整个已付费期限内归你所有,同一个号码可以按场景需要参与任意次数,而不像一次性接码那样一次运行只能用一次。

如果测试没能在免费的一小时内跑完怎么办?

卡槽会转为离线,验证码随之无法送达——当天额度内还有其他免费时段,长时间运行则建议提前购买有保障的在线时段套餐,避免信道在场景中途关闭。

怎么判断测试环境用免费时段就够,不需要付费套餐?

如果回归测试能装进每天一到两个一小时的短时段,并且能提前按预期验证码到达时间规划上线,免费时段就足够;付费套餐适合运行时间长且不能中断、等不起下一个时段的场景。

带免费时段与有保障在线时段套餐的测试环境卡槽,可在离线短信租用专区获取。卡槽持有权与免费时段的运作方式见什么是号码离线租用,CI中使用真实验证码的完整流程见用真实验证码做自动化测试,如何避免测试环境混入生产数据见测试数据。针对具体运行选择付费套餐时长,见如何选择有保障在线时段的时长