提綱/目標
通過對微信小程序特性和測試點進行總結,儲備測試知識,提高測試效率。
- 小程序特性介紹
- 小程序測試工作過程監控與管理
- 常見問題&技巧
現狀分析
- 接觸小程序的項目相對較少
- 缺少小程序測試實戰經驗
- 對小程序的特性不了解
- 小程序測試測試沉淀較少
目標達到成就
- 介紹小程序特性,了解測試中的注意事項
- 以某小程序為例,了解小程序測試工作
- 通過知識沉淀和經驗總結,提高測試效率
課程內容
*小程序已越來越常見
小程序發布審核
- 發布前需申請外網域名,並在微信web開發者工具里找到項目,設置好服務器的域名。
- 開發完上傳代碼后,在微信公眾平台—》登錄小程序管理后台—》點擊開發管理—》點擊提交版本審核即可。
- 審核通過后會有相應提示,接着把審核通過的小程序發布線上。若未審核通過可做相應修改繼續提審。
- 第一次提交小程序審核時,需先上線后端,一般第一次審核時間比較久(3d左右)。
小程序的限制
- 頁面層級跳轉:不能超過10層。
- 用戶本地緩存:不能超過10MB。
- 小程序代碼包:不能超過3M,所以部分圖片資源需上傳CDN。
- 小程序發布:需提交微信審核通過才可發版。
- 提交審核前,外網域名需申請(除微信域名之外)。
層級問題
- 小程序原生頁面存在10層限制問題,即超過10層時便無法打開新頁面,而業務流程或者訪問形成閉環時,很容易陷入10層問題。
- 為避免層級限制導致的無法打開頁面和層級限制帶來的交互路徑限制,內部提出了【層級策略】以解決層級限制問題。
- 【層級策略】將頁面路徑存儲到storage,返回時則刷新拉取存儲的頁面路徑,目前只保存頁面路徑,不保存表單等數據。
基礎庫版本
- 小程序的能力需要微信客戶端來支撐,每一個基礎庫都只能在對應的客戶端版本上運行,高版本的基礎庫對應的api不支持低版本,所以在使用這些新能力的時候需要做兼容。
- 由於微信版本和基礎庫版本不是一一對應關系,且小程序api是基於各個基礎庫版本進行發布的,所以在測試過程中需要提前獲悉當前基礎庫版本號。
- 目前可在zeye后台查看基於轉轉用戶使用的基礎庫、微信版本、手機型號覆蓋率等數據。
- 目前我們主要通過日志的方式自動獲取到版本號,可通過兩種途徑拿到:1.體驗版進入首頁時通過console查到;2.通過我的功能頁面拿到。
- 微信官方基礎庫版本查看: https://developers.weixin.qq.com/miniprogram/dev/framework/client-lib/version.html
小程序版本管理
- 小程序並不像服務端那樣區別線上和線下版本,而是有開發版、體驗版、線上版。
- 如果只是開發后端邏輯功能,可在三個版本中任意一個進行測試;如果是開發前端功能則需在相應的開發版/體驗版進行測試。
- 三者具體區別如下:
- 權限層:前兩者需申請開發者和體驗者權限才可使用,后者則面向所有用戶。
- 性能層:開發版和體驗版自身帶有vConsole性能面板(回歸需關閉此功能),而線上版則沒有。
- 代碼層:開發人員可同時在多個開發版上開發互不影響;體驗版當前只能有一份代碼處於審核中,審核通過后可發布上線,也可直接重新提交審核,覆蓋原審核版本;線上版本則為所有用戶使用的代碼版本,該版本代碼在新版本代碼發布后被覆蓋更新。
4. 包大小:開發版本不限制包大小;體驗者&正式版則限制包大小。
5. 二維碼:體驗版保持不變,開發版30min后失效需重新生成。
案例實操
前期准備
- 微信版本號需在6.3.27及以上,低於提示升級。
- QA需申請對應小程序體驗者權限&開發者權限。
- 小程序開發版、體驗版、正式版。
- 小程序AppID,項目地址&名字。
- 明確小程序本次測試入口&版本。
- 微信公眾號平台發布的【小程序開發助手】, 可方便快捷的預覽和體驗線上版本,體驗版本以及開發版本。
測試點
- 授權:目前已實現靜默授權,即用戶首次訪問小程序,主動獲取微信授權,通過獲取openid,生成轉轉uid,並存儲昵稱、頭像等信息。后續用戶若殺掉小程序重新進入,無需重新授權。
- 功能:與端內正常測試功能無異;
- 緩存:功能需求后,此時就需要關注緩存情況: 微信給每個小程序提供了10MB的本地緩存。 頁面切換時,可能會將上一個頁面的數據帶到下一個頁面展示。 對於賬號切換、版本發布等帶來的緩存,目前解決方法是簡單粗暴的將小程序刪掉,重新進入生效。 還可從代碼層面解決緩存問題:a.清除當前存儲到storage里的內容,如cookie信息,主要調用wx.clearStorageSync();b.從基礎庫1.9.90開始,小程序支持自動更新上線代碼,接口為wx.getUpdateManager()。
- 性能:開發版和體驗版自身帶有vConsole性能面板。
- 分享功能測試: 分享到好友列表&生成海報頁分享到朋友圈; 用線上/測試/開發版分享給好友,落地頁就是相應的線上/測試/開發版; 朋友圈識別跳轉都是線上版;所以在測試過程中若涉及到掃碼跳轉,就需借助【小程序碼測試工具】。
- 層級: M頁、toast、彈窗等不受限於層級問題; 小程序原生頁面超過10層后不能再打開新頁面,正常業務流程或閉環容易造成10層問題。
- 埋點 :測試大致和端內測試流程一樣,關注actiontype&pagetype等參數; 小程序統計常需區分用戶來源渠道,因此還需關注【backup】中的channel,pagechannel,type等參數。 具體規則見: https://developers.weixin.qq.com/miniprogram/analysis/custom/#_1-%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8
8. 更新
8.1 小程序的啟動方式
- 冷啟動----小程序首次打開或銷毀后再次被打開。
- 熱啟動----小程序打開后,在一段時間內(目前:5分鍾)再次被打開,此時會將后台的小程序切換到前台。
8.2 相應更新機制
- 小程序冷啟動時,會檢查小程序是否有最新版本。如果有則將異步下載最新版本,但是仍將運行當前版本等到下一次冷啟動時再運行最新版本。
- 如果你想現在就使用最新版本則需要調用wx.getUpdateManager API進行處理。
- 具體規則見:https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/update-mechanism.html
8.3 如何測試:開發在編譯時設置下一個版本更新模式
測試坑點
測試坑點 小程序測試過程中經常碰到的坑,重點需關注:
- 層級頁面跳轉
- 兼容性
- 緩存
測試工具
主要為開發者測試工具
業界參考-Wetest
1.兼容性測試: 測試地址: https://wetest.qq.com/product/miniapp
小程序兼容測試幫助文檔: https://wetest.qq.com/help/documentation/10618.html
2. 壓測: 微信小程序壓測最佳實踐案例 https://wetest.qq.com/help/documentation/10490.html
測試常見問題總結
1.緩存
2.2.更新機制:現在就使用最新版本則需要調用wx.getUpdateManager API進行處理。
總結
小程序特性。
小程序的測試點。
小程序測試的注意事項和技巧。
參考文章
https://testerhome.com/topics/16299