小程式測試怎麼測(微信小程式測試方法)
點選上方頭像關注我,每週上午 09:00準時推送,每月不定期贈送技術書籍,小視窗回覆“資源”、“測試工具包”領取測試資源。
本文5178字,閱讀約需13分鐘
小程式(Mini Program),是一種不需要下載安裝即可使用的應用,是內嵌在微信APP裡面的一款新形態軟體。它實現了應用“觸手可及”的夢想,使用者掃一掃或者搜一搜即可開啟應用。也體現了“用完即走”的理念,使用者不用關心是否安裝太多應用的問題。應用將無處不在,隨時可用,但又無需安裝解除安裝。
一
小程式簡介
小程式版本型別
小程式分為3種版本型別:開發版,體驗版,正式版。
開發版和體驗版無需稽覈,需要給微訊號配置許可權,通過掃小程式的二維碼才能訪問。正式版需要通過微信稽覈流程,也就是說,在開發階段,產品還未成型開始,無論你想怎麼折騰,微信都有辦法知道。這可不像在網上找了個框架或是工具,在本地怎麼玩都沒人知道。微信小程式開發者工具使用之前就要掃碼。開發版和體驗版的區別,在於開發版小程式的二維碼有效期比較短。
專案中,我們一般會準備3套環境。開發版訪問測試環境,體驗版訪問預釋出環境,正式版訪問生產環境。
前後端分離的技術架構
小程式產品大多采用前後端分離的技術架構。雖說前端也有邏輯處理,更多是為了優化體驗做快取,關鍵流程和狀態流轉還是要通過呼叫後端介面來落地的。接觸過前後端分離的Web 或 App 專案的測試人員,在小程式產品的測試中是很容易上手的。
RESTful API,HTTP/HTTPS 協議,Json資料傳輸,Websocket協議……這些基礎知識就是測試人員必修課。還要加強問題的分析和定位能力。發現問題時,需要快速判斷是前端,後端,又或是第三方元件的問題。由於小程式產品有不同型別的版本,還需要排除是否不是最新的開發版,是否是多個環境未處理好導致串資料。而快速定位問題,需要依據完備的日誌。不光是後端介面日誌,前端頁面在捕獲到特殊的客戶端異常時也應該上報。這往往是開發人員容易疏忽的地方。
開發架構和團隊情況決定了測試策略。小程式的UI測試更多是讓產品和設計人員去做,測試人員需要關注前後端互動,後端介面測試自動化,相容性測試等工作。諸如前端是否在應該做快取的地方沒有做,而是頻繁呼叫介面,是否影響網路體驗。
微信通知服務邏輯
微信內支援服務通知跳轉到小程式。沒有留意小程式的微信使用者,甚至都不太注意服務通知這個名詞。其實服務通知已經被大量的社交電商小程式所使用,儼然成為新的營銷入口。
微信服務通知,需要小程式傳一個 form id 的引數給微信,再根據服務通知模版來向微信使用者傳送微信服務通知的。然而 form id 不是小程式自行生成的,而是該微信使用者在該小程式內操作時,微信產生並返回給小程式的。也就是說,如果使用者在小程式頁面上操作的時候,小程式前端頁面沒有把微信提供的 form id 收集下來,並返回給小程式後端,小程式後端是無法傳送微信服務通知給使用者的。不同的微信使用者在小程式內的操作頻率不同,form id 的數量也就不同。所以,那些把服務通知方式作為營銷入口的小程式們,可真是費了一番腦筋。
小程式相容性問題
目前小程式不支援直接分享朋友圈,只能分享微信好友。所以很多小程式都採取了“曲線救國”的方式,通過生成帶有小程式碼的圖片,使用者可以退出小程式將圖片釋出到朋友圈。
既然把小程式碼作為圖片的一部分,就涉及到小程式碼的位置,尺寸,還得不影響原有圖片的美觀,生成的小程式碼還需要是可識別的,這需要前端工程師做不同螢幕尺寸的適配。
二
小程式測試點
測試點可以從:功能測試、許可權測試、UI測試、相容性測試、介面測試、網路測試、效能測試等方面去考慮。
功能測試
小程式的功能測試跟APP功能測試,對於功能業務的測試思路及用到的用例設計方法是一樣的。根據設計好的各個大類功能模組劃分,然後再逐級細化,覆蓋到每個功能儘可能全面的測試點。包括業務流程、資料流向、功能入口有效性檢查、互動性檢查測試。
微信小程式為了提升使用者體驗,會快取使用者的頁面及資料,方便下次呼叫時直接使用。可能產生的問題:
- 微信小程式快取的資料是否和伺服器端一致。實際測試時可以先訪問頁面,然後修改伺服器上資料,再回看小程式中頁面,看資料是否一致。
- 切換相似的頁面,看是否快取的資料會產生混亂,切換分類的時候,會不會因為快取導致具體資訊不發生變化。
許可權測試
未授權微信登入小程式:
1)未授權時,使用一些業務功能的時候,都會彈出提醒‘先授權再操作對應功能’;
2)在提交資料到後臺的時候,會提示補充相關身份資訊才能提交。
已授權微信登入小程式:
1)授權微信訪問小程式,意味著自己的微信賬號可被小程式管理方獲取;
2)自動以微信的身份行使業務操作許可權,比如諮詢、支付、資料查詢等 。
所能檢視的資料和操作的許可權都應該是同步一致的,同一微訊號在不同手機端登入授權檢視資料許可權。
UI測試
小程式的頁面測試和app的介面測試一樣,關注頁面展示元素,如選單、對話方塊、視窗和其他可視控制元件的佈局、風格,文字是否正確。
頁面是否美觀,頁面互動操作是否友好。操作是否設計頻繁、是否易操作。
但注意一點,微信小程式頁面層級跳轉預設不能超過10次,達到10次就不能跳轉了。一般在進行需求設計時,頁面跳轉儘量在10次以內。有超過跳轉10次的應用場景,針對性開發。
相容性測試
手機系統:在 IOS上,小程式的邏輯程式碼執行於JavaScriptCore 中,在Android上,這個任務則是交給 X5 核心來完成。所以有條件的話,不僅要覆蓋Android和 IOS,包括主流的Android和 IOS品牌也要覆蓋,比如華為,小米,iPhone11,iPhoneXR等等。覆蓋到最新的試用版和當前流行的主要版本。
微信版本:與微信版本的相容性問題主要體現在小程式API庫的版本上。因為微信小程式SDK的API版本一直都在更新,導致SDK的API有可能有向下的相容性問題。例如在最新版本小程式SDK上開發的程式不能在低版本的SDK上像預期的那樣執行。所以測試微信版本的相容性之前要先確定小程式使用的庫版本在哪些微信版本號上支援。
螢幕大小:微信小程式定義了一個新的尺寸單位rpx(responsive pixel)。它可以適配不同的螢幕大小,但是需要注意一個特殊的尺寸1rpx,因為這個尺寸經常在iphone7p上出現問題。所以,只需要關注一下即可。
介面測試
目前大部分都是微服務的架構,小程式呼叫的是後臺的介面,所以這裡的介面測試和平時的介面測試是一樣的,但我們需要了解微信小程式提供的介面是什麼型別。
1)有介面文件的,參照介面文件進行介面測試。
2)沒有介面文件的,使用Charles或Fiddler抓包(同App抓包)。
網路測試
網路測試可參考APP的測試,包括網路切換,3G/4G/5G/wifi的切換;斷網測試,以及弱網測試,像弱網場景下超時是否給予合理提醒、丟包是否有重發機制。主要是考察小程式在各種網路狀況下的執行情況。
- WIFI切至2G/3G/4G/5G;
- WIFI切至無網;
- 2G/3G/4G/5G切至WIFI;
- 2G/3G/4G/5G切至無網;
- 無網切至2G/3G/4G/5G;
- 無網切至WIFI;
效能測試
小程式呼叫介面的時候對於伺服器端效能。例如併發量多大,伺服器是否有影響。小程式本身的效能包括:頁面的白屏時間、首屏時間、資源(CPU、流量、電量、記憶體等)佔用、頁面渲染時間等等。
三
小程式常見問題
小程式的架構是怎麼樣的?
小程式的架構:包含View檢視層、AppService邏輯層。
- View層用來渲染頁面結構,AppService層用來邏輯處理、資料請求、介面呼叫,它們在兩個執行緒裡執行。
- 檢視層使用WebView渲染,邏輯層使用JSCore執行。檢視層和邏輯層通過系統層的JSBridage進行通訊。
小程式測試和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 可能會導致記憶體不足;小程式因為不需要安裝,佔用記憶體空間忽略不計;
小程式的測試點有哪些?
在面試過程中,可能會問到小程式如何測試或者給定一個小程式的功能模組讓你設計測試點,我們可以從以下幾個方面進行設計。
- 功能測試:按功能模組測試(根據設計好的各個大類功能模組劃分,然後再逐一細化,覆蓋到每個功能)、按業務流程測試(把各模組串聯起來形成完整的業務流程、同一業務使用每個路徑檢查)、資料流向、同一功能不同入口有效性檢查測試、互動性檢查。
- 許可權測試:未授權時登入小程式、已授權時登入小程式、同一個賬號在不同手機端登入小程式。
- UI測試:頁面元素展示、頁面互動。
- 易用性測試:導航、功能入口、上下層級進入&返回、字型圖片動態互動效果、操作是否過於繁瑣。
- 網路測試:網路切換測試、驗證各種網路下是否正常
- 效能測試:頁面白屏時間、首屏時間、資源佔用、頁面渲染時間
- 介面測試:目前大部分都是微服務的架構,小程式呼叫的是後臺的介面,所以這裡的介面測試和平時的介面測試是一樣的。
- 相容性測試:作業系統相容性、螢幕相容性測試、微信相容性
- 安全測試:防範隱私洩露、密碼加密及傳輸安全、許可權的合理開放、資料庫安全、通訊安全等。
最後,如果有什麼補充的點,歡迎在文末評論區留下你的想法
更多系列文章
敬請期待
我是CoCo,電腦科學與技術專業,深漂大廠網際網路民工(女),座標深圳。5年工作經驗,3年持續輸出技術文。ITester軟體測試小棧(ID:ITestingA),專注於軟體測試技術和寶藏乾貨分享,每週準時更新原創技術文章,每月不定期贈送技術書籍,願我們在更高處相逢。喜歡記得星標⭐我,每週及時獲得最新推送,第三方轉載請註明出處。
想獲取更多最新干貨內容
快來星標 置頂 關注我