做小程序这些年,我们见过最多的返工,不是功能没做出来,而是“开发者工具里明明没问题”。电脑上模拟器一切正常,发给老板一扫码,页面白屏;或者安卓机好好的,某款苹果手机上按钮被底部横条挡住,用户根本点不到。小程序测试这件事,说白了就是在上线之前,把这些“用户手里才会出现的问题”提前找出来。
很多客户问微信小程序开发怎么调试,以为装好开发者工具点一下“编译”就算测过了。其实工具只是第一步,真正决定上线质量的,是真机、真实网络和真实账号下跑出来的结果。
模拟器和真机,差别到底在哪
开发者工具里的模拟器,本质是在电脑浏览器内核上模拟手机环境。它方便看布局、看接口返回、打断点,开发阶段离不开它。问题在于它和用户手机终究不是一回事:
- 渲染内核不同,部分样式在模拟器里正常,到了某些机型上会错位;
- 电脑网络又快又稳,手机在电梯、地下车库里经常是弱网;
- 摄像头、定位、蓝牙、扫码、震动这些硬件能力,模拟器只能“假装”调用;
- 支付、订阅消息这类功能,很多只能在真机上走完整流程。
所以我们做小程序测试的习惯是:功能开发完一块,就用“真机调试”或“预览”扫码在手机上走一遍,不要等全部做完再一次性测。越往后攒,问题越难定位。
小程序测试分几轮做比较稳
一个中等规模的项目,我们一般把小程序测试拆成三轮,每轮关注的东西不一样。
第一轮:功能自测
开发人员自己测,目标是每个页面能打开、每个按钮有反应、表单提交能成功。这一轮重点看接口报错和空数据:列表没数据时页面显示什么?图片加载失败是不是一片空白?网络断开时有没有提示?很多小程序上线后被吐槽“卡死了”,其实是接口超时后页面没有任何反馈。
第二轮:业务流程测试
这一轮最好让懂业务的人来测,比如店长、客服,而不只是程序员。他们会按真实顾客的路径走:进店、浏览、加购、下单、支付、查看订单、申请退款。程序员测功能是“这个按钮能不能点”,业务人员测的是“顾客会不会卡在这一步”。两种视角都需要。
第三轮:兼容和回归
找几台不同品牌、不同年份的手机,苹果和安卓都要有,屏幕大的小的都覆盖一下。改过的 bug 要回头再验一遍,顺手把相关页面也点一点,避免改了 A 坏了 B。
关键流程要单独拎出来验
有几块地方,出了问题直接影响营收或审核,做小程序测试时我们会单独列表逐项过:
- 登录与授权:首次进入、拒绝授权后再次进入、换微信号登录,三种情况都要测。用户拒绝手机号授权时,页面不能直接卡死,要给出替代入口或说明。
- 支付:正常支付、支付中途取消、支付成功但网络断开回不到页面,这几种都要在真机上走。最后一种最容易漏,结果就是用户付了钱却看到“未支付”。
- 分享与扫码进入:从分享卡片、小程序码、公众号菜单进来,落地页参数是否正确。
- 订阅消息和短信通知:用户同意订阅后能不能收到,模板内容有没有乱码。
支付相关的测试一定要用真实环境的小额流程验证一遍,测试环境走通不代表正式环境配置无误,商户号、回调地址填错一个字符都会出问题。
小程序测试里的弱网和异常场景
开发者工具里可以模拟弱网和断网,手机上也可以开飞行模式来回切。我们常做的几个动作:提交订单的一瞬间断网;页面加载到一半切后台再切回来;连续快速点两次“提交”按钮。
最后这个很典型,也是小程序测试里最常被跳过的一项。没做防重复提交的小程序,用户手一抖就生成两张订单,客服还得一单单去退。这些都不是复杂技术,只是平时没人去试。
提交审核前的检查清单
小程序测试做完,提交审核之前再对一遍下面这些,能少很多被驳回的情况:
- 服务类目和实际功能一致,没有超范围的功能入口;
- 隐私保护指引已填写,收集了哪些信息、用途是什么写清楚;
- 测试账号、测试数据清理干净,不要让审核人员看到“测试测试123”这类内容;
- 需要登录才能看的功能,给审核提供可用的体验账号;
- 首页和主要页面没有空白页、无法点击的按钮;
- 体验版里留下的调试开关、vConsole 已关闭。
结论
小程序测试别只停留在开发者工具里,真机、弱网、不同机型和完整业务流程都要走到,支付、登录授权、分享进入这几块单独列清单逐项验,审核前再按检查项对一遍。我们在小程序开发项目里会把测试轮次写进排期,交付时附带测试记录。项目快上线、心里没底的,可以打 18720919319 找蔚岚科技聊聊。
常见问题
微信小程序开发怎么调试真机?
在开发者工具里点“真机调试”,用手机微信扫码即可。手机上的操作会同步输出日志,接口和报错都能在电脑上看到,比单纯预览好排查。
小程序测试需要准备多少台手机?
不用很多,关键是覆盖面。苹果、安卓各几台,新旧机型和大小屏幕都有,再加上用户群里常见的品牌,基本就够用了。
体验版和正式版测试结果会不一样吗?
有可能。正式版用的是正式接口和正式商户配置,体验版通过了也建议上线后马上用正式版把下单、支付再走一遍。
没有测试人员,小程序测试能自己做吗?
可以。开发人员做功能自测,再让店长或客服按顾客的路径走一遍流程,问题往往比专职测试找得还准,因为他们最懂业务。
上线后发现 bug 怎么办?
先判断影响范围,影响下单支付的立刻修复并提交审核,必要时在页面加公告说明。小问题可以攒一批统一发版,避免频繁提审。