發表文章

[十一]Android App自動化測試 - Appium教學 - adb shell一些有用到的指令

圖片
adb shell 相關網頁: http://adbshell.com/ 1.       adb shell pm list packages: 列出 device 內所有的 packages. adb shell pm list packages 可以找出所有測試 app 的 package. 2.       How to find appPackage and appActivity for APK file? adb shell 進入 device. Device 開啟待測的 app dumpsys window windows | grep -E ‘mCurrentFocus|mFocusedApp’ 計算機:

[十]Android App自動化測試 - Appium教學 - Monkey Test [實機]

圖片
Monkey Test 是專為 Android 的手機系統孕育而生的「隨機壓測工具」。 1.       下載 adb 程式, adb 的 USB 驅動程式已在上一節下載,且正常連上手機。 http://adbshell.com/downloads 2.       解壓 adb.zip ,將檔案放在 C:\adb 3.       開啟 cmd 命令提示字元,查看有無 adb.exe 執行檔。 4.       adb 環境設定: 開啟 cmd 命令提示字元,在 C:\adb 下輸入「 adb devices 」 查詢目前的裝置名稱或代碼,驗證測試裝置已經 Ready 。 5.       執行 Monkey Test 開始執行 Monkey Test 100 個隨機壓測,指令如下: adb -s XXXXXXXXXXXX shell monkey -v 100 6.       測試參數與結果分析: 執行指令「 adb -s XXXXXXXXXXXX shell monkey -v 100 」參數分析如下: 「 adb 」透過 adb.exe 呼叫 Monkey Test 測試參數。 「 -s devices name 」 -s 加上裝置名稱或代號。 「 shell monkey 」呼叫 Monkey Test 測試程式。 「 -v events number 」 例如「 -v 100 」就是壓測 500 個隨機測試。 7.       測試結果分析: 「 Events injected: 100 」這表示此次測試,成功注入 100 個測試活動。 「 elapsed time=6863ms 」這表示測試所花時間。 「 //Monkey finished 」這表示 100 個隨...

[九]Android App自動化測試 - Appium教學 - 使用adb 連接手機

圖片
手機開啟「開發人員選項」: 1.       點選 [ 設定 ] -> [ 關於 ] -> [ 軟體資訊 ] , 點選 [ 版本號碼 ] 7 次。 2.       可在設定列表中選取 [ 開發人員選項 ] 3.       開啟 [USB 偵錯 ] 下載 ADB Driver Installer: http://adbdriver.com/downloads/ 解壓,執行 ADBDriverInstaller.exe 看到列表中有一裝置,按 Install 很快就安裝完成。 指令查看是否有 devices: 正確連接之後,就可以輸入「 adb shell 」進入手機中開始下指令了。 「 $ 」字符號就出現了,可以把這環境想像成手機也有一個 cmd 命令指示字元。 如果要退出手機的命令字元,只要輸入「 exit 」就可以回到電腦的命令提示字元了。 測試以 UI Automator Viewer 連接手機畫面:

[八]Android App自動化測試 - Appium教學 - 使用MonkeyRunner測試實例

圖片
1.       開啟 Emulator, 且開啟計算機。 2.       在安裝 Android 資料夾中,找到 monkeyrunner.bat, 按右鍵,以系統管理員身份執行。 C:\Program Files (x86)\Android\android-sdk\tools 先連結到裝置: >>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice >>> device = MonkeyRunner.waitForConnection() 跑迴圈: >>> for i in range(1,10): . . .          device.touch(500,500,MonkeyDevice.DOWN_AND_UP) . . .          MonkeyRunner.sleep(0.3) . . . >>>   最後出現 . . . 之後輸入 enter ,就可以在 Emulator 看到:觸控螢幕上 9 的位置 10 次。

[七]Android App自動化測試 - Appium教學 - 載入測試用apk檔測試實例

圖片
首先去這邊取得測試用的 apk 或是使用自已開發的都可以。 確定環壞中已經有手機接上 ( 模擬器也可 ) 。執行 adb 即可查看目前有多少 device 被進接。 註 1 :若是找不到已安裝的手機,請重新插拔手機或執行 adb kills-server 然後再執行 adb devices 一次看看是否有抓取到。若還是沒有可以先查看手機是否已經開啟開發者選項中的 USB debug 模式。 註 2 :若是找到手機但是狀態是 unkown 也請先排除。 註 3 :一定要確認手機都有被找到才可以進行下一步,要不然也是白做。 下載測試 apk : 接著在   中設定 Application Path ( 放置 apk 檔的位置 ) 及 Package 這兩個屬性。 App Path 就不多說了, Package 指的是該 apk 中定義的 Package 名稱,若是自行開發 Android app 的話,對 AndroidManifest.xml 想必不陌生, Package 就定義在第一行的 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.selendroid.testapp" > 中;或是你也可以透過執行 aapt l -a App Path | grep package 來直接抓取 apk 中的 Package 。 再來在   中勾選 prelauch ,讓 appium 啟動後直接把 apk 安裝到手機上。 完成後,按  

[六]Android App自動化測試 - Appium教學 - 工具的使用

圖片
通過上一節我們發現,要獲取 app 的 package 和 activity 名字,要用什麼工具呢? 一、 monitor.bat         該文件位於 SDK 安裝目錄 tools 下,如在“ C:\Program Files (x86)\Android\android-sdk\tools ”下,雙擊運行 monitor.bat 即可運行,該工具可以幫我們找到 android 控件的 content-description ,為以後的 find_element_by_accessibility_id 定位方法做參數使用,也可查看被測 app 的 appPackage ,如下圖。 二、 uiautomatorviewer.bat         該文件位於 SDK 安裝目錄 tools 下,如在“ C:\Program Files (x86)\Android\android-sdk\tools ”下,雙擊 uiautomatorviewer.bat 即可運行,該工具主要用來查看控件的屬性,比如 resource id , class name 等,也可查看被測 app 的 appPackage ( Desired Capabilities 中使用)。         使用方法(以計算機為例):將模擬器打開,點擊左上角綠色的 Android 小圖標( Device ScreenShot ),可以為當前界面 UI 創建一個帶有控件信息的截圖,將鼠標放在想要的地方,即可看到控件的相關屬性:

[五]Android App自動化測試 - Appium教學 - Desired Capabilities詳解

圖片
 Desired Capabilities 在啟動 session 的時候是必須提供的 , 它本質上是 key value 的對象,它告訴 appium server 這樣一些事情:     1 、本次測試是啟動瀏覽器還是啟動移動設備?     2 、是啟動 andorid 還是啟動 ios ?     3 、啟動 android 時, app 的 package 是什麼?     4 、啟動 android 時, app 的 activity 是什麼? ========================================================================= ============================================================================     Appium 的 Desired Capabilities 是擴展了 webdriver 的 Desired Capabilities 的,下面的一些通用配置是需要指定的: https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md 下面這些屬性是 android 平台特定的(還有很多沒有列出來的可以查看: http://appium.io/documentation.html ):