微信小程序测试点学习总结
Posted 测试龙巫师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序测试点学习总结相关的知识,希望对你有一定的参考价值。
1、你知道测试小程序跟普通的APP有什么异同么?
原生APP
需要安装,卸载,操作麻烦;占用手机空间
需要注册登录系统
开发周期长,消耗大,成本高10倍+
宣发方面需要自己推流,成本高,效果差
小程序
无需安装,用完即走
使用微信的账号,无需注册登录
周期短,开发快,成本是APP的1/10
一个版本兼容各种手机平台
天然拥有超过10亿的微信用户流量
2、你真真切切的了解什么是小程序么?
查看下面 第二模块
3、然后给你一个小程序,你要如何开展测试呢?
查看下面第 六 模块有详情
- 功能方面的测试点
- 非功能方面的测试点
- 界面测试(UI)、兼容性测试、易用性测试、性能测试、安全测试
一、为什么要学习小程序测试?
主流应用形态:
1、原生APP,包括 Android . ios
2、小程序
3、H5
原因:
为了节约时间,在效率和效果之间不断权衡,衍生出小程序这种应用形态
小程序的应用形态越多,测试也要覆盖小程序这种应用的测试
在功能测试、性能测试、自动化测试 都会涉及到
二、微信小程序是什么?
“小程序是一种不需要下载安装即可使用的应用,它实现了应用「触手可及」的梦想,用户扫一扫或者搜一下即可打开应用。也体现了「用完即走」的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装。”
-
- 一句话解释︰微信小程序是运行在微信里的APP
概念:
小程序就是,依附于微信而不需下载和安装的移动端应用程序!
三、小程序的优点
1、无需下载即用即走
不需要考虑安装、卸载等测试点
2、功能丰富,清爽体验
界面里的操作更多的是点击或者滑动,不是输入,操作性更强
3、流量大,易裂变
依附微信,用户体量大的天然优势
四、小程序的架构---了解
View 层用来渲染页面结构。视图层和逻辑层通过系统层的 JSBridage 进行通信
wxss(多了rpx单位)控制样式 -> css
wxml xml 语言控制渲染层展示 -> html
五、小程序和原生APP的区别 --- 面试高频
原生APP
需要安装,卸载,操作麻烦;占用手机空间
需要注册登录系统
开发周期长,消耗大,成本高10倍+
支持的平台(android、iOS)需要单独开发
宣发方面需要自己推流,成本高,效果差
小程序
无需安装,用完即走
使用微信的账号,无需注册登录
周期短,开发快,成本是APP的1/10
一个版本兼容各种手机平台
天然拥有超过10亿的微信用户流量
六、小程序,应该如何测试?
功能方面的测试点
非功能方面的测试点
界面测试(UI)、兼容性测试、易用性测试、性能测试、安全测试
1、功能测试--业务测试
分析产品需求文档,提炼测试点
使用的方法和步骤跟 web、APP测试一样(等价类、边界值、场景法、错误推测法等)
2、功能测试 — 小程序专项 — 入口测试
小程序的常用入口
- 小程序二维码"扫一扫”
- 长按识别小程序二维码
- 微信发现-小程序
- 公众号图文群发进入小程序
- 附近的小程序
- 好友分享、群分享
- 搜索小程序
- 小程序历史列表
- 桌面小程序
问题:这些入口都需要覆盖测试么?
- 公司小程序支持、常用、推广哪些入口就测哪些
3、与微信的交互
支付 -- 微信支付
卡包、钱包 -----优惠券用来抵扣
来微信消息 ----- 是否可以继续支付
来微信视频通话 ----- 是否可以继续支付
来微信语言通话 ----- 是否可以继续支付
4、登录权限测试-授权
- 不用注册,可以直接用微信账号登录
- 授权后,可以直接用该账户权限进行操作
- 可以取消授权--出于安全考虑
注意:同一微信号在不同手机端授权是同步一致的!
5、登录的流程和原理
小程序(苏宁小程序)、第三方服务器(苏宁服务器)
- 1步、苏宁小程序登录会去发起一个wx.login请求,发送到微信服务器,会获取微信账号登录凭证
- 2步、苏宁小程序将登录凭证带到苏宁自己的业务服务器,苏宁服务器通过登录凭证和其他信息获取用户ID(是通过 绑定 微信用户ID 和 自己的业务用户ID 生成的 用户ID,并且生成业务登录的 sessionlD) ------ 超时需要重新登录
- 3步、苏宁服务器返回业务登录的 sessionlD 给到 苏宁小程序前端,下次请求直接带上 sessionlD ,就可以直接登录,不需要每次登录都需要在获取凭证了
6、小程序和原生APP的数据同步
- 同一个用户,使用小程序授权登录,添加了购物车或者买了东西,APP端也能看到结果
7、小程序的分享
分享可以成功
分享后可以点击正常打开
8、添加到我的小程序
添加成功,正常显示
可以点击打开该小程序
9、中断测试
电话中断
闹钟中断
低电量中断
耳机插拔中断
网络中断
10、网络测试
网络类型:3G/4G/5G/wifi/热点
网络切换
离线/无网
弱网测试
七、非功能测试 —— UI测试
点击 单击、双击
跳转 当前页、上一级、下一级
滑动 下拉刷新、上拉触底、左右翻页、双指滑动
输入 手动输入、下拉框选择、文件/图片上传
输出 加载响应、输出准确
分享 分享载体、分享权限
1、界面测试
原则:
原型图、UI切图 --- 需求文档
站在用户角度考虑,美观和友好、易用性
参考成熟产品,符合大部分用户的使用习惯
小程序更加轻量级,更加便利
导航的操作区,一般不超过5个
UI更多的是点击操作,输入比较少
所以,有如下原则:
1、页面层级数为10层
2、开发源程序大小不超过 8M 源文件(包加载,单个分包不超过2M)因为,过于复杂的逻辑存在不可控的异常问题
2、兼容性测试
原则:
手机型号 -- 微信能兼容基本没有问题
系统版本 -- 微信能兼容基本没有问题
屏幕大小 -- 小程序订一个新的像素单位-rpx
微信版本 -- 小程序要特别注意的
微信上其他小程序的兼容 --- 公用声卡话筒这种
3、性能测试
接口性能测试-APP web 小程序
-
- Jmeter接口性能测试
- Loadrunner性能测试
客户端性能测试--小程序前端
页面白屏时间不宜太久
页面首屏时间不宜太久
手机资源占用(cpu,内存,流量,电量)
页面渲染(UI呈现效果)
稳定性测试
问题:是否可以使用 monkey 工具测试小程序的稳定性测试呢?
可以的,加微信的包名,小程序在微信前端打开就可以
4、安全测试
业务漏洞
数据加密传输
工具和脚本测试
渗透测试
小程序加固测试
小程序安全检测
安全扫描:burpsuite,appsca,AWVs,dirsearch,nessus
微信提供检测工具:wetest
八、原生App与小程序几点对比
1)小程序开发比原生App更简单,开发周期更短。小程序提供框架和API,基于HTML5进行开发,对接开发者现有的App后台的用户数据,其开发难度相对App较低。
2)小程序开发成本比原生App更低。原生App开发需要的人力、物力和时间成本都比较高。
3)小程序可以满足一些简单的基础应用,低频次及偏向于线下和场景生活服务类的轻应用,餐饮、快递等行业其受欢迎程度高。而对于一些需要大量计算的功能类应用,如图片处理或文档编辑,小程序是无法满足的,只能用原生或者WebApp去实现。
4)原生App的UI、UE可以设计得更加人性化,更绚丼,功能的完善完全取决于开发者的想象力和技术实力。对系统接口的调用更为简单,一些功能比如AR(增强现实技术)、语音识别等功能,App能够在交互、视觉等用户体验上满足用户高要求。对于更丰富、更细化、更个性化的功能,是需要更大容量实现,这就需要在App上去承载,而小程序作为轻量级应用是无法满足的。
5)原生App应用可以在AppStore、Android市场、360手机助手、百度应用、安全管家等应用市场进行下载安装。微信小程序,只能通过二维码或搜索小程序的名称,以及微信群或好友分享获取应用;另外微信公众号关联了小程序,那么在公众号的介绍页面,才会出现一个相关小程序的模块。只要点击相应的图标,就能轻松打开。
6)安装流程,小程序更简单。打开微信扫描二维码即可进入小程序。App需要扫码或者搜索进行下载并安装后才可以使用。
7)原生App安装在手机上会占用一定的空间,且随着功能的不断完善和更新其占用的资源也会更多。而微信小程序无须下载,其内容和功能都不占用手机内存;但微信本身比较臃肿,好友会话、群消息、朋友圈等功能堆积会占用大量的手机内存容量。
8)功能扩展性,App更强。
9)App的维护成本较高,需要针对不同操作系统做兼容性的开发,且需要用户自行升级。小程序运行于微信平台,大部分的维护工作由腾讯完成,其维护成本、周期和流程简单,更新也主要在微信后端完成,不存在操作系统和浏览器兼容方面的问题。
10)App用户忠诚度更高,因为App内容全面,用户主动选择,App获取门槛高,二次消费门槛很低。小程序的内容碎片化,用户被动接受,用完就退出程序,虽然首次消费门槛低,但后续消费门槛无法降低,用户由于难以找到小程序而选择放弃。
11)小程序只是简化版的App,并不能涵盖App的全部内容。微信对小程序的内存大小限制在2MB,只能保存最基础的功能。App更适合高频场景的服务,天然具备独立发展成生态的潜力,可以自成一套生态体系。即使小程序在用户体验上大大增强,这些也只是增量,App还是主要的阵地。
12)小程序由于微信本身的传播能力和获客能力,可以让互联网创业公司减少试错成本,提高产品的成功率。但微信缺少小程序的展示位,小程序难以获得好的位置资源,对于刜创品牉来说如何让用户搜索到并引导用户点击前往是一大难题。WebAppWebApp也就是我们说的HTML5App,是一种框架型App开发模式。具有跨平台的优势,该开发模式通常由“HTML5云网站+App应用客户端”两部分构成,App应用客户端只需安装应用的框架部分,应用所有界面都是通过HTML5去实现,每次打开App的时候,都是去云端获取数据呈现给手机用户。
微信小程序测试点详细刨析
微信小程序测试点详细刨析
小程序(Mini Program),是一种不需要下载安装即可使用的应用,是内嵌在微信APP里面的一款新形态软件。
它实现了应用“触手可及”的梦想,用户扫一扫或者搜一搜即可打开应用,也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载
一、小程序简介
1.小程序版本类型
小程序分为3种版本类型:开发版,体验版,正式版
开发版和体验版无需审核,需要给微信号配置权限,然后通过扫小程序的二维码才能访问。
正式版需要通过微信审核流程。
总结:在开发阶段,产品还未成型开始,无论你想怎么折腾,微信都有办法知道;这可不像在网上找了个框架或是工具,在本地怎么玩都没人知道。微信小程序开发者工具使用之前就要扫码。
开发版和体验版的区别,在于开发版小程序的二维码有效期比较短。
项目中,我们一般会准备3套环境。开发版访问测试环境,体验版访问预发布环境,正式版访问生产环境。
2.前后端分离的技术架构
小程序产品大多采用前后端分离的技术架构。虽说前端也有逻辑处理,更多是为了优化体验做缓存,关键流程和状态流转还是要通过调用后端接口来落地的。
接触过前后端分离的Web 或 App 项目的测试人员,在小程序产品的测试中是很容易上手的。
RESTful API,HTTP/HTTPS 协议,Json数据传输,Websocket协议……这些基础知识就是测试人员必修课。
还要加强问题的分析和定位能力。发现问题时,需要快速判断是前端,后端,又或是第三方组件的问题。
由于小程序产品有不同类型的版本,还需要排除是否不是最新的开发版,是否是多个环境未处理好导致串数据。
而快速定位问题,需要依据完备的日志。不光是后端接口日志,前端页面在捕获到特殊的客户端异常时也应该上报。
开发架构和团队情况决定了测试策略。小程序的UI测试更多是让产品和设计人员去做,测试人员需要关注前后端交互,后端接口测试自动化,兼容性测试等工作。
诸如前端是否在应该做缓存的地方没有做,而是频繁调用接口,是否影响网络体验。
3.微信通知服务逻辑
微信内支持服务通知跳转到小程序。没有留意小程序的微信用户,甚至都不太注意服务通知这个名词。
其实服务通知已经被大量的社交电商小程序所使用,俨然成为新的营销入口。
微信服务通知,需要小程序传一个 form id 的参数给微信,再根据服务通知模版来向微信用户发送微信服务通知的。
然而 form id 不是小程序自行生成的,而是该微信用户在该小程序内操作时,微信产生并返回给小程序的。
也就是说,如果用户在小程序页面上操作的时候,小程序前端页面没有把微信提供的 form id 收集下来,并返回给小程序后端,小程序后端是无法发送微信服务通知给用户的。
不同的微信用户在小程序内的操作频率不同,form id 的数量也就不同。所以,那些把服务通知方式作为营销入口的小程序们,可真是费了一番脑筋。
4.小程序兼容性问题
目前小程序不支持直接分享朋友圈,只能分享微信好友。所以很多小程序都采取了“曲线救国”的方式,通过生成带有小程序码的图片,用户可以退出小程序将图片发布到朋友圈。
既然把小程序码作为图片的一部分,就涉及到小程序码的位置,尺寸,还得不影响原有图片的美观,生成的小程序码还需要是可识别的,这需要前端工程师做不同屏幕尺寸的适配。
二、小程序测试点
测试点可以从:功能测试、权限测试、UI测试、兼容性测试、接口测试、网络测试、性能测试 等方面去考虑。
1.功能测试
小程序的功能测试跟APP功能测试,对于功能业务的测试思路及用到的用例设计方法是一样的。
根据设计好的各个大类功能模块划分,然后再逐级细化,覆盖到每个功能尽可能全面的测试点。
包括业务流程、数据流向、功能入口有效性检查、交互性检查测试。
微信小程序为了提升用户体验,会缓存用户的页面及数据,方便下次调用时直接使用。可能产生的问题:
a.微信小程序缓存的数据是否和服务器端一致。实际测试时可以先访问页面,然后修改服务器上数据,再回看小程序中页面,看数据是否一致。
b.切换相似的页面,看是否缓存的数据会产生混乱,切换分类的时候,会不会因为缓存导致具体信息不发生变化。
2.权限测试
未授权微信登录小程序:
a.未授权时,使用一些业务功能的时候,都会弹出提醒‘先授权再操作对应功能’;
b.在提交数据到后台的时候,会提示补充相关身份信息才能提交。
已授权微信登录小程序:
a.授权微信访问小程序,意味着自己的微信账号可被小程序管理方获取;
b.自动以微信的身份行使业务操作权限,比如咨询、支付、数据查询等 。
所能查看的数据和操作的权限都应该是同步一致的,同一微信号在不同手机端登录授权查看数据权限。
3.UI测试
小程序的页面测试和app的界面测试一样,关注页面展示元素,如菜单、对话框、窗口和其他可视控件的布局、风格,文字是否正确。
页面是否美观,页面交互操作是否友好。操作是否设计频繁、是否易操作。
但注意一点,微信小程序页面层级跳转默认不能超过10次,达到10次就不能跳转了。
一般在进行需求设计时,页面跳转尽量在10次以内。有超过跳转10次的应用场景,针对性开发。
4.兼容性测试
手机系统:在 IOS上,小程序的逻辑代码运行于JavaScriptCore 中,在Android上,这个任务则是交给 X5 内核来完成。
所以有条件的话,不仅要覆盖Android和 IOS,包括主流的Android和 IOS品牌也要覆盖,比如华为,小米,iPhone11,iPhoneXR等等。
覆盖到最新的试用版和当前流行的主要版本。
微信版本:与微信版本的兼容性问题主要体现在小程序API库的版本上。因为微信小程序SDK的API版本一直都在更新,导致SDK的API有可能有向下的兼容性问题。
例如在最新版本小程序SDK上开发的程序不能在低版本的SDK上像预期的那样运行。
所以测试微信版本的兼容性之前要先确定小程序使用的库版本在哪些微信版本号上支持。
屏幕大小:微信小程序定义了一个新的尺寸单位rpx(responsive pixel)。它可以适配不同的屏幕大小,但是需要注意一个特殊的尺寸1rpx,因为这个尺寸经常在iphone7p上出现问题。所以,只需要关注一下即可。
5.接口测试
目前大部分都是微服务的架构,小程序调用的是后台的接口,所以这里的接口测试和平时的接口测试是一样的,但我们需要了解微信小程序提供的接口是什么类型。
a.有接口文档的,参照接口文档进行接口测试。
b.没有接口文档的,使用Charles或Fiddler抓包(同App抓包)。
6.网络测试
网络测试可参考APP的测试,包括网络切换,3G/4G/5G/wifi的切换;断网测试,以及弱网测试,像弱网场景下超时是否给予合理提醒、丢包是否有重发机制。
主要是考察小程序在各种网络状况下的运行情况。
a.WIFI切至2G/3G/4G/5G;
b.WIFI切至无网;
c.G/3G/4G/5G切至WIFI;
d.2G/3G/4G/5G切至无网;
e.无网切至2G/3G/4G/5G;
f.无网切至WIFI;
7.性能测试
小程序调用接口的时候对于服务器端性能。例如并发量多大,服务器是否有影响。
小程序本身的性能包括:页面的白屏时间、首屏时间、资源(CPU、流量、电量、内存等)占用、页面渲染时间等等。
三、小程序常见问题
1.小程序的架构是怎么样的?
小程序的架构:包含View视图层、AppService逻辑层。
a.View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。
b.视图层使用WebView渲染,逻辑层使用JSCore运行。视图层和逻辑层通过系统层的JSBridage进行通信。
2.小程序测试和APP测试的异同点有哪些?
小程序测试和APP测试在功能测试上逻辑一样,主要是理解项目的需求设计等,查看功能模块、业务流程、同一功能不同入口时有效性检查、页面交互性检查、输入输出等逻辑进行测试。
不同点包括以下几个方面:
a.开发方面:小程序开发周期一般在两周左右,需要在公众平台上进行审核,审核周期一般较短;APP的开发周期在一个月左右,APP需要应用商店进行审核,审核周期较长。
b.权限上的区别:微信小程序需要验证是否有微信授权,未授权/授权登录程序,同一微信号不同手机登录查看数据显示情况;APP测试则需要考虑是否可以访问手机通讯录、相册、相机等权限。
c.性能方面:小程序页面可能只会关注响应时间,而APP则还需要关心流量、电量、CPU、GPU、Memory等。
d.兼容方面:小程序是基于浏览器的,所以更倾向于浏览器和电脑硬件,而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。APP的测试则必须依赖客户端,不仅要看分辨率,屏幕尺寸,还要看设备系统。
e.从测试场景来看:APP是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,小程序是基于浏览器的,所以不必考虑这些。
f.从系统架构来看:小程序测试只要更新了服务器端,客户端就会同步会更新。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
g.缓存方面:缓存的作用是提高程序的流畅度、减少网络请求,节省服务器资源,有时候用户会进行清理缓存的情况。APP和小程序都会存在缓存,但小程序最大只有10M的本地缓存,测试时需要考虑清除缓存时强制退出、后台清理、关机等情况。
h.运行流畅度:原生App运行在操作系统中,所有的原生组件可以直接调用GPU进行渲染;小程序运行在微信的进程中,只能通过WebView进行渲染。用HTML+CSS+JS开发,配合微信的解析器最早渲染出来的原生组件的效果,比H5体验上更好。
i.占用空间方面:App 会一直存在手机中占用空间,太多的 App 可能会导致内存不足;小程序因为不需要安装,占用内存空间忽略不计
四、小程序的测试点
在面试过程中,可能会问到小程序如何测试或者给定一个小程序的功能模块让你设计测试点,我们可以从以下几个方面进行设计。
a.功能测试:按功能模块测试(根据设计好的各个大类功能模块划分,然后再逐一细化,覆盖到每个功能)、按业务流程测试(把各模块串联起来形成完整的业务流程、同一业务使用每个路径检查)、数据流向、同一功能不同入口有效性检查测试、交互性检查。
b.权限测试:未授权时登入小程序、已授权时登入小程序、同一个账号在不同手机端登入小程序。
c.UI测试:页面元素展示、页面交互。
d.易用性测试:导航、功能入口、上下层级进入&返回、字体图片动态交互效果、操作是否过于繁琐。
e.网络测试:网络切换测试、验证各种网络下是否正常
f.性能测试:页面白屏时间、首屏时间、资源占用、页面渲染时间
g.接口测试:目前大部分都是微服务的架构,小程序调用的是后台的接口,所以这里的接口测试和平时的接口测试是一样的。
h.兼容性测试:操作系统兼容性、屏幕兼容性测试、微信兼容性
j.安全测试:防范隐私泄露、密码加密及传输安全、权限的合理开放、数据库安全、通信安全等。
以上是关于微信小程序测试点学习总结的主要内容,如果未能解决你的问题,请参考以下文章