小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
现在有许多产品通过小程序来进行使用与分享,了解微信小程序的测试常识变得必不可少
本文主要介绍一下小程序测试的基础知识,自动化测试相关的实践
1.基础部分包含:小程序测试环境搭建、小程序测试基础、测试注意点
2.自动化测试使用在中以插件的方式封装官方提供的库
在进行小程序测试的时候,有时候会有如下的一些需求查看小程序在不同机型上的展示查看接口请求与响应修改后快速验证查看的报错代码质量性能情况主包大小......
这时候可以使用「微信者工具」前往官网进行下载联系小程序负责人申请小程序的者权限打包小程序使用微信者工具打开小程序打包产物
小程序的渲染层和逻辑层分别由2个线程管理:渲染层的界面使用了 进行渲染;逻辑层采用 线程运行 脚本。
一个小程序存在多个界面,所以渲染层存在多个 线程
这两个线程的通信会经由微信客户端( )做中转,逻辑层发送网络请求也经由 转发。
不同版本的入口版:使用「微信者工具」预览,二维码有效期30分钟
体验版:酷家乐小程序平台-对应的小程序-版本管理,二维码固定不变,永久有效
正式版:微信中直接搜索
在使用版或者体验版进行测试的时候需要开启调试模式
如果不开启调试会出现
1.无法访问没在小程序后台配置的域名 会提示表现为「获取失败,请检查网络链接」
2.无法查看调试信息
内部平台上可以进行环境切换
修改变量切换线上或线下等环境
为了保证⼩程序的快速访问和⽤户体验,微信会缓存整个⼩程序,包括⼩程序⽂件、授权数据、登录数据等等。因此⽤⼩程序常碰到缓存问题,例如切换环境(线上线下互切)、发布、登陆等有时候会发⽣数据切换不过来的场景,为了避免⼀些不必要的缓存问题,简单粗暴的⽅法就是,将⼩程序删掉重新进⼊。冷启动:用户首次打开,或小程序销毁后被用户再次打开,此时小程序需要重新加载启动,即冷启动。热启动:用户已经打开过某小程序,然后在一定时间内再次打开该小程序,此时小程序并未被销毁,只是从后台状态进入前台状态,这个过程就是热启动。
很多小程序中会内嵌5页面
在非正式版的时候可以选择「不校验合法域名、-(业务域名)、 版本以及 证书」来进行测试,但是到了正式版本后需要将外部链接加入到白名单
小程序内关联的文章也是有限制,必须是当前小程序关联的公众
目前小程序分包大小有以下限制:整个小程序所有分包大小不超过 20;单个分包/主包大小不能超过 2。
者工具中如何查看分包大小
在「微信者工具」中的调试器中的「 」中点击「」即可看到实时的性能数据了
有一个获取客户列表的接口:
现在需要修改它的返回值
数据格式为:
{
"": "",
"": "",
"": ""
}
这次后让它就返回一个客户的信息
{"":"0","":"","":{"":1,"":20,"":1,"":1,"":[{"":"344","":"听白","":"","":}]},"":}
合并一下
{
"": {"":"0","":"","":{"":1,"":20,"":1,"":1,"":[{"":"344","":"听白","":"","":}]},"":},
"": 200,
"": ""
}
使用正则的方式匹配的接口为
刷新一下页面进行测试,查看是否成功
修改一下响应的内容
{
"": "344",
"": "听白1111",
"": "123",
"":
}
查看效果
分享出去的⻚⾯,这个链接⼀般是免登录的,需要使⽤完全没有登录过的⼿机或者清理干净缓存再去验证
右上⻆开放出了哪些功能,我们都需要验证⼀边,确保正常。
特别是浮窗切换,前台后台切换的时候,容易出现⻚⾯错乱或者⽩屏的现象微信支付二维码支付第三方支付
需要测试各个支付方式都能正常唤起并支付
⼩程序为了快速流畅的⽤户体验缓存了整个⼩程序,⼏乎每个⻚⾯都会存在⼤量的缓存.
我们需要明确哪些我们需要缓存,哪些⽆需缓存,注意⻚⾯切换或者账切换时数据的正确性。可以通过「发现」模块下的「⼩程序」中的搜索框搜索到对应的⼩程序;可以通过「附近的⼩程序」找到⼩程序;已打开过的⼩程序,还可以通过微信聊天⻚⾯的下拉框找到⼩程序;分享链接可正常打开⼩程序;⼩程序码扫描可正常打开⼩程序;删除⼩程序后重新发现正常可正常进⼊。
不同运行环境下,脚本执行环境以及用于组件渲染的环境是不同的,性能表现也存在差异:在 、 和 上,小程序逻辑层的 代码运行在 中,视图层是由 来渲染的,环境有 14、 14、 11.4 等;在 上,小程序逻辑层的 代码运行在 8 中,视图层是由基于 内核的微信自研 引擎来渲染的;在 上,小程序逻辑层 和视图层都是用 内核;在 工具上,小程序逻辑层的 代码是运行在 . 中,视图层是由 来渲染的。
无法开启 编译 (-- ),同等条件下的运行性能要明显低于其他平台。
主要是屏幕的适配
微信小程序定义了一个新的尺寸单位 ( ) 可以适配不同尺寸的屏幕,在页面上定义对象的单位是 就可以在不同的屏幕上适配。
部分机型会出现边框缺失:小程序1边框不完美解决方案
基础库
为了避免新版本的基础库给线上小程序带来未知的影响,微信客户端都是携带 上一个稳定版 的基础库发布的。
小程序的能力需要微信客户端来支撑,每一个基础库都只能在对应的客户端版本上运行,高版本的基础库无法兼容低版本的微信客户端。
有条件可以切换多个版本的微信来进行测试与微信的交叉事件:微信视频,语言通话等打断小程序操作与手机的交叉事件:手机电话,闹钟,文件接收等打断小程序操作
小程序不会阻止交叉事件的发生(不会打不进电话等)
查看小程序会不会出现中断,白屏,卡死,闪退等问题测试3、4、5、 网络下应用运行的速度。网络不好时,提交数据是否一直处理提交中,是否会有延迟,数据交换失败是否会有提醒。有网到无网再到有网环境时,数据是否可以自动恢复,能正常加载。
该项目基于进行改造
在保留原有特性的情况下,可以使用来进行代码编写,提高编写效率
- --
_ ,
():
_ = ('', _='视图容器', ='组件页-视图容器')
_
.
_ = (
"////-", # 待测试的小程序项目路径
"//.///" # 微信者工具路径
)
@.(="")
_():
(=.)
_
@(="小程序官方组件展示", ="组件", ='容器视图操作')
__(_):
.("点击容器视图"):
_.(_._)
, "故意失败,查看报告截图"
查看网络请求信息
微信官方文档-小程序