2022主流技术 Appium+IOS 自动化测试环境搭建
關于Appium for IOS
Appium是目前最主流的app自動化測試技術,能夠同時支持IOS、Android平臺上的移動應用自動化測試,能支持眾多語言,包括:Java、Python、Ruby、JavaScript等;并且Appium是開源免費使用的。
目前網上的關于Appium的學習教程絕大多數以Android為主,關于IOS端的比較少,而且很多教程年久失修,已經不再適用于目前的Appium版本了。希望能通過這篇文章解決大家的IOS App自動化環境搭建的問題。
關于WebDriverAgent
WebDriverAgent是Facebook開發的IOS端自動化測試工具,在Github上開源:
https://github.com/facebookarchive/WebDriverAgent
Appium項目采用WebDriverAgent作為IOS端App自動化的引擎(類似于Android平臺上的UIAutomator作用),WebDriverAgent通過在IOS端實現了WebDriver協議能夠遠程控制IOS設備,通過它能夠進行啟動、殺死應用,點擊或者滾動等操作。
WebDriver協議
WebDriver是一套基于HTTP協議的JSON格式規范,因為Android、IOS、web網頁端都有自己的UI操作實現邏輯,所以需要統一的規范能夠對這些平臺進行操作來屏蔽平臺的差異。通過WebDriverAgent我們可以通過相同的API來對這些平臺進行自動化操作,比如我們熟悉的Selenium、Appium都是實現了WebDriver協議。
在Appium和IOS系統迭代發展過程中,Appium并不是一直使用WebDriverAgent作為IOS端的自動化測試引擎。
在IOS 9之前使用UIAutomation作為自動化引擎,該引擎有許多缺陷,比如只能在單臺Mac電腦上測試單臺設備
IOS 9.3使用了XCUITest
IOS 9.3之后Appium就開始采用WebDriverAgent方案了
需要注意的是:目前官方Facebook已經沒有在維護WebDriverAgent了,所以如果使用Facebook的WebDriverAgent有可能不適配后續的IOS版本及Appium
https://github.com/facebookarchive/WebDriverAgent
Appium項目有內置了WebDriverAgent,而且也在同步修復BUG更新中,所以強烈建議使用Appium內置的WebDriverAgent :
https://github.com/appium/WebDriverAgent
環境部署
環境說明
Mac版本:macOS Monterey 12.4(intel平臺)
Xcode版本:V13.4.1
Appium版本:V1.22.3
基礎依賴環境
1、Xcode
Xcode是Mac OS平臺上的集成開發工具(IDE),用來開發Mac OS應用和IOS移動端應用,在Appium for IOS環境搭建時需要通過Xcode編譯WebDriverAgent運行在設備中。Xcode安裝比較簡單,直接在Apple Store里面搜索下載安裝即可。
2、Homebrew
Homebrew是Mac平臺的軟件管理軟件,它可以使我們更加容易安裝一些其他軟件,僅需要執行簡單的安裝命令,就能下載安裝所需要的軟件,省去了下載、解壓、拖拽等繁瑣的步驟。
官方提供了Homebrew的安裝命令,但是因為國內網絡的問題導致不能成功
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"通過鏡像安裝方式:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"(推薦使用中科大的鏡像源)
3、Carthage
Carthage用來管理項目依賴, 類似于 Java 中的 Maven;后面編譯WebDriverAgent項目時就需要用到它
brew install carthage carthage version4、ios-deploy
ios-deploy一個不需要用Xcode安裝和調試應用的命令行工具。需要一個有效的開發者證書,需要 Xcode 7以上的版本。終端輸入命令進行安裝:
brew install ios-deploy5、ideviceinstaller
ideviceinstaller是一個與iOS設備的installation_proxy交互的工具,允許安裝、升級、卸載、存檔、還原和列舉已安裝或存檔的app。此工具用于在真機上運行測試,默認是都安裝的。
brew install ideviceinstaller6、libimobiledevice
libimobiledevice是一個跨平臺的軟件庫 ;不依賴任何已有的私有庫,不需要越獄。應用軟件可以通過這個開發包輕松訪問設備的文件系統、獲取設備信息,備份和恢復設備,管理 SpringBoard 圖標,管理已安裝應用,獲取通訊錄、日程、備注和書簽等信息
#安裝最新版本libimobiledevice brew install libimobiledevice --HEADAppium環境
1、Node&npm
Node是一個javascript運行時環境,npm是節點包管理器。我們需要這些,因為Appium是一個node應用程序。
brew install node2、Appium
Appium提供了Appium Desktop(桌面版)和Appium Server命令行版本兩種安裝方式,前者有帶了圖形化界面,后者是純命令行方式。兩種方式任選其中一種即可。
2.1、Appium Desktop
下載地址:
https://github.com/appium/appium-desktop/releases
需要注意的是,從Appium Desktop V1.22.0版本開始,Appium Desktop內置的檢查器(一個可以用來獲取頁面元素信息的工具)已經被移除掉了,成為了一個單獨的程序。
下載安裝過程非常簡單,這里我們一般選擇新版本就好了。
2.2、Appium Server命令行版本
Appium server通過npm可以下載管理
npm install -g appium默認將會安裝最新版本,如果需要指定版本,通過以下命令:
npm install -g appium@1.7.2檢查appium版本
appium -v啟動appium服務
# -a參數:設置appium工作地址 # -p參數,設置appium工作端口號 appium -a 127.0.0.1 -p 47233、安裝Appium doctor
Appium doctor可以用于檢測Appium所需要的依賴環境是否是成功的
npm install appium-doctor -g #檢測iOS環境是否安裝成功 appium-doctor --iosnecessary dependcies 必須全部是打勾狀態 ,可選部分依賴可以不用全部安裝。
4、安裝Appium inspector
前面有提到過,新版本Appium Desktop(從V1.22.0版本開始)已經將Appium inspector(檢查器)工具移除了,所以如果想要使用檢查器工具我們需要額外再下載Appium inspector:
https://github.com/appium/appium-inspector/releases
下載完之后直接安裝dmg文件即可。
配置運行WebDriverAgent
前面我們說過WebDriverAgent是Appium測試IOS應用的自動化引擎,新版本Appium和IOS最好使用Appium內置的WebDriverAgent,當Appium(Appium桌面版或者命令行版本)安裝好之后我們可以使用Xcode來編譯運行WebDriverAgent。
對于Appium命令行版本,WebDriverAgent在
/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent/ 路徑下
對于Appium桌面版本,WebDriverAgent在
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent 路徑下
這里以命令行版本為例
點擊WebDriverAgent.xcodeproj使用Xcode打開WebDriverAgent工程:
配置WebDriverAgent
第一次配置需要創建開發者賬號
選擇 WebDriverAgentLib->Signing & Capabilities,輸入 apple id 和密碼
之后點擊Download Manual Profiles,再點擊 Manage Certificates
添加證書:
之后回到Xcode工具的Signing & Capabilities再選擇剛才添加好的Team:
還需要配置WebDriverAgentRunner,在 Team 中同樣選擇即可:
運行WebDriverAgent
選擇
Product->Scheme->WebDriverAgentRunner
Destination 中選擇要測試的設備,這里我選擇的是一臺iphone8 15.5的模擬器,當然你可以選擇其他的設備進行測試
最后點擊 Product->Test,經過編譯運行成功之后,會啟動模擬器并且在模擬器中安裝一個無圖標的 WebDriverAgent 應用,啟動了 WebDriverAgent 應用之后又會返回到桌面。并且可以在 Xcode 控制臺日志中看到有 ServerURLHere 提示
在瀏覽器中輸入ServerURLHere中間的http://IP地址:端口/status,出現如下提示則表示WebDriverAgent安裝配置成功并準備好接收請求了。
準備IOS測試app
很多小伙伴在學習階段沒有ios的app測試包可供使用,這里我們可以用appium官方提供的ios-uicatalog這個demo項目
https://github.com/appium/ios-uicatalog
該demo項目里面包含了一些操作示例,比如滑動、webview元素、輸入、點擊操作,我們可以用它來練習IOS自動化
1、克隆項目代碼到本地
git clone https://github.com/appium/ios-uicatalog.git2、運行項目
使用xcode打開項目目錄下的UICatalog.xcodeproj文件,直接點擊運行按鈕,之后會在設備中安裝UICatalog應用
Appium inspector識別頁面元素
借助Appium檢查器工具,我們可以識別app頁面元素信息輔助編寫自動化測試腳本,將之前安裝好的appium檢查器工具啟動(需要注意的是:使用檢查器工具之前需要將appium服務啟動)
配置說明:
Remote Host:appium服務工作ip地址
Remote Port:appium服務工作端口號
Remote Path:appium訪問地址,默認都是為/wd/hub這個節點
Desired Capabilities(所需能力)配置
platformName:測試平臺
platformVersion:系統版本
deviceName:設備名
udid:設備唯一標識符
bundleId:測試app的唯一標識,類似于android應用的包名
說明:在填寫所需能力配置時,不需要加前綴:appium:,當保存配置之后,檢查器工具會自動為我們加上。
udid參數值如何獲取?
選擇xcode工具欄上面的Window->Devices and Simulators,選中對應設備即可看到udid
bundleId參數值如何獲取?
打開Xcode,對應項目工程中選擇General即可看到
參數填寫完畢記得保存下,否則下次重新啟動appium檢查器需要重新填寫,點擊Start Session啟動回話,之后可以通過該工具獲取app頁面元素信息了。
最后: 可以在公眾號:傷心的辣條 ! 自行領取一份216頁軟件測試工程師面試寶典文檔資料【免費的】。以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
現在我邀請你進入我們的軟件測試學習交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測試,共同學習軟件測試技術、面試等軟件測試方方面面,還會有免費直播課,收獲更多測試技巧,我們一起進階Python自動化測試/測試開發,走向高薪之路。
喜歡軟件測試的小伙伴們,如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一 鍵三連哦!
軟件測試工程師自學教程:
這才是2022最精細的自動化測試自學教程,我把它刷了無數遍才上岸字節跳動,做到漲薪20K【值得自學軟件測試的人刷】
接口性能測試 — 軟件測試人必會618實戰場景分析
軟件測試工程師月薪2W以上薪資必學技能 — Python接口自動化框架封裝.
美團面試真題_高級測試25K崗位面試 — 軟件測試人都應該看看
測試開發之全面剖析自動化測試平臺 — 軟件測試人的必經之路
軟件測試必會_Jmeter大廠實戰 — 僅6步可實現接口自動化測試
Jmeter實戰講解案例 — 軟件測試人必會
總結
以上是生活随笔為你收集整理的2022主流技术 Appium+IOS 自动化测试环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python pymysql 下载_Py
- 下一篇: uni-app开发环境搭建创建uni-a