app的知識點
一、appium實現原理

========================================
二、app測試中遇到的問題
(一)app出現ANR(無響應),是什么原因導致的?
那么導致ANR的根本原因是什么呢?簡單的總結有以下兩點:
1.主線程執行了耗時操作,比如數據庫操作或網絡編程
2.其他進程(就是其他程序)占用CPU導致本進程得不到CPU時間,比如其他進程的頻繁讀寫操作可能會導致這個問題。
細分的話,導致ANR的原因有如下幾點:
a.耗時的網絡訪問
b.大量的數據讀寫
c.數據庫操作頻繁
d.硬件操作(比如camera)
e.調用thread的join()方法、sleep()方法、wait()方法或者等待線程鎖的時候
f.service binder的數量達到上限
g.system server中發生WatchDog ANR
h.service忙導致超時無響應
i.其他線程持有鎖,導致主線程等待超時
j.其它線程終止或崩潰導致主線程一直等待。
(二)App出現crash(崩潰)原因有哪些?
為什么App會出現崩潰呢?
App崩潰相關的幾個因素:內存管理錯誤,程序邏輯錯誤,設備兼容,網絡因素等,
如下:
a.內存管理錯誤?:可能是可用內存過低,app所需的內存超過設備的限制,app跑不起來導致App crash。
或是內存泄露,程序運行的時間越長,所占用的內存越大,最終用盡全部內存,導致整個系統崩潰。
亦或非授權的內存位置的使用也可能會導致App crash。
b.程序邏輯錯誤:?數組越界、堆棧溢出、并發操作、邏輯錯誤。
e.g. app新添加一個未經測試的新功能,調用了一個已釋放的指針,運行的時候就會crash。
c.?設備兼容:由于設備多樣性,app在不同的設備上可能會有不同的表現。
?e.網絡因素:可能是網速欠佳,無法達到app所需的快速響應時間,導致app crash?;蛘呤遣煌W絡的切換也可能會影響app的穩定性。
(三)app測試中的數據庫數據和app上的不一致?(沒有同步)
原因:app上勛在緩存和原有進程導致
在后臺數據據中,新增數據進行測試,打開app端查看對應的數據,不存在最新的數據,沒有更新;
解決方法:測試需要殺死進程、清理緩存,在進行app啟動;
(四)錯誤現象:登錄狀態下僅支持單點登錄,會彈出提示:該賬號在B手機已登錄,A手機強制退出登錄;實際要實現:登陸時不受單點登陸的限制或者指定登錄設備次數3,5臺
原因:未按產品需求說明書中的功能實現,如按照產品需求說明書,白名單內的用戶進行登陸時不受單點登陸的限制,也就是說同一個賬號可以同時在A手機和B手機登錄,但是開發實現錯誤,白名單內的用戶在A手機登錄后,在B手機登錄,然后點擊A手機上APP的功能,會彈出提示:該賬號在B手機已登錄,A手機強制退出登錄。
解決:找開發,增加多點登錄功能權限,設置登錄設備臺數;
(五)app閃退有哪些原因?
閃退的原因分為種:一、軟件本身有問題;二、系統出現問題。
1、軟件問題
(1)app 不兼容系統當前系統版本
(2)app有了新版本,沒有更新(軟件對手機分辨率有一定的要求)
(3)軟件有bug
(4)下載和更新不是官網下載的,是第三方軟件下載的
(5)網絡差(軟件對網速的要求比較高,如果用戶使用 2 G/3 G 網絡)
(6)分辨率不兼容(軟件對手機分辨率有一定的要求)
(7)手機被植入病毒
2、系統出現問題
(1)手機內存不足,比如:打開很多app,導致后臺反應出現問題
(2)軟件授權出現問題
(3)設備已經越獄,導致系統不穩定,閃退成了常事)
(4)手機緩存垃圾太多
(5)安裝路徑位置錯誤(比如:安裝外置存儲卡)
(6)手機配置問題 (比如手機配置低)
解決辦法:
1、卸載重新下載新版本,(安裝并設置手機儲存空間為安裝路徑即可)
2、及時更新新的版本
3、拒絕從第三方下載(卸載非官方下載的軟件)
4、重啟應用
5、檢查應用兼容性
6、檢查應用權限(授予必要的權限即可。 )
7、卸載重裝應用
8、清理手機存儲空間
9、 恢復出廠設置
10、檢查網絡(切換好的網絡環境)
(六)app白屏現象有哪些原因引起?
1、手機使用過長
2、手機本身質量問題
3、手機運行內存小,或不足
4、軟件和設備不兼容
5、運行過多軟件
6、手機版本問題
========================================
三、熟悉adb命令
ADB常用的指令:
查看當前連接設備 : adb devices
進入到shell : adb shell
查看日志 : adb logcat
安裝apk文件 : adb install xxx.apk
卸載APP : adb uninstall +包名
查看包名 : appt d badging +包的路徑
往手機SDCard傳遞文件:adb push 文件名 手機端SDCard路徑
從手機端下載文件 : adb pull + 文件
查看手機端安裝的所有包名:adb shell pm list packages
啟動Activity : adb shell am start 包名/完整Activity路徑
屏幕截圖 : adb shell screencap
啟動adb server命令 :adb start-server
停止adb server命令 :adb kill-server
查看adb版本 :adb version
========================================
四、常見app面試題:
1、app web端和app端的區別?
2、appium的原理?
3、app的搭建流程
4、常用的adb命令
5、app測試的關注點?(專項測試)
6、app自動化測試中你要到什么問題,如何解決的?
7、app自動化測試流程 ?
8、app的日志如何抓取?
9、測試過程中遇到app出現crash或者ANR,你會怎么處理?
10、請說明Android手機和IOS手機,系統有什么區別?

浙公網安備 33010602011771號