《大话移动 APP 测试》
《大話移動 APP 測試》
wiki: Software testing
第5章 常用工具介紹和實踐
Android、iOS
Monkey
Android SDK 提供的一個工具:發送偽隨機的用戶事件流,壓力測試。
adb shell monkey -v 10tips:
- 一般 Monkey 測試的日志很長,報告前需要過濾出有效且不重復的日志。
- 同時記錄 logcat 日志。因為有時候僅僅 monkey 的崩潰日志不足以定位問題。
- 記錄 seed。才能重現、回歸。
- 閱讀 monkey 源碼,如果 monkey 的偽隨機流程不能滿足需求:
- 可以修改代碼重新編譯。把編譯出的 Monkey.jar adb push 到要測試手機的 /system/framework 下就能用了。
- 可以寫個腳本給 monkey 執行。
Emulator
Android:所有在模擬器上進行的測試都僅作參考。
- 相機、wifi 等
- 同分辨率、同系統版本下,在界面顯示(UI)和某些按鈕的響應上往往有比較大的差異。
iOS: 界面上沒差異。
安卓版本不可能遍歷所有機型,可以通過集成 友盟、Flurry 等得到用戶機型分布,前 10 機型基本上就是測試重點了。第三方兼容測試平臺(比如 Testin)等數據也可以作為參考。還有就是公司和部分用戶內測。
telnet 到模擬器可以進行很多call、sms、geo、power等操作。
? ~ adb devices List of devices attached emulator-5554 device? ~ telnet localhost 5554 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Android Console: type 'help' for a list of commands OKhelp Android console command help:help|h|? print a list of commandsevent simulate hardware eventsgeo Geo-location commandsgsm GSM related commandscdma CDMA related commandskill kill the emulator instancenetwork manage network settingspower power related commandsquit|exit quit control sessionredir manage port redirectionssms SMS related commandsavd control virtual device executionwindow manage emulator windowqemu QEMU-specific commandssensor manage emulator sensorsfinger manage emulator finger printgsm call 15555218135 #模擬器默認號碼MonkeyRunner
With monkeyrunner, you can write a Python program that installs an Android application or test package, runs it, sends keystrokes to it, takes screenshots of its user interface, and stores screenshots on the workstation.
- 用來跑 python 腳本。
- 可擴充api。
- 支持錄制、回放。
Hierarchy Viewer
DDMS(Dalvik Debug Monitor Service)
Compatibility Test Suite
Android 提供的兼容性測試框架。只有通過 CTS 測試的設備才能獲得 Android 商標和使用 Android Market 的權限。其中有不計其數的測試代碼,覆蓋 Android 系統的各個模塊,非常值得借鑒。
Tcpdump/WireShark
網絡分析。
……(關于日志分析)有興趣的通許可以先熟讀 TCP/IP 協議卷一到卷三……
FindBugs
靜態代碼分析工具。
Lint
Android Studio 中,Lint 結果顯示在 Inspection 中。
Charles
抓包。
Instruments.Automation
Instruments 是 Xcode 自帶的測試工具,包含一系列的實用工具。
Automation 是 Instruments 中的一個工具。用 JavaScript 寫腳本進行 iOS 設備的界面自動化測試。
第6章: 常用框架介紹和實踐
Instrumentation
安卓執行測試活動的核心就是 Instrumentation 框架,可以實現界面測試、功能測試、接口測試甚至單元測試等。Instrumentation 框架通過在同一個進程中運行主程序和測試程序來實現這些功能。市面上的界面自動化工具多是對它的封裝。
以下是我在 Android 上從開始思考的兩套思路
* 以 Python 作為自動化測試方案的主導。Python 的 os 模塊用來調用 adb,負責啟動和關閉模擬器;adb 負責安裝和卸載應用;MonkeyRunner 負責模擬應用必須的操作(比如登陸等);MonkeyRunner 負責截圖以及對比最終結果。
* 以 Python 作為自動化測試方案的主導。Python 的 os 模塊用來調用 adb,負責啟動和關閉模擬器;adb 負責安裝和卸載應用;Appium 負責模擬應用必須的操作(比如登陸等);MonkeyRunner 負責截圖以及對比最終結果。
不過最終兩套方案都沒有被采納。我自己最后才去的方案是:
Python 作為自動化測試方案的主導。Python 調用 shell 腳本負責啟動和關閉模擬器;adb 負責安裝和卸載應用;MonkeyRunner 負責屏幕的解鎖;Instrumentation 負責應用內的操作以及界面控件的驗證;MonkeyRunner 負責最終界面的截圖和保存;Python 的 PIL 模塊負責圖片像素級別的對比。
Emma Code Coverage
- 代碼覆蓋(code coverage)工具。
- 檢查測試測試用例對代碼的覆蓋率。
- 也可以統計黑盒手動測試的代碼覆蓋率。(添加類似thread.sleep()方法,sleep 過程中手動操作被測試應用。)
robolectric
第8章: 性能測試介紹和實踐
Emmagee
Instrumentation
在 Android CTS 中可以找到參考。
HPROF
HPROF 是一種后綴為 .hrpof 的文件。一個 heap dump 會保存為一個 .hrpof 的二進制給文件。
Gfxinfo
Systrace
TraceView
Instruments -- Leaks
Android 多分辨率自動化實踐
Python 負責總體集成:Shell 腳本控制啟動和關閉不同分辨率的 Emulator;MonkeyRunner 負責模擬非應用的操作以及協助截圖;Instrumentation 負責應用內的操作;最后由 Python 進行圖片對比測試。
tips
- 測試的核心是用例設計。
- 執行用例的時候,意義在于學習別人寫用例的思路;寫用例的時候,意義在于學習怎么能夠更好地分析需求。
- 主動,也許是測試從業人員最終要的品質。
- 學會判斷輕重緩急。學會合理安排時間進行測試,不要只是說時間緊人少,人是活的,重要的在于自己的策略和溝通。
- 自動化測試是為了提高效率,幫助做回歸。不是為了解放手工測試人員。
- 分層思想。
todo
轉載于:https://www.cnblogs.com/shang1jk/p/5080395.html
總結
以上是生活随笔為你收集整理的《大话移动 APP 测试》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决网络通信中外网和内网之间的通信问题(
- 下一篇: 芒果旺卡一般审核多久