關於PWA(Progressive Web App)的一些測試思考
現在app太多了,有的時候把整個手機的空間都佔滿了。所以,有時候我會清理一下Android手機里那些不常用的app程序,來釋放小小的8G手機內存。有一天,突然看到一個新聞,說餓了么可以通過手機網頁,免下載直接生成一個桌面應用,而且可以媲美原生的native應用體驗,我來了興趣,馬上試用一下。
用我的華為榮耀3C,打開Chrome瀏覽器,在地址欄輸入https:http://eleme.me,就打開了餓了么的手機網頁,再點擊右上角的「更多」按鈕,彈出一個對話框,點擊「添加到主屏幕」,提示添加成功。回到主屏幕,此時出現一個餓了么的圖標,跟應用市場下載的一模一樣。點擊進入程序,嗯,確實和native的體驗一樣的。哇,還有推送消息,不錯嘛!
作為一個測試人員,只是體驗這個程序還是滿足不了我的。去研究一下,這個炫酷應用的來龍去脈吧。這種直接從網頁載入到手機主屏幕的技術框架是PWA(Progressive Web App),中文名全稱:漸進式網頁程序。Google公司於201年提出,不過是在2016年6月才進行市場推廣的,目前該技術在國外挺流行的,因為解決了「不用下載應用,但是卻可以使用應用」的市場需求。所以,在硬體環境相對惡劣的印度,更加火爆。引用一下Alex Russel的關於PWA技術的一篇博客文中的一句話:「escaping tabs without losing our soul」翻譯過來就是「逃避但不失去靈魂」,應該說是脫離了原生app,但是卻保留了完整的業務功能,可見即可用。
作為測試工程師,我們應該了解PWA的特性,從而可以針對PWA模式的網頁做測試。根據Google的定義,PWA應該具有以下特性:
1. 漸進式屬性:任何環境都能運行,包括可以進行降級運行。
2. 響應式屬性:什麼樣的設備都可以使用。
3. 可離線應用屬性:基於Service Worker服務,在沒網或者弱網的條件下也能打開網頁,
4. 類app屬性:類似APP的使用體驗
5. 持續更新屬性:基於Service worker服務,保持網頁是持續更新狀態
6. 安全屬性:https網路服務
7. 可搜索屬性:能被引擎搜索到
8. 推送功能:不用打開網頁,推送新的消息
9. 可安裝屬性:不用通過應用商店,就能添加到手機的主屏幕
10. web連接屬性:有一個連接就可以跳轉到程序的Web頁面
結合以上的PWA特性,我們考慮針對性的功能測試。
1. 針對1.漸進式;2.響應式;3.離線應用這三個特性,屬於對硬體和網路環境比較惡劣的情況的測試。我們可以針對性的選擇以前的Android老舊機型,平板,在弱網或者斷網環境下測試程序,看網頁是否正常載入顯示。然後可以逐步提高網路環境和硬體,測試載入速度。測試是否逐級渲染等。
2. 針對4.類app屬性,可以參考app上的操作,對網頁進行操作,是否流暢。如果是從手機桌面進入的程序,程序應顯示該是沒有URL頭部的。
3. 針對5.持續更新屬性,應該是像傳統web一樣,支持熱更新,及時展示新內容。包括在原有頁面刷新和重新進入web頁面刷新。
4. 針對6.安全性,可以用市場上有的一些安全掃描工具加自行抓包進行測試。保證程序和數據安全。
5. 針對7.可搜索屬性,利用手機端的各個搜索引擎,可以搜索並打開程序。
6. 針對8.推送功能,利用後台設置,不打開網頁收取推送信息。
7. 針對9.可安裝屬性,測試各個主流Android廠商手機的安裝並打開功能。
8. 針對10.web連接屬性,可以從網路連接和安裝的程序里測試打開網頁功能。
以上是功能測試的內容,但是對於這個PTA的網頁,因為它是可以放置在手機桌面的,像一個客戶端,但是又不是app的客戶端,那這個PWA網頁在手機上的CPU和內存的性能測試如何進行呢?我遵循app客戶端的性能測試思路,找到了辦法。
1. 首先用 adb shell dumpsys meminfo 命令,我找到了這個PWA網頁的進程,因為其實它還是運行在Chrome的瀏覽器上,所以進程是兩個基於chrome的:
com.android.chrome:sandboxed_process0 (pid 8119)
com.android.chrome:privileged_process0 (pid 7232)
2. 利用adb shell dumpsys activity activities 命令,找到這個PWA程序的activity,基於Chrome瀏覽器運行的:
com.android.chrome/org.chromium.chrome.browser.webapps.WebappActivity
根據上面找到的1.進程名,2.Activity,就可以展開這個PWA程序的對Android機器的CPU和內存等等其他的性能測試。
再給大家介紹一個PWA應用的網址,https://pwa.rocks/,其中有很多有趣的應用,大家可以打開玩玩。
國內因為PWA技術是Google的,所以現在還不如國外那樣流行。但是PWA可以滿足用戶的幾個關鍵需求:可以搜索到,可見即可用,用完即走,重複使用也方便,是一個又輕又快的應用技術,發展前景十分廣闊。2018可能會是PWA應用在國內大發展的一年,讓我們一起期待吧!
更多關於測試方面的文章,請前往51Testing軟體測試網-中國軟體測試人的精神家園掌握哦~
推薦閱讀:
※Progressive Web Apps - Part.1 為什麼是 PWA?
※PWA 入門
※前端周刊第48期:Vue Conf 2017 + Progressive WEB APP
※PWA 背景
※PWA之Workbox緩存策略分析