ios介面自動化工具--Appium

來源:互聯網
上載者:User

標籤:des   android   http   io   os   ar   使用   java   for   

ios介面自動化工具--Appium

Appium是一款開源的移動端自動化測試架構,支援Android和Ios,之前簡單介紹過Appium,連結http://www.yeetrack.com/?p=639。最近在做ios的自動化測試,再詳細記錄一下過程。

安裝Appium

既然使用Appium架構,安裝肯定是必須的,兩種方式源碼安裝,或者直接安裝二進位dmg檔案。

  • 源碼方式

      git clone https://github.com/appium/appium

    下載完成後,執行sh reset.sh即可,它會將appium配置到我們電腦的環境變數中,直接使用Appium &啟動即可。但是這種安裝方式,我沒有找到Appium Inspector這個介面分析工具。介面的自動化測試,如果少了這款工具,就比較糾結了。

  • 二進位直接安裝app包

    Appium在 2014-10-20左右更新了1.3.1版本,對Xcode6和ios 8.1更友好了,建議下載此版本。:https://github.com/appium/appium/releases,下載安裝完成後,在mac的應用程式裡應該出現Appium的表徵圖了。

安裝Xcode

既然做ios的自動化測試,xcode最好還是安裝,雖然可以通過命令列build編譯、打包ios項目。安裝Xcode,直接在Apple Store中搜尋下載即可,Xcode 6.1版本。

範例工程

直接run Appium的範例工程是最快的上手方式,Appium提供了各種語言版本的範例工程,包括Android、Ios,語言有java、php、.net、js、perl、python、ruby。我一直用java,這裡就已java語言為例。

  1. 下載代碼: git clone https://github.com/appium/sample-code.git
  2. 安裝maven,配置環境變數
  3. 修改範例工程中的配置

    sample-code/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/UICatalogTest.java

     @Before public void setUp() throws Exception {     // set up appium     File classpathRoot = new File(System.getProperty("user.dir"));     File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator");     File app = new File(appDir, "UICatalog.app");     DesiredCapabilities capabilities = new DesiredCapabilities();     capabilities.setCapability(CapabilityType.BROWSER_NAME, "");     capabilities.setCapability("platformVersion", "7.1");     capabilities.setCapability("platformName", "iOS");     capabilities.setCapability("deviceName", "iPhone Simulator");     capabilities.setCapability("app", app.getAbsolutePath());     driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);     driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); }

    如果用模擬器啟動並執行話,應該不需要修改(前提是在命令列下build完了開發代碼,xcodebuild);真機的話,需要修改成下面的樣子:

     // set up appium //File classpathRoot = new File(System.getProperty("user.dir")); //File appDir = new File(classpathRoot, "../../../apps/UICatalog/build/Release-iphonesimulator"); String appName = "5LDV***BF.com.yeetrack.ios.app";  //注意修改成自己的應用,這塊可以在Xcode中查看,實際上就是Xcode中的Bundle identifier這個參數 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); capabilities.setCapability("platformVersion", "7.1.1");  //真機的ios版本 capabilities.setCapability("platformName", "iOS"); capabilities.setCapability("deviceName", "iPhone"); capabilities.setCapability("app", appName); driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
  4. 啟動Appium服務,在測試專案的根路徑執行mvn clean mvn -Dtest=com.saucelabs.appium.UICatalogTest test即可.

Appium Inspector

在Android中,我們可以使用hierarchyviewer這個強大的工具,來分析介面控制項,查看控制項id、name、類型等。在ios如果要分析介面控制項,可以使用Xcode查看,或者通過Xcode的UIAutomator錄製的js指令碼查看,但是都比較麻煩。Appium為我們提供了Inspector這款工具。簡單使用步驟如下:

  1. 點擊“蘋果”表徵圖,設定相關參數,如

    • App Path:使用模擬器設定此選項,指定build出的app程式,路徑如: /Users/apple/work/workspace/sample-code/sample-code/apps/UICatalog/build/Release-iphonesimulator/UICatalog.app
    • BundleID:使用真機設定此選項,這個就是Xcode中的Bundle identifier這個參數,在上面說過一次。
    • Force Device 選擇要啟動的機器類型
    • Platform Version 指定ios版本
    • UDID 使用真機設定此選項,這是iphone的唯一性標識,可以使用itune查看
    • Xcode Path: 設定Xcode的路徑,如果mac中安裝了多個Xcode可以在這裡進行手動指定
  2. 點擊“Launch”表徵圖,啟動Appium Server

  3. 點擊“Launch”左側的放大鏡表徵圖,就可以啟動Inspector工具,比較慢,耐心等待。載入完畢後,可以查看介面控制項樹,還可以錄製指令碼。點擊控制項後,可以看到該控制項的name、value、label、xpath、type等,當前前提是開發定義了這些東西。
遇到的問題

繼續閱讀->

ios介面自動化工具--Appium

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.