JB的测试之旅-小程序测试了解下

1,215 阅读14分钟

前言

随着小程序火了,相对应的,就多了小程序测试这么一个范畴,对于没负责过小程序的同学,可能会很好奇,小程序的测试有什么特别之处?又有什么需要关注的地方?
上面这些问题,在这里都找不到答案,虽然如此,但是还是想介绍下小程序以及测试的点,如果有不对的地方,欢迎大家及时提出~

小程序简介

先介绍下小程序的相关内容吧,无论做什么,理解产品很重要;

什么是小程序

小程序是在微信生态之内,无需下载、无需关注的应用,用户可以通过微信的扫一扫或搜索功能进行搜索使用;

正规点的定义就是:
小程序是一个可以帮助用户搞笑解决问题的工具,用完即走
其优质的用户体验会推动用户走了再回来,同时微信给小程序开放了多个入口帮助用户能够找到自己使用过或者想要使用的小程序;

优势

1、使用简单。不用下载,不用安装,扫码直接可以用。所以不用占据手机内存。用完即走。
2、社交传播。微信生态旗下,小程序适合在微信群里快速传播。这给社交电商,社交产品的快速发展提供了机会。
3、开发成本对比微信公众号,APP开发成本更低。
4、流量池微信是目前我们最大的流量集中地,小程序在这个生态里,潜力巨大。

从上面的信息可知,小程序是基于微信上的一个产品,从测试的角度来看,兼容性这块可能不需要太多关注,毕竟微信已经帮忙做了这部分测试了(滑稽);

架构

小程序产品大多采用前后端分离的技术架构。
虽说前端也有逻辑处理,更多是为了优化体验做缓存,关键流程和状态流转还是要通过调用后端接口来落地的。

小程序分为两个主要部分:view模块和service模块
View模块负责UI展示,它由wxml和wxss转换后的代码以及微信提供的辅助模块组成;
一个view模块对应一个webview组件,小程序支持多个view存在,view模块通过微信jsbridge对象来跟后台通信。

小程序的测试

版本

小程序分为三种版本类型:开发版,体验版,正式版
开发版和体验版无需审核,需要给微信号配置权限,通过扫小程序的二维码才能访问,两者的区别在于,开发版的二维码有效期比较短;
正式版需要通过微信审核流程;
正常情况下,都会准备三套环境,开发版访问测试环境,体验版访问预发布环境,正式版访问生产环境;

真机上的调试模式

小程在真机上提供了很友好的界面和完善的调试功能,最重要是很方便,打开开发/体验版小程序,点击右上角的...,点击打开调试,重启小程序后会有一个vConsole的按钮,点击就是弹出LOG了~

这里主要是提供了console.log的打印调试,还有手机系统信息。

功能测试

功能测试跟传统的web端的功能测试类似,用例设计方法等跟需求相关性较大。

兼容性问题

1)目前小程序不支持直接分享朋友圈,只能分享微信好友
所以很多小程序都采取了“曲线救国”的方式,通过生成带有小程序码的图片,用户可以退出小程序将图片发布到朋友圈。
既然把小程序码作为图片的一部分,就涉及到小程序码的位置,尺寸,还得不影响原有图片的美观,生成的小程序码还需要是可识别的。
这需要前端针对不同屏幕尺寸的做适配处理。

2)基础库与客户端之间的关系,简称微信兼容性
小程序的能力需要微信客户端来支撑,每一个api基础库都只能在对应的客户端版本上运行,高版本的基础库无法兼容低版本的微信客户端;
所以特别要注意有没有一些api是新版本才支持,这种情况旧版本怎么处理;

3)整体界面UI布局展示
虽然一开始调侃说到不需要管屏幕兼容性测试,但建议还是花点时间走查下主流机型确保效果,担心会出现个别机型出现UI兼容性问题

4)固件兼容性
大家都知道,小程序上面其实就一堆JS在跑,而Android和ios系统上小程序的JavaScript脚本的执行环境不同。
官方文档中有说明,在开发工具上,小程序的js代码时运行在nwjs中,在ios上是运行在JavaScriptCore中,在Android上是通过X5JSCore来解析的。
因此最低要求是Android跟ios两个系统都尝试一遍,以免出现兼容性问题;

性能测试

这里的性能测试考虑的是客户端的性能,服务器的性能则按照传统的服务器性能测试方案即可。
小程序的客户端性能和网页的性能测试非常类似,性能的常用指标也大致相同。
包括页面的白屏时间,首屏时间,资源占用,页面渲染时间,帧率等等;

小程序的开发工具提供了手动查看性能的窗口,只要在小程序开发版中打开性能窗口即可看到页面的性能数据。

但是这个性能窗口的问题是只能手动获取数据,无法自动记录全部页面的数据,因此适用于定位性能问题而不适用于发布前的性能测试。

8.13更新,今天翻了下小程序的文档,有意外收获,点击这里查看惊喜;----

从微信 6.5.8 开始,提供了性能面板让开发者了解小程序的性能。
开发者可以在开发版小程序下打开性能面板,
打开方法:进入开发版小程序,进入右上角更多按钮,点击「显示性能窗口」。

这里特别注意,这是要开发版才有的,体验版是不会有的!!!!

性能面板指标说明

指标 说明
CPU 小程序进程的 CPU 占用率,仅 Android 下提供
内存 小程序进程的内存占用(Total Pss),仅 Android 下提供
启动耗时 小程序启动总耗时
下载耗时 小程序包下载耗时,首次打开或资源包需更新时会进行下载
页面切换耗时 小程序页面切换的耗时
帧率/FPS
首次渲染耗时 页面首次渲染的耗时
再次渲染耗时 页面再次渲染的耗时(通常由开发者的 setData 操作触发)
数据缓存 小程序通过 Storage 接口储存的缓存大小

接口测试

跟web端的接口测试没有区别,不重复;

微信服务通知逻辑

微信内支持服务通知跳转到小程序,这算是一个新的营销入口,假如用户使用过小程序后直接流失了,可以通过这个服务给用户一个入口,从而达到把用户拉活的效果,效果图如下:

微信服务通知,需要小程序传一个 form id 的参数给微信,再根据服务通知模版来向微信用户发送微信服务通知的。
然而 form id 不是小程序自行生成的,而是该微信用户在该小程序内操作时,微信产生并返回给小程序的。
也就是说,如果用户在小程序页面上操作的时候,小程序前端页面没有把微信提供的 form id 收集下来,并返回给小程序后端,小程序后端是无法发送微信服务通知给用户的。
不同的微信用户在小程序内的操作频率不同,form id 的数量也就不同。

这部分测试有几个注意的点,各种模板样式效果以及form id与实际推送是否一致及获取不到form id的情况;

关于模块消息的内容,更多可以查看官方文档

小程序的限制

目前小程序在UI、设计、样式、页面跳转、消息大小等都有自己的限制,具体的限制可以点击这里查看;

整体限制内容,对测试而言,比较大的影响有2个:
1)数量限制
小程序一个应用只能同时打开5个页面,在规划新需求的时候一般会考虑到5个页面的限制,但是需求迭代越来越多跳转关系比较复杂的时候很容易忽略5个页面的限制,这个时候如果跳转逻辑超过5个页面会出现跳转打不开的情况。

2)大小限制
小程序源码打包后的大小限制为1M,因此源码中的图片和icon和数据等都需要压缩。

关于自动化

好的自动化测试,效率是会有明显的提升,但考虑到,目前小程序比较热门,而产品形态会跟随每个版本而改变,此时去做UI自动化,个人不是很赞成(是有可性的方案,详情点击这里查看),但相反的,接口自动化更应该是重心,因为做了接口自动化,所有端都能受用;

这里有篇小程序的自动化,可以参考,但里面提及到的工具不太建议,纯个人意见, 哈哈哈哈,点击这里查看;

其他需要关注点

1)登录/相册,权限相关
现在小程序基本上分为不需要登录跟需要登录,登录涉及到权限问题,需要考虑到首次登录不给权限、给了权限后手动关闭权限、登录状态过期/失效这几种特殊场景;
上面也提及到,小程序不支持直接分享到朋友圈,因此需要保存截图,这时候相册功能也需要考虑权限问题;

小程序关闭权限步骤:
进入相关小程序,点击右上角的...,点击关于XXX小程序,点击后再点击右上角的...,会有一个设置界面,点击即可;

2)小程序更新功能
主要是要覆盖到小程序更新功能场景,确保功能正常;

3)重复请求
这是功能相关问题,单独拿出来讲,是因为很多人测试同学往往是没有考虑到这边,从而导致有些线上BUG就是因为重复请求导致,比如流量问题、服务器性能问题、功能问题(比如请求一次后,后端设置了状态A,再请求一次,后台就设置成状态B,导致BUG出现)

4)异常场景
有没网络、地域切换、正式域名要用HTTPS、发布后验证、物理返回键、易用性、层级之间的前进后退;

5)点击分享链接进入小程序,是没有返回按钮
正如文字所述,小程序分享后,点击分享的链接,打开的小程序是没有返回按钮的,用户也不知道怎么返回到首页,当然,右上角的...还是可以的返回到首页,但是对于用户来说,存在成本;

通过小程序分享的链接打开小程序,是没有返回按钮,用户一下子会懵逼,不知道怎么返回;

解决方案:

参考其他几个大型小程序(知乎、微博),他们是在页面上默认有一个返回首页的按钮,用户随时随地可以返回到首页,即使没有返回按钮,用户还是能轻而易举的返回到首页;

6)小程序里打开的公众号链接及需要跳转的小程序
在小程序里面,难免会出现跟公众号或者其他小程序相互导量的行为,这里有个细节点要注意:

1)公众号文章:需要跳转的公众号文章,该公众号必须跟小程序相关联
2)其他小程序:跳转的小程序需要关联在同一个公众号下面,不然无法跳转

如果不注意这两点,就会出现下面这种情况:

公众号文章:

跳转到其他小程序:

埋点

做产品,离不开埋点,而这边用的是阿拉丁的埋点,听说免费,而且还蛮好用的,可以看下文档:
doc.aldwx.com/aldwx/gao-j…

小程序审核需要注意的点

最后想补充一些小程序审核的注意事项,虽然不是测试的点,但测试应该要注意,因为小程序发布是需要审核的,审核快慢会直接影响项目上线周期,因为身为测试,也应该要关注到这些细节;

审核周期

目前小程序的审核在1小时到N天不等。官方说是7个工作日内,一般在3日内。

审核需要注意的情景

1)涉及区块链、贷款、彩票(只能做彩票开奖结果查询,但容易被误判)、色情低俗、代购的小程序,基本通不过。
2)诱导关注、诱导分享朋友圈,凡涉及到关注公众号、分享到朋友圈,均可能封掉相应接口;
3)虚拟支付,凡非实物销售均可列入此范围。如付费购买音视频内容、付费购买教育课程。
4)未取得腾讯授权,不可以借助其他小程序或app实现自身功能,如优惠券、导购类小程序。
5)需补充社交-笔记类目,涉及可编辑、转发的小程序,涉及用户自定义内容及分享的小程序。
6)需补充社交-社区/论坛类目,涉及UGC内容,可进行回复互动,如可发贴交流的小程序。
7)需补充文娱-视频类目,涉及在线视频观看的小程序。
8)无法被搜索,部分包含恶意或风险信息的小程序(如涉嫌混淆官方产品名称、色情低俗、欺诈等),可能不能被搜索出。如“郑州推拿按摩理疗”无法被搜索,但“郑州推拿”则可以。
9)小程序实际所提供的服务属于尚未开放的服务类目,主要是指偏门的服务,如寺院相关服务。
10)小程序服务涉及可编辑、发布内容,属个人未开放类目,以个人为主体开发的小程序,目前限制太多,基本上只能做信息查询类小程序。

建议

1)多测试,减少 Bug 数量,杜绝严重 Bug。
2)在审核周期较长的情况下,减少提交审核的次数;在审核周期较短的情况下,提高提交审核的次数。
3)别人的类似小程序能上架,你的不一定能上,原因没有。开发者要做好心理准备。
4)申请附近的小程序,证件号码必须完全正确,包括字母的大小写。
5)同一时间提交的小程序,不一定同一时间审核。具体审核的顺序尚不明确。
6)前面几次审核通过,不代表下一次审核能通过,哪怕只是改了一个Bug。因为后续审核可能发现新的“违规”问题。
7)文娱、社交类小程序一般会进入二次审核,由当地主管部门(网信办)审核,时间一周左右(也有用户反馈等待1个月仍未审核)。
8)小程序中不要出现色情、低俗内容,否则被用户举报后,容易被暂停服务。

小结

本文主要介绍了小程序是什么以及一些特性,介绍了一些小程序的测试方案,以及最后介绍了可能会影响到小程序审核的点,整体来说对小程序有一定的认识和了解~也希望能帮忙你对小程序的认识有一定的认识;

谢谢大家~