一、sdk demo的品質
目前,sdk demo是小編測試sdk的主要途徑,所以sdk demo的品質會直接影響到我們測試的結果。
首先,作為測試用的demo,通常我們不需要它擁有美觀的介面以及完全友好的使用者體驗,但是一定要真正按照實際使用sdk的方式來對sdk進行呼叫,這是很重要的,否則測試的重點很容易跑偏。
其次,demo是否可以覆蓋sdk在實際使用中會用到的全部功能也很重要,這客觀影響到我們的測試覆蓋度。
再有,demo的設計是否可以滿足測試的需求也很重要,比如,要進行效能和穩定性測試的話,demo是否可以實現自動化批量測試,以及是否可以對結果或日誌進行儲存這些都需要考慮。
最後,demo本身是否會影響到測試的結果也需要考慮,比如demo本身的一些邏輯存在bug,或者本身存在記憶體洩漏等穩定性問題。這種問題比較普遍,可能經常遇到,對於我們測試sdk可能會產生較大幹擾,同時也會影響到測試進度,需要儘可能地減少。
在某些專案中,sdk demo是由開發側製作並提供的,開發提測sdk的同時已經準備好了demo。這種情況就需要我們對demo的品質做個預先的評估。小編之前就遇到了由於開發提供的demo品質的問題,未完全覆蓋到app的呼叫邏輯,導致sdk整合到app後出現問題的情況,測試sdk demo的時候完全正常,結果app的測試同學卻遇到了問題。雙方測試和開發排查、溝通半天,最後才查到是sdk的問題,白白浪費了各方不少的時間。所以,拿到demo以後,先簡單測試並與開發就一些呼叫上的細節進行核對,如果發現有哪些地方不滿足我們上述所說的一些條件,我們應該及時提出,由雙方共同商討解決方法後及時修改,避免測試中出現隱患。
二、手機app sdk測試對資源情況的監控
不同於之前的智慧硬體sdk測試,所用的系統由公司自己控制,我們可以較為方便地對系統進行操作,比如獲取root許可權或者在sd卡中執行指令碼等等,對手機app所用sdk的測試,我們要在不同的手機上進行測試。不同品牌、不同系統的手機,由於廠商的限制,我們有時很難進行像獲取root許可權這樣的操作,也很難在手機內部執行自定義的簡易指令碼來做各種事情,因此對資源情況的監控,我們就不能放在手機裡來做了。
這種情況,我們使用外部監控的方式來對手機中執行程式的資源情況進行監控。
第一種方式,可以把之前放在裝置中執行的指令碼稍加修改,變成在外部執行,通過adb命令來獲取相應的資源情況。比如在windows系統下,我們可以使用一個超簡單的bat指令碼來實現:
@echo off:LOOPset /p=%date:~0,10%-%time% > log.logadb -s deviceid shell "top -b -n 1 | grep 'processname' | grep -v grep" >> log.logping 127.0.0.1 -n 30 >nulgoto LOOP
獲取到的日誌:
然後就可以像之前一樣使用excel等工具繪製曲線圖來觀察資源佔用的變化情況。
第二種方式,我們可以用一些監控工具來實現對於資源的監控。比如android studio、xcode、perfdog等等。最近小編就經常使用perfdog來進行資源監控,這款騰訊公司開發的監控工具使用簡單,並且安卓和IOS系統都可以使用,也支援一臺電腦同時監控不同系統的多臺裝置,省時省力。
但目前該工具還存在一些bug,便捷的同時也建議大家不要過度信任該工具,還是要自己多加嘗試、使用和觀察來避免踩坑。
三、網際網路智慧裝置sdk通過公司網路進行測試
我們已經測試了多款智慧裝置相關的sdk,其中有一項測試是需要通過網路向裝置傳送一些資料來進行測試的,這種情況在一般的wifi環境(密碼加密或完全公開)下比較容易實現,但對於像搜狗公司這樣的、需要web認證的網路條件下就比較麻煩,因為很多智慧裝置可能無法使用web認證,無法接入公司的wifi網路。像這種情況,經研究,我們可以通過幾種方式來解決,作為小經驗分享給大家:
01 使用電腦無線網絡卡建立熱點,裝置接入
這種方式比較適合使用膝上型電腦測試的同學,一般直接用筆記本的無線網絡卡開啟熱點後,智慧裝置連到這個熱點上,設定好ip後即可從電腦訪問裝置。用桌上型電腦的同學可能需要自備另外的網絡卡了。
02 使用無線路由器,雙方接入
這種方式比較高效,只要電腦(無線有線均可)和智慧裝置都連到路由器的wifi上,電腦即可訪問到智慧裝置(這就相當於另外搭建一個無線網路)。如果還需要訪問網路和公司網路,可以將路由器的一個埠用來連線公司有線網路,使用dhcp或靜態ip的方式均可。
03 使用無線路由器裝置接入,純路由方式
這種方式不要求電腦端接入路由器網路,只需要智慧裝置接入,但實現起來比較複雜。需保證路由器接入公司網路,不要開啟NAT,智慧裝置ip不和路由器和電腦在同一網段,電腦和路由器在同一網段,電腦端設定路由將裝置網段流量轉發至路由器ip。以上條件應該缺一不可,因為過於複雜,所以不建議使用。
這種方式無需對電腦端做任何操作,不用開熱點,不用經歷斷網更不用設定路由,甚至還可以從機房的伺服器進行訪問。只需將路由器接入公司網路,然後將智慧裝置所需提供服務的埠在路由器設定個埠對映/轉發(DNAT)即可,需注意TCP/UDP協議是否啟用。這樣從電腦端直接請求路由器ip上映射出來的埠就可以訪問到裝置指定的埠了。缺點是,如果需要轉發不止一個埠或埠是動態的話,不是很好處理。
綜述:
原出處:搜狗測試