小程序测试工作
- 前期准备
(1) 微信版本号需在6.3.27及以上,低于提示升级。
(2) qa需申请对应小程序体验者权限&开发者权限。
(3) 小程序开发版、体验版、正式版。
(4) 小程序AppID,项目地址&名字。
(5) 明确小程序本次测试入口&版本。
(6) 微信公众号平台发布的【小程序开发助手】, 可方便快捷的预览和体验线上版本,体验版本以及开发版本。
- 测试点
(1) 授权:目前已实现静默授权,即用户首次访问小程序,主动获取微信授权,通过获取openid,生成转转uid,并存储昵称、头像等信息。后续用户若杀掉小程序重新进入,无需重新授权。
(2) 功能:与端内正常测试功能无异;
(3) 缓存:功能需求后,此时就需要关注缓存情况:
① 微信给每个小程序提供了10MB的本地缓存。
② 对于账号切换、版本发布等带来的缓存,目前解决方法是简单粗暴的将小程序删掉,重新进入生效。
③ 页面切换时,可能会将上一个页面的数据带到下一个页面展示,例如【主程序-红包需求】点击“未使用”先显示正确文案—》点击“已使用”或“已过期”—》点击“未使用”,文案却展示“已使用”和“未使用”的文案。此时可以给开发人员提bug,通过代码解决页面缓存问题;
④ 从代码层面解决缓存问题:
1) 清除当前存储到storage里的内容,如cookie信息,主要调用wx.clearStorageSync();
2) 2.从基础库1.9.90开始,小程序支持自动更新上线代码,接口为wx.getUpdateManager()。
(4) 性能
(5) 分享功能测试:
① 分享到好友列表&生成海报页分享到朋友圈;
② 用线上/测试/开发版分享给好友,落地页(引导页)就是相应的线上/测试/开发版;
③ 朋友圈识别跳转都是线上版;所以在测试过程中若涉及到扫码跳转,就需借助【小程序码测试工具】。
(6) 服务通知:以模板ID的形式推送服务通知;
(7) 微信公众号:
① 需关注公众号&无须收集formId;
② 小程序服务通知:收集formId;
③ formId有效期7d,如果用户没有可用的formId,则无法给用户推送相应消息;
④ 通过点击操作单个/批量收集formId,主要存储在wtable,触发行为如支付、提交表单等;详情戳一戳它https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html
⑤ 批量收集formId:POST请求,如zzwxpush/addFormIds
⑥ 单个收集formId:GET请求,如zzwxpush/addFormId?formId
⑦
⑧
⑨ 每个小程序收集的formId,只能用于对应的小程序,也只能用于对应的uid。例如闲置社108批量收集formId,却存储在小程序103,结果导致闲置社批量formId失败,而且小程序存储很多无效可用的formId,主要原因是由于前端传入参数source=103导致。
⑩ 常出现问题:formId无效(命中小程序自身策略)、无可用formId(需收集)。
(8) 层级:
① M页、toast、弹窗等不受限于层级问题;
② 小程序原生页面超过10层后不能再打开新页面,正常业务流程或闭环容易造成10层问题,例如个人中心--》商品列表页--》个人中心……
③ 解决方法【层级策略】:将页面链接存储到storage,返回时则刷新拉取存储的页面链接。目前只保存页面路径,不保存页面数据。
(9) 兼容:
① 微信版本:小程序的接口完全依赖于微信,因此部分基础库较高的接口可能在低版本的微信上不生效,需做兼容,如:页面内分享是基于1.2.0的基础库开发,因此要求对应微信版本在6.5.8及以上;
② 不同机型:如某页面在华为机型展示没问题,但到小米机型却展示有问题;
③ 手机系统:Android和ios两个版本兼容性可能不同;如个人主页中【安卓和ios】评价样式有问题。
(10) 埋点:
① 埋点测试大致和端内测试流程一样,关注actiontype&pagetype等参数;
② 小程序统计常需区分用户来源渠道,因此还需关注【backup】中的channel,pagechannel,type等参数。
③ appid:主要存储小程序source参数值。
④ scene:场景值,详情https://mp.weixin.qq.com/debug/wxadoc/dev/framework/app-service/scene.html
⑤ channel:只对小程序入口页生效,会伴随整个生命周期,直到退出小程序。如果没有明确的参数值,则默认为none。
⑥ pagechannel:针对页面url参数,只带到落地页,不会带到后续页面。如果没有明确的参数值,则默认为none。
⑦ type:目前用在详情页,主要用于区分此商品是个人mine/圈子group/他人normal。
⑧ 根据pm需求还可以增加相应渠道参数。
(11) 内嵌M页:
① 1.6.4版本开始陆续支持小程序内嵌M页。
② M页不受限于小程序的层级页面,如【游戏M页】点击首页—》游戏频道为1层页面,而不是2层页面。
③ 测试M页需做相应的适配,以在小程序能够正常使用,如登陆等。若M页嵌入native页面,则还需要额外做native页面交互的适配。如【游戏—我的拼团】没做适配,则提示此错误。
④ M测重点关注页面跳转功能,展示等问题。
(12) 测试坑点:
小程序测试过程中经常碰到的坑,重点需关注:
① 层级页面跳转
② 兼容性
③ 缓存
具体内容请查看链接https://testerhome.com/topics/16299