知识永远学不完,但多懂一点知识就会让生活更轻松一点!又是元气满满的一天呐。
小程序测试环境
小程序一般会准备三个环境:
开发版访问测试环境;
体验版访问预发环境,连的是生产的地址,白名单人员可见;
正式版访问生产环境,所有人可见;
共同点是:体验版和正式版都是生产环境的数据;
不同点是:体验版只有加入白名单的人可见,正式版就是所有用户可见。
小程序测试注意点:
更新版本后最好杀一下微信/支付宝进程,不然有可能拿不到微信/支付宝信息,导致有些功能报错;
小程序跳转层级有限制,最好每次测试页面都试一下3-5层的跳转,看需求对应改进;
考虑有蒙层的场景下,关闭蒙层之后,button是否失去焦点;
每次出现异常提示,先自己检查一下环境,别急着找开发,减少大家的工作量。
测试点:
主要测试点:
权限测试-授权使用微信/支付宝账号信息注册/登录(支付宝还有芝麻信用代扣授权)、功能测试、兼容性测试、易用性测试、网络测试、性能测试、接口测试
其他需要注意的测试点:
各个页面之间的跳转、页面返回返回再返回操作(从哪个页面进去返回到哪个页面)、页面加载时长、弱网场景、关闭小程序再进入操作
权限测试
权限测试需要检查以下几种情况下微信/支付宝用户访问的权限 :
未授权微信/支付宝登录小程序 未授权时,一般使用一些业务功能的时候,都会弹出提醒:先授权再操作对应功能。or在提交数据到后台的时候,会提示补充相关身份信息才能提交成功;
已授权微信/支付宝登录小程序 授权微信/支付宝访问小程序,意味着自己的微信/支付宝账号可被小程序管理方所获取,自动以微信/支付宝的身份行使业务操作权限,比如咨询、支付、数据查询;
同一微信号/支付宝账号在不同手机端登录授权查看数据权限 同一微信号/支付宝账号在不同手机微信端/支付宝端授权登录同一小程序之后,所能查看的数据和操作的权限都应该是同步一致的;
重新授权 微信/支付宝在更换设备登录后,需要对小程序重新授权。
兼容性测试
系统兼容:
操作系统兼容主要是指Android系统和iOS系统;
支付宝版本兼容;
自身小程序的版本兼容;
手机系统版本;微信/支付宝中运行的小程序,表面上看与手机系统关系不大,但是低版本的手机系统会影响小程序UI显示。
屏幕兼容三种手机屏幕类型:
齐刘海型(iPhone x、华为p11、三星note9、小辣椒s11、Ieagoo s9、hotwav symbol s3、)
水滴型(华为Mate 20、OPPO R17 Pro、一加6T、vivo z3、)
全面屏(vivo X27、三星GalaxyFold、 OPPOR eno、OPPO Find X、)、普通型。
弱网测试
弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境,属于健壮性测试内容。弱网容易伤害用户体验,为了避免用户流失,弱网测试尤为重要,弱网测试点如下图所示:
弱网测试工具:
下图以微信小程序测试为例具体说明:
上线前准备
测试环境使用的是测试域名,在测试环境测试完成后,开发切换正式域名之后,再去做下回归验收测试,正式环境回归完成后,整理并发出线上测试报告。最后准备上线(对开发而言看是否需要配置网关接口,由产品人员提交给财务人员审核上线,审核通过即可在线上环境看到小程序)。
小程序与APP对比
小程序 特征
入口 在二维码里,小程序的启动更多是来源于二维码扫描
是否需要下载 不需要去应用商店下载,搜出来就可以用
能否推送消息 不能推送消息
设计理念 小程序的开发相当于重做一个不同于传统形式的APP,从开发、设计、测试、升级都是单独的一套,小程序和APP以及轻应用都不同,它更现像是微信/支付宝功能的延伸,更加注重场景化。
本质内容 从本质上讲,小程序依旧没有摆脱APP开发以及轻应用所面临的两个问题:基于H5的特性和功能上的限制,小程序虽然不需要下载可以减少手机的存储空间占用,但是小程序对网络的依赖很严重,轻量的定位在功能体验上也会不如传统APP,会造成用户体验不友好,容易损失用户流量。
注意点
小程序某些页面是跳转到微信/支付宝自带的页面,这时候需要与产品确认是否可行。
若小程序涉及到支付功能,则需要考虑支付方式及每种支付方式对应跳转的页面是否正确并且能支付成功,当支付失败或者出现特殊情况时,则需要考虑资金是原路退回还是非原路退回。
小程序测试:
ui设计适配不同的机型都能正常显示;
在小程序端所产生的前端校验是否有效;
微信号授权登录或者不授权是否能够正常取到微信号,首次登录的微信用户获取对应的openid,对应的微信昵称和头像;
页面最多跳转不能超过5次,否则跳转失败;
在进行上一页或者下一页,数据渲染是否正常,在来回切换页面也能正常加载数据切互不影响;
在安卓或者苹果机型测试;
小程序编码采用ESC5还是ESC6,部分iphone的微信版本或者系统版本不支持ESC6,在测试中会出现白屏;
每次登陆小程序token是否刷新,同个用户多次进入小程序;
对于表单提交类小程序,在每次提交或者退出,是否清除本次表单的缓存;
从微信顶部进入到小程序是否能正常进入;
小程序的相关模板消息服务是否能正常收到;
小程序是否能正常的分享,并且从分享的入口点击进入;
断网或者弱网情况下是针对接口做处理;
在开发者工具中,拼接其他非小程序入口的其他的页面进入,是否会有影响;
小程序升级后扫码/从老版本进入新版本。
容易踩坑点:缓存,兼容
小程序测试环境搭建
下载微信开发者工具
使用git从仓库中拉小程序代码
在小程序公众号开发平台添加微信号作为开发者(不作为开发者不能体验未发布的小程序)
在微信开发者工具中导入项目,添加编辑的url作为小程序的入口,进行编译,生成测试二维码体验
APP测试与小程序测试区别
功能测试:功能测试和web的测试逻辑一样,主要是理解项目的需求设计等,查看功能模块、业务流程、同一功能不同入口时有效性检查、页面交互性检查、输入输出等逻辑进行测试;
权限:app是否可以访问手机通讯录、相册、相机等权限;小程序是否有微信授权,未授权/授权登录程序,同一微信号不同手机登录查看数据显示情况;
兼容性测试:不同手机操作系统检验、不同微信版本(测试当前微信版本发布的项目和升级版微信后测项目)、分辨率(不同手机型号,页面图片显示等)、二维码的兼容性(一般小程序会有二维码分享,分享给朋友的图片信息和分享到朋友圈的二维码显示、是否识别等);
易用性:上下层级进入、系统页面之间的返回效果、页面的字体大小、字体格式、页面标题、动态交互效果、导航(是否能定位到页面某个位置、文字提示是否明确、导航条显示等)、操作是否繁琐;
网络测试:网络切换测试 wifi-2g/3g/4g-无网等,验证各种网络下是否正常;
性能测试:页面的白屏时间、资源占用、页面渲染时间、首屏时间 ps:小程序通常在android上性能问题比较多;
接口测试:后面专门写一章如何进行手机的接口测试,因为面试的时候被问到了;
缓存问题:app和小程序会存在缓存,小程序会有最大10M的本地缓存,缓存的作用是提高程序的流畅度、减少网络请求,节省服务器资源,有时候用户会进行清理缓存的情况,测试点:清除缓存时强制退出、后台清理、关机等情况;
特殊操作:页面进行左右/上下滑动、长按效果、连续点击、页面列表数据上下滑动、数据未加载完成时上线滑动效果、图片滑动最后一页时是否还能继续;
内存相关:主要测试手机内存空间满的情况,开启很多占用内存的app是否对本系统出现异常;
存储空间:(app)存储空间满了,是否还能安装成功,安装成功了,存储空间满了,是否能打开应用;
电量:测试电量50%、20%、5%情况;
推送消息:查看app中推送消息的显示情况;
断网时点击按钮,连网后再次点击查看效果;
多测试无系统权限的页面;
页面刷新:收到推送主动刷新、切换其他页面刷新、返回后台刷新、杀进程刷新、重新登录刷新;
弹窗:测试后台重启后弹窗是否显示,弹窗触发、弹窗显示时间等。
小程序测试的限制
页面层级跳转不能超过10层。M页、toast、弹窗等不受限于层级问题;(层级策略:将页面路径存储到storage,返回时则刷新拉取存储的页面路径,目前只保存页面路径,不保存表单等数据。)
用户本地缓存不能超过10MB;
小程序代码包不能超过3M,所以部分图片资源需上传CDN;
小程序发布需提交微信/支付宝审核通过才可发版;
提交审核前,外网域名需申请(除微信域名之外);
程序给用户推送服务通知,依赖用户的formId。
其他
授权:
目前已实现静默授权,即用户首次访问小程序,主动获取微信/支付宝授权,通过获取openid,生成转转uid,并存储昵称、头像等信息。后续用户若杀掉小程序重新进入,无需重新授权。
功能:
与端内正常测试功能无异;
缓存:
功能需求后,此时就需要关注缓存情况: 微信给每个小程序提供了10MB的本地缓存。
页面切换时,可能会将上一个页面的数据带到下一个页面展示,例如【主程序-红包需求】点击“未使用”先显示正确文案—》点击“已使用”或“已过期”—》点击“未使用”,文案却展示“已使用”和“未使用”的文案。此时可以给开发人员提bug,通过代码解决页面缓存问题; 对于账号切换、版本发布等带来的缓存,目前解决方法是简单粗暴的将小程序删掉,重新进入生效。还可从代码层面解决缓存问题:1.清除当前存储到storage里的内容,如cookie信息,主要调用wx.clearStorageSync();2.从基础库1.9.90开始,小程序支持自动更新上线代码,接口为wx.getUpdateManager()。
分享功能测试 :
分享到好友列表&生成海报页分享到朋友圈;用线上/测试/开发版分享给好友,落地页就是相应的线上/测试/开发版;朋友圈识别跳转都是线上版;所以在测试过程中若涉及到扫码跳转,就需借助【小程序码测试工具】。
作者:一只麻雀
原文链接:https://blog.csdn.net/HCZ_962464/article/details/106815257