小程序是一种轻盈的存在,用户无需为了使用它而下载和安装。它依附于微信这个强大的平台,只需轻轻一扫或一搜,它便跃然屏上,随时服务。小程序为我们带来更多前所未有的惊喜和便利,以下分享关于小程序相关的热门问题。
1 微信外的app、短信、邮件可以直接跳转到小程序吗?
可以的,目前微信提供了2种方式来实现跳转。分别是URL Schema和URL Link。
URL Link,底层还是依赖于URL Schema的技术。但微信为其铺设了一条“绿色通道”。官方特意设置了一个公共的中间跳转页,它的主要任务是请求用户的授权,允许打开。不仅如此,这个中间页还能根据你的需求进行自定义。当然,要自定义的话,你需要借助微信的静态托管服务才能大展拳脚。
而URL Link的价值,在于它确保了从其他app、短信等跳转到微信时,用户体验的一致性。这就好像你从一个地方走到另一个地方,始终保持相同的步伐和方向,让你一路走来都感觉顺畅自然。
举个例子,如下在ios中,测试从短信中打开URL Link,会直接跳转到微信,然后出现以下提示:
如果使用的是URL Schema的话,苹果手机首先会提示“信息想要打开微信”,然后直接进入小程序:
为什么会有个中间跳转页呢?因为在ios上,可直接通过URL Schema跳转到小程序;但是在安卓机上不行,安卓无法识别URL Schema,所以必须要有一个h5的中间页跳转。
如果使用URL Schema的话,这个中间跳转页面需要自己来开发。
2 微信内嵌h5页面,可以获取用户手机号吗?
微信对于手机号等敏感信息向来保护得相当严密。但小程序却有特权,能够获取已授权的用户手机号码。对于内嵌在微信中的H5页面来说,想要静默地获取用户手机号几乎是不可能的。
不过,这里有个巧妙的解决方法:通过跳转至小程序来间接获取。当用户从一个H5页面跳转到小程序时,小程序可以借助这个机会请求用户授权,从而获得其手机号。虽然此方法可以获得手机号,但频繁的跳转和授权请求可能会影响用户体验。因此,开发者需要在用户体验和功能需求之间找到一个平衡点。
3 小程序如何添加外链?
小程序外链到第三方网站,需要先配置小程序业务域名。登录微信小程序平台 -> 开发 -> 业务域名来修改。需要注意的是,业务域名需经过ICP备案,新备案域名需24小时后才可配置。域名格式只支持英文大小写字母、数字及“- ”,不支持IP地址。配置业务域名后,可打开任意合法的子域名。
合理配置业务域名,确保小程序与第三方网站的顺畅跳转,是提升用户体验的关键。
4 小程序webview内嵌的网站,网站内发起的请求,受微信白名单限制吗?
webview网站地址是有限制的,而且它支持子域名。比如说,你webview打开一个网址是http://www.a.com,那么http://www.b.a.com也一样可以打开。
但是webview网站里面的请求域名是不受限制的。比如http://www.a.com这个域名网站下,里面会发起各种请求,比如获取商品列表http://www.xx.com/getList,获取用户信息http://www.yy.com/getList等,都不受限制。
5 小程序有哪几种版本类型?
小程序分为3种版本类型:开发版,体验版,正式版。
开发版和体验版无需审核,需要给微信号配置权限,通过扫小程序的二维码才能访问。正式版需要通过微信审核流程,也就是说,在开发阶段,产品还未成型开始,无论你想怎么折腾,微信都有办法知道。这可不像在网上找了个框架或是工具,在本地怎么玩都没人知道。微信小程序开发者工具使用之前就要扫码。开发版和体验版的区别,在于开发版小程序的二维码有效期比较短。
项目中,我们一般会准备3套环境。开发版访问测试环境,体验版访问预发布环境,正式版访问生产环境。
6 前后端分离的技术架构
小程序产品大多采用前后端分离的技术架构。虽说前端也有逻辑处理,更多是为了优化体验做缓存,关键流程和状态流转还是要通过调用后端接口来落地的。接触过前后端分离的Web 或 App 项目的测试人员,在小程序产品的测试中是很容易上手的。
RESTful API,HTTP/HTTPS 协议,Json数据传输,Websocket协议……这些基础知识就是测试人员必修课。还要加强问题的分析和定位能力。发现问题时,需要快速判断是前端,后端,又或是第三方组件的问题。由于小程序产品有不同类型的版本,还需要排除是否不是最新的开发版,是否是多个环境未处理好导致串数据。而快速定位问题,需要依据完备的日志。不光是后端接口日志,前端页面在捕获到特殊的客户端异常时也应该上报。这往往是开发人员容易疏忽的地方。
开发架构和团队情况决定了测试策略。小程序的UI测试更多是让产品和设计人员去做,测试人员需要关注前后端交互,后端接口测试自动化,兼容性测试等工作。诸如前端是否在应该做缓存的地方没有做,而是频繁调用接口,是否影响网络体验。
7 小程序测试和APP测试的异同点有哪些?
小程序测试和APP测试在功能测试上逻辑一样,主要是理解项目的需求设计等,查看功能模块、业务流程、同一功能不同入口时有效性检查、页面交互性检查、输入输出等逻辑进行测试。不同点包括以下几个方面:
开发方面:小程序开发周期一般在两周左右,需要在公众平台上进行审核,审核周期一般较短;APP的开发周期在一个月左右,APP需要应用商店进行审核,审核周期较长。
权限上的区别:微信小程序需要验证是否有微信授权,未授权/授权登录程序,同一微信号不同手机登录查看数据显示情况;APP测试则需要考虑是否可以访问手机通讯录、相册、相机等权限。
性能方面:小程序页面可能只会关注响应时间,而APP则还需要关心流量、电量、CPU、GPU、Memory等。
兼容方面:小程序是基于浏览器的,所以更倾向于浏览器和电脑硬件,而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。APP的测试则必须依赖客户端,不仅要看分辨率,屏幕尺寸,还要看设备系统。
从测试场景来看:APP是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,小程序是基于浏览器的,所以不必考虑这些。
从系统架构来看:小程序测试只要更新了服务器端,客户端就会同步会更新。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。
缓存方面:缓存的作用是提高程序的流畅度、减少网络请求,节省服务器资源,有时候用户会进行清理缓存的情况。APP和小程序都会存在缓存,但小程序最大只有10M的本地缓存,测试时需要考虑清除缓存时强制退出、后台清理、关机等情况。
运行流畅度:原生App运行在操作系统中,所有的原生组件可以直接调用GPU进行渲染;小程序运行在微信的进程中,只能通过WebView进行渲染。用HTML+CSS+JS开发,配合微信的解析器最张渲染出来的原生组件的效果,比H5体验上更好。
占用空间方面:App 会一直存在手机中占用空间,太多的 App 可能会导致内存不足;小程序因为不需要安装,占用内存空间忽略不计。
8 小程序的测试点有哪些?
在面试过程中,可能会问到小程序如何测试或者给定一个小程序的功能模块让你设计测试点,我们可以从以下几个方面进行设计。
功能测试:按功能模块测试(根据设计好的各个大类功能模块划分,然后再逐一细化,覆盖到每个功能)、按业务流程测试(把各模块串联起来形成完整的业务流程、同一业务使用每个路径检查)、数据流向、同一功能不同入口有效性检查测试、交互性检查。
权限测试:未授权时登入小程序、已授权时登入小程序、同一个账号在不同手机端登入小程序。
UI测试:页面元素展示、页面交互。
易用性测试:导航、功能入口、上下层级进入&返回、字体图片动态交互效果、操作是否过于繁琐。
网络测试:网络切换测试、验证各种网络下是否正常
性能测试:页面白屏时间、首屏时间、资源占用、页面渲染时间
接口测试:目前大部分都是微服务的架构,小程序调用的是后台的接口,所以这里的接口测试和平时的接口测试是一样的。
兼容性测试:操作系统兼容性、屏幕兼容性测试、微信兼容性
安全测试:防范隐私泄露、密码加密及传输安全、权限的合理开放、数据库安全、通信安全等。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取