天天看點

關于APP自動化測試(Appium)

1、adb devices #檢視裝置 adb connect 127.0.0.1:62001 #連接配接62001是夜神模拟器的端口号

2、解析APP:sdk—build-tools目錄上點選輸入cmd,aapt dump badging 測試APP位址 aapt

dump badging 測試APP位址 | findstr package //appPackage:找到要測試的APP

aapt dump badging 測試APP位址 | findstr launchable-activity

//appActivity:測試APP啟動入口 類名,包名 adb shell dumpsys activity | find

“mFocusedActivity” mFocusedActivity: ActivityRecord{2a740793 u0

com.cubic.autohome/.MainActivity t6} 包名:com.cubic.autohome

類名:.MainActivity

3、adb help //檢視幫助文檔; adb devices //檢測連接配接到電腦的安卓裝置 adb

pull /手機路徑/ 本機路徑 //從手機中拉取資訊放到本地電腦上 adb push 本機路徑 /手機路徑/ adb shell

//登入shell模式(指令行的人機界面) adb install xxx.apk //安裝應用,自動拖拽位址 adb shell

dumpsys activity | find “mFocusedActivity” //查詢目前應用程式包名 adb

uninstall 包名 //解除安裝 adb kill-server //終止adb服務 adb start-server

//啟動服務,通常在adb出現問題時,結合adb kill-server adb shell am start -n 包名/入口

//啟動APP adb shell pm clear 包名 //清除應用資料和緩存 adb shell input tap

x軸坐标y軸坐标 //點選坐标 adb shell pm list packages //列出所有包名

-s列出系統apk路徑及包名 -3列出使用者apk路徑以及包名 adb logcat > //列印日志

4、手機傳回:driver.sendKeyEvent(AndroidKeyCode.BACK);

5、resource-id: driver.findElementById(“android:id/up”).click();

6、根據text屬性進行定位:driver.findElement(By.name(“師資團隊”));

driver.findElementByAndroidUIAutomator(“new UiSelector().text(“長沙”)”).click();

7、xpath定位

driver.findElementByXPath("//android.widget.TextView[@text='長沙']").click();
           

8、強制等待 Thread.sleep(6000);

9、隐式等待

隐式等待(全局):driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);

10、顯示等待:webdriverwait webdriverwait=new webdriverwait();

webdriverwait.until(expectCondition);

11、通過content-desc進行定位(有些元素中可能content-desc為空)

driver.find_element_by_accessibility_id(’’)

12、通過className進行定位 driver.find_element_by_class_name(“android.widget.Button”)

13、name定位

find_element_by_name()(取text的屬性值) 在web

view中html是有name屬性的,在native并沒有name屬性,這裡可以用text屬性值。

eg:driver.find_element_by_name(‘請輸入你的手機号碼’)

14、下拉重新整理

driver.swipe(startx, starty, endx, endy, duration); duration時間

15、擷取目前源代碼:river.getPageSource();

16、擷取目前頁面類名:driver.currentActivity();

17、重置應用資料:driver.resetApp();

18、擷取到應用是否安裝: driver.isAppInstalled(“包名”);

19、截圖功能:

FileUtils.copyFile(file,new File(“D:\test.png”));

20、擷取到裝置時間資訊 System.out.println(“目前時間”+driver.getDevicetime());

繼續閱讀