• 14
  • 14
分享
  • 微信小程序的测试方案总结——软件测试圈
  • 饭团🍙 2021-02-08 15:17:39 字数 2822 阅读 2156 收藏 14

提纲/目标

通过对微信小程序特性和测试点进行总结,储备测试知识,提高测试效率。

  • 小程序特性介绍

  • 小程序测试工作过程监控与管理

  • 常见问题&技巧

现状分析

  • 接触小程序的项目相对较少

  • 缺少小程序测试实战经验

  • 对小程序的特性不了解

  • 小程序测试测试沉淀较少

目标达到成就

  • 介绍小程序特性,了解测试中的注意事项

  • 以某小程序为例,了解小程序测试工作

  • 通过知识沉淀和经验总结,提高测试效率

课程内容

1.png

*小程序已越来越常见

小程序发布审核

  1. 发布前需申请外网域名,并在微信web开发者工具里找到项目,设置好服务器的域名。

  2. 开发完上传代码后,在微信公众平台—》登录小程序管理后台—》点击开发管理—》点击提交版本审核即可。

  3. 审核通过后会有相应提示,接着把审核通过的小程序发布线上。若未审核通过可做相应修改继续提审。

  4. 第一次提交小程序审核时,需先上线后端,一般第一次审核时间比较久(3d左右)。

2.png

小程序的限制

  1. 页面层级跳转:不能超过10层。

  2. 用户本地缓存:不能超过10MB。

  3. 小程序代码包:不能超过3M,所以部分图片资源需上传CDN。

  4. 小程序发布:需提交微信审核通过才可发版。

  5. 提交审核前,外网域名需申请(除微信域名之外)。

层级问题

  1. 小程序原生页面存在10层限制问题,即超过10层时便无法打开新页面,而业务流程或者访问形成闭环时,很容易陷入10层问题。

  2. 为避免层级限制导致的无法打开页面和层级限制带来的交互路径限制,内部提出了【层级策略】以解决层级限制问题。

  3. 【层级策略】将页面路径存储到storage,返回时则刷新拉取存储的页面路径,目前只保存页面路径,不保存表单等数据。

基础库版本

  1. 小程序的能力需要微信客户端来支撑,每一个基础库都只能在对应的客户端版本上运行,高版本的基础库对应的api不支持低版本,所以在使用这些新能力的时候需要做兼容。

  2. 由于微信版本和基础库版本不是一一对应关系,且小程序api是基于各个基础库版本进行发布的,所以在测试过程中需要提前获悉当前基础库版本号。

  3. 目前可在zeye后台查看基于转转用户使用的基础库、微信版本、手机型号覆盖率等数据。

  4. 目前我们主要通过日志的方式自动获取到版本号,可通过两种途径拿到:1.体验版进入首页时通过console查到;2.通过我的功能页面拿到。

  5. 微信官方基础库版本查看: 

3.png

小程序版本管理

  1. 小程序并不像服务端那样区别线上和线下版本,而是有开发版、体验版、线上版。

  2. 如果只是开发后端逻辑功能,可在三个版本中任意一个进行测试;如果是开发前端功能则需在相应的开发版/体验版进行测试。

  3. 三者具体区别如下:

  • 权限层:前两者需申请开发者和体验者权限才可使用,后者则面向所有用户。

  • 性能层:开发版和体验版自身带有vConsole性能面板(回归需关闭此功能),而线上版则没有。

  • 代码层:开发人员可同时在多个开发版上开发互不影响;体验版当前只能有一份代码处于审核中,审核通过后可发布上线,也可直接重新提交审核,覆盖原审核版本;线上版本则为所有用户使用的代码版本,该版本代码在新版本代码发布后被覆盖更新。

  1. 包大小:开发版本不限制包大小;体验者&正式版则限制包大小。

  2. 二维码:体验版保持不变,开发版30min后失效需重新生成。

案例实操

前期准备

  1. 微信版本号需在6.3.27及以上,低于提示升级。

  2. QA需申请对应小程序体验者权限&开发者权限。

  3. 小程序开发版、体验版、正式版。

  4. 小程序AppID,项目地址&名字。

  5. 明确小程序本次测试入口&版本。

  6. 微信公众号平台发布的【小程序开发助手】, 可方便快捷的预览和体验线上版本,体验版本以及开发版本。

测试点

  1. 授权:目前已实现静默授权,即用户首次访问小程序,主动获取微信授权,通过获取openid,生成转转uid,并存储昵称、头像等信息。后续用户若杀掉小程序重新进入,无需重新授权。

  2. 功能:与端内正常测试功能无异;

  3. 缓存:功能需求后,此时就需要关注缓存情况: 微信给每个小程序提供了10MB的本地缓存。 页面切换时,可能会将上一个页面的数据带到下一个页面展示。 对于账号切换、版本发布等带来的缓存,目前解决方法是简单粗暴的将小程序删掉,重新进入生效。 还可从代码层面解决缓存问题:a.清除当前存储到storage里的内容,如cookie信息,主要调用wx.clearStorageSync();b.从基础库1.9.90开始,小程序支持自动更新上线代码,接口为wx.getUpdateManager()。

  4. 性能:开发版和体验版自身带有vConsole性能面板。

  5. 分享功能测试: 分享到好友列表&生成海报页分享到朋友圈; 用线上/测试/开发版分享给好友,落地页就是相应的线上/测试/开发版; 朋友圈识别跳转都是线上版;所以在测试过程中若涉及到扫码跳转,就需借助【小程序码测试工具】。

  6. 层级: M页、toast、弹窗等不受限于层级问题; 小程序原生页面超过10层后不能再打开新页面,正常业务流程或闭环容易造成10层问题。

  7. 埋点 :测试大致和端内测试流程一样,关注actiontype&pagetype等参数; 小程序统计常需区分用户来源渠道,因此还需关注【backup】中的channel,pagechannel,type等参数。

4.png

8. 更新

8.1 小程序的启动方式

  • 冷启动----小程序首次打开或销毁后再次被打开。

  • 热启动----小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。

8.2 相应更新机制

  • 小程序冷启动时,会检查小程序是否有最新版本。如果有则将异步下载最新版本,但是仍将运行当前版本等到下一次冷启动时再运行最新版本。

  • 如果你想现在就使用最新版本则需要调用wx.getUpdateManager API进行处理。

  • 具体规则见:https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/update-mechanism.html

8.3 如何测试:开发在编译时设置下一个版本更新模式

5.png

测试坑点

测试坑点 小程序测试过程中经常碰到的坑,重点需关注:

  • 层级页面跳转

  • 兼容性

  • 缓存

测试工具

主要为开发者测试工具

6.png

业界参考-Wetest

1.兼容性测试: 测试地址: https://wetest.qq.com/product/miniapp

小程序兼容测试帮助文档: https://wetest.qq.com/help/documentation/10618.html

7.png

2. 压测: 微信小程序压测最佳实践案例 https://wetest.qq.com/help/documentation/10490.html

8.png

测试常见问题总结

1.缓存

9.png

2.2.更新机制:现在就使用最新版本则需要调用wx.getUpdateManager API进行处理。

10.png


作者:BruceHelloWorld

原文链接:https://blog.csdn.net/jlhx123456/article/details/107570745#comments_14872398

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 简介在业务运维场景中,需要对核心的API接口进行拨测。而各个接口需要传递的参数或者接口之间的依赖是比较复杂的,通常接口之间都是通过链式请求来完成一个业务场景。常见的就是先登录,拿到token以后,再进行后续的API请求。postman提供了基于GUI的方式完成这种场景适配,但是对于运维来讲,需要定时的基于策略的形式来对API进行监控。本篇文章就带你从0-1打造API监控体系。知识储备1. Postman使用方法2. Docker基础知识部署步骤1. 从postman导出collection以下文件以拨测httpbin.org为例,在Postman的GUI工具中导出拨测的json文件(httpb...
            0 0 4166
            分享
          •   摘 要  喂,你那个刚测好的页面怎么又出现了bug?这里怎么交互几次页面重绘就出了问题?你到底对前端测试用例的覆盖率有几分把握,真的没有测试遗漏嘛?对于这些疑问,正在看文章的你如果能够轻松应对,那么请关掉屏幕,本文与你关系不大,出去运动一下吧。但如果你也有类似的困惑,并且正在寻找衡量js代码测试完整度的方法,那么请继续阅读,文中介绍的js覆盖率工具会让你在完善前端测试用例的征途上,走的轻松一些。  正 文  众所周知,前端测试需求多、改动大,业务逻辑复杂又紧密,往往首轮设计的测试用例并不能完全覆盖所有的功能点和diff代码。这时,就需要代码覆盖率工具帮助我们发现测试未能覆盖到的代码分支和逻...
            1 0 1975
            分享
          • 规范的 python 编码令人赏心悦目,令代码的表达逻辑更清晰,使得工程代码更容易被维护和交流: 编码规范包括对于代码书写格式的约束,不良语法的禁用和推荐的编码手法,下面做些简要的描述: 1. 代码规范格式示例 以上的命名规范,对齐规范,代码行规范以及声明和注释规范都是最基础的书写规范,他们让代码表达更清晰。 2. 不良语法的禁用示例 常见的禁忌已经在上面被列出,避开python 的这些坑,可以让你的代码更少出错。 3. 推荐的编码手法示例 以上这些编程推荐,都是笔者多年最常用的,感觉最容易实现,也是收效最显著的编程手法。
            5 3 1983
            分享
          •   对于每个个人而言,如果知识+经验+能力+态度均优,则职位和薪资肯定会是非常不错。也就是我结合自身20多年质量管理工作检验所总结的一句话:胜在认知、赢在思维、贵在认真。至于在品质管理方面如何日积月累锻炼出不俗造诣则可以从以下逐步提升。  在职场中,有非常多的质量工作岗位,如:检验员、质量工程师、体系工程师、质量科长、质量经理、质量审核员、质量总监、质量专家、质量顾问等等。不同的岗位有着不同的质量知识储备,但有一点是毋庸置疑的,那就是每个人的质量知识都是从无到有,从有到多,从多到精,都是通过日积月累的持续学习所获得的。本文的意图是希望通过清晰简单的方式指导零基础、薄弱基础的质量从业人员逐步学习...
            0 0 112
            分享
          • 软件质量保证是为了保证软件系统或软件产品满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。在软件质量方面必须强调三个要点:软件必须满足用户规定的要求,与用户需求不一致的软件,就无质量可言。软件应遵循软件标准所定义的一系列开发标准,不遵循这些标准的软件,其质量难以得到保证。软件还应满足某些隐含的要求,例如希望有良好的可理解性、可维护性等,而这些隐含的要求可能未被写在用户规定的需求中,满足它的显性需求而不满足其隐含需求,那么该软件的质量是令人怀疑的。我们评价一款软件可以从以下一些角度进行正确性正确性是指软件按照需求正确执行任务的能力。 正确性也涵盖了“精确性方面。无庸质疑,...
            12 12 1381
            分享
      • 51testing软件测试圈微信