為了在自動化測試中節省時間節省真機的成本,而且更高效的覆蓋所有的IOS版本,避免兼容性問題和實現全面自動化測試,我采用saucelabs(https://saucelabs.com)平臺提供的虛擬設備。使用簡單易書寫的java語言和appium開源框架以及單元測試testng,創建maven工程(為了不在工程中引入jar包),將需要的jar寫入pom .xml 文件中,最后使用jenkins 構建自動運行實現IOS全自動化測試。這樣一來就完全不用人為干預,只需要關注測試結果就好了。
要進行IOS自動化測試的前提是需要一臺mac設備或者一臺黑蘋果。
在Apple 官網注冊Apple Id,用Apple Id 登錄開發者網站(https://developer.apple.com/download/)下載xcode并安裝即可(如下圖): 
Xcode安裝完成后啟動終端,在終端輸入xcode-select –install,在彈出的界面選擇安裝,等待安裝成功: 
在官網下載jdk 版本,并配置系統環境變量(以jdk 1.8.0_111為例)。
打開jdk的dmg文件,雙擊安裝,安裝完成后打開終端輸入如下命令查看當前使用的java:/usr/libexec/java_home
保存并退出(實際就是vim的命令)
按下鍵盤鍵Esc按下 shift + :輸入 wq使得環境變量生效執行如下命令:
source ~/.bash_profile查看當前設置的JDK信息,確保環境變量設置成功:java -version
下載(https://bitbucket.org/appium/appium.app/downloads/)appium dmg 文件(如下圖),打開Appium的dmg包,復制Appium.app到applications文件夾中,即完成安裝。 
打開appium的doctor 查看如下圖: 
得到如下結果說明環境搭建成功: 
啟動Appium并打開iOS的設置頁面,使用模擬器不要勾選UDID。注意App Path路徑的正確性以及設備的系統版本號的設置。 
設置完成后,點擊Launch按鈕,以啟動Appium Server。 
啟動Inspector: 啟動AppiumServer后,(如果真機要連接好真機,并確保Appium的參數設置正確(與設備保持一致)),本文采用的為模擬器,點擊Inspector按鈕啟動Inspector。此時Appium Server會自動安裝app并啟動被測App并通過instruments抓取頁面元素展示到Inspector頁面,就可以開始獲得頁面元素信息開始自動化腳本的編寫工作了 。

選擇在本地運行: 點擊Launch按鈕,以啟動Appium Server; 選中testcase文件右擊–》 Run As –》 TestNG test (如下圖1),由于本文創建的是maven 工程也可以執行選中pom.xml ->Run As–>Maven test (如下圖2); 圖片1:
圖片2: 
選擇在saucelabs 平臺運行,它可以提供各個版本的模擬器,多設備并行運行: 只需要把注冊的賬號寫入testCase中如下:
desiredCapabilites.SetCapability("accessKey", "e04e33ef-8e226-4b36-8865-e89ad2229721"); desiredCapabilites.SetCapability("username", "linda123456");選中pom.xml ->Run As–>Maven test 運行,或者在jenkins 中建立maven 項目,配置pom.xml路徑、觸發時間、testng 作為測試結果報告,出錯發郵件等。這時就可以實現IOS全自動化測試。你只需要關注測試結果就好了,當然你可以去saucelabs 查看 測試過程中錄制的視頻,結合測試結果報告,很快找到testCase fail的原因,用于修改testCase或提bug。
PS:
//查看devices id命令:instruments -s devices//命令行安裝*.app//啟動模擬器:xcrun instruments -w 'iPhone 6 Plus'//在已經啟動的模擬器中安裝.app:xcrun simctl install booted /User/liangwang/DownLoad/Spotlight.app(要提供.app的安裝路徑)//卸載*.app的命令:xcrun simctl uninstall booted com.quest.Spotlight (應用的包名)//查看應用程序的包名:用itools,終端命令行或者其他工具打開,然后在相應的程序包中找info.plist,打開后ctrl+f搜索:CFBundleIdentifier,在CFBundleIdentifier下面就是包名。//mac截圖:command+shift+4 鼠標拖動就可以選擇要的圖command+shift+3 截取全屏//把.app打包成.ipa文件:打開iTunes,然后把.app拖進去,選擇在Finder中查看,該文件就變成了.ipa文件啦通過上面的實踐會發現,IOS 使用 Java + testng +maven + appium 進行自動化測試和 Android 十分相似,唯一區別就是 IOS 必須使用 mac 進行操作,需要具備一定的 mac 使用基礎;其他在自動化測試腳本編寫方面和 Android 是完全一樣的,具體可以參見我以前寫的《Saucelabs+Java+TestNG+Appium+Maven+Git+Jenkins+ReportNG for Android 自動化測試》。
新聞熱點
疑難解答