1. 程式人生 > >微信小程式測試雜談

微信小程式測試雜談

最近兩個月參與了一款微信小程式的專案,團隊人少,除了測試的活兒之外還雜七雜八地推動很多問題,小有所得。網上有一些介紹小程式測試的文章,大多是偏測試工具角度,從小程式產品特性展開的測試經驗分享比較少。我寫了一篇大雜燴供同行消遣

1. 小程式產品的版本型別

小程式分為三種版本型別:開發版,體驗版,正式版。

開發版和體驗版無需稽核,需要給微訊號配置許可權,通過掃小程式的二維碼才能訪問。正式版需要通過微信稽核流程,也就是說,在開發階段,產品還未成型開始,無論你想怎麼折騰,微信都有辦法知道。這可不像你在網上找了個框架或是工具,在本地怎麼玩都沒人知道。微信小程式開發者工具使用之前就要掃碼的。開發版和體驗版的區別,在於開發版小程式的二維碼有效期比較短。

專案中,我們一般會準備三套環境。開發版訪問測試環境,體驗版訪問預釋出環境,正式版訪問生產環境。

2. 前後端分離的技術架構

小程式產品大多采用前後端分離的技術架構。雖說前端也有邏輯處理,更多是為了優化體驗做快取,關鍵流程和狀態流轉還是要通過呼叫後端介面來落地的。接觸過前後端分離的Web 或 App 專案的測試人員,在小程式產品的測試中是很容易上手的。

RESTful API,http/https 協議,json 資料傳輸,websocket 協議… 這些基礎知識就是測試人員必修課了。還要加強問題的分析和定位能力。發現問題時,需要快速判斷是前端,後端,又或是第三方元件的問題。由於小程式產品有不同型別的版本,還需要排除是否不是最新的開發版,是否是多個環境未處理好導致串資料了… 而快速定位問題,需要依據完備的日誌。不光是後端介面日誌,前端頁面在捕獲到特殊的客戶端異常時也應該上報。這往往是開發人員容易疏忽的地方。

開發架構和團隊情況決定了測試策略。小程式的 UI 測試更多是讓產品和設計人員去做,測試人員需要關注前後端互動,後端介面測試自動化,相容性測試等工作。諸如前端是否在應該做快取的地方沒有做,而是頻繁呼叫介面,影響網路體驗?… 

雖說小程式的 UI 自動化是可行的 ( https://github.com/applewu/testlab-python/blob/master/example/enter_into_mini_programs_ex.py ) 但介面畢竟變化太快,自動化測試的重心會放在介面層。

測試工具上,我習慣用 burp 抓包,soapui 介面自動化,偶爾用 wssip 來看 websocket 訊息。其實微信開發者工具就帶有類似 Chrome devtools 功能,測試過程中用著也挺方便。

 

3. 微信服務通知邏輯

微信內支援服務通知跳轉到小程式。沒有留意小程式的微信使用者,甚至都不太注意服務通知這個名詞。其實服務通知已經被大量的社交電商小程式所使用,儼然成為新的營銷入口。

微信服務通知,需要小程式傳一個 form id 的引數給微信,再根據服務通知模版來向微信使用者傳送微信服務通知的。然而 form id 不是小程式自行生成的,而是該微信使用者在該小程式內操作時,微信產生並返回給小程式的。也就是說,如果使用者在小程式頁面上操作的時候,小程式前端頁面沒有把微信提供的 form id 收集下來,並返回給小程式後端,小程式後端是無法傳送微信服務通知給使用者的。不同的微信使用者在小程式內的操作頻率不同,form id 的數量也就不同。所以,那些把服務通知方式作為營銷入口的小程式們,可真是費了一番腦筋的。

https://developers.weixin.qq.com/miniprogram/dev/api/notice.html#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E

4. 小程式碼的相容性問題

目前小程式不支援直接分享朋友圈,只能分享微信好友。所以很多小程式都採取了“曲線救國”的方式,通過生成帶有小程式碼的圖片,使用者可以退出小程式將圖片釋出到朋友圈。

既然把小程式碼作為圖片的一部分,就涉及到小程式碼的位置,尺寸,還得不影響原有圖片的美觀,生成的小程式碼還需要是可識別的。這需要前端工程師費功夫做不同螢幕尺寸的適配。

我們乾脆請了外包公司做相容性測試。

 

5. 個人思考

小程式產品作為微信生態的產物,要利用這個流量入口,就得費心力去了解裡面的條條框框。正如移動網際網路時代,App 並沒有替代 Web 系統一樣,即便接下來的兩三年是微信網際網路時代,微信小程式也不會替代 App。然而,正如 App搶走了一部分 Web 使用場景一樣,小程式也會搶走一部分 App (工具類,社交電商類)使用場景。所以,從技術人員的角度而言,沒必要糾結要不要跳進小程式開發的浪潮裡。如果是個人玩票學學也不難,如果是工作使用還是得聚焦於自己選擇的行業,行業需要怎樣的互動方式和載體,需要提供怎樣的服務給客戶。

本次給大家推薦一個免費的學習群,裡面概括效能,功能,介面,安全,自動化,linux和工具抓包,JAVA自動化框架以及面試資源等。
對軟體測試感興趣的同學,歡迎加入Q群:747981058,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。
最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。