詳解appium自動化測試工具(monitor、uiautomatorviewer)

appium 是一個自動化測試開源工具,支持iOS和 Android平臺上的原生應用,web應用和混合應用。

  • 移動原生應用:單純用ios或者android開發語言編寫的、針對具體某類移動設備、可直接被安裝到設備裡的應用,一般可通過應用商店獲取,比如某個遊戲app;
  • 移動web應用:使用移動瀏覽器訪問的應用(appium支持iOS上的Safari和Android上的Chrome),不需要下載到設備上,而是通過瀏覽器直接訪問,比如H5九曲封神遊戲;
  • 混合應用:同時使用網頁語言與程序語言開發,通過應用商店區分移動操作系統分發,用戶需要安裝使用的移動應用,比如手機上的淘寶客戶端

獲取應用信息:

from appium import webdriver
desired_caps ={}
desired_caps['platformName']='Android'# 哪種移動平臺
desired_caps['platformVersion']='4.2' #設備版本號
desired_caps['deviceName']='Android Emulator' #設備是模擬機
desired_caps['appPackage']='com.android.calculator2' #待測試的app的java package
desired_caps['appActivity']='.Calculator' #待測試的app的activity名字
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) #

討論:webdriver.Remote實際上就是原生webdriver的子類,另外Remote()構造函數的第一個參數中需要顯示指定appium server監聽的端口

1、monitor.bat(獲取app的package&activity)

該文件位於your_andriod_sdk_path\tools下面。

該工具可以幫我們找到android控件的content-description,為以後的find_element_by_accessibility_id 定位方法做參數使用。

2、uiautomatorviewer.bat(獲取app的package和控件屬性)

該文件位於your_andriod_sdk_path\tools下面。

該工具主要用來查看控件的屬性,比如resource id,class name等。

該工具也可查看被測app的appPackage(Desired Capabilities中使用)。

3、獲取activity名字

1、直接看源碼,推薦;

2、反編譯

如果沒有代碼,那麼可以反編譯該app。

這裡將用到2個工具,分別是dex2jar和jd-gui。

以工具包裡的ContactManager.apk為例,簡單介紹一下反編譯的流程。

1,重命名ContactManager.apk為ContactManager.zip並解壓得到文件classes.dex;

2,解壓dex2jar-0.0.9.15.zip,並從命令行進入該文件夾;C:\appium\apk反編譯\dex2jar-0.0.9.15

3,運行命令d2j-dex2jar.bat  C:\appium\apk反編譯\com.meijialove.activity-1\classes.dex,在當前文件夾下得到classes-dex2jar.jar;

4,解壓jd-gui-0.3.6.windows.zip得到文件jd-gui.exe;

5,使用jd-gui.exe打開classes-dex2jar.jar;

3、查看log,發現在Android Devices Monitor的log可以看到activity的名字

    

到此這篇關於詳解appium自動化測試工具(monitor、uiautomatorviewer)的文章就介紹到這瞭,更多相關appium自動化測試工具內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: