android studio 设置自动编译_Appium Mac系统 自动测试环境搭建
一、python 環境準備
Mac 自帶 Python 環境,一般為 2.7 版本。
1、查看當前系統默認的Python路徑
which python ==> /usr/bin/python2、查看當前 python 版本
python --versio ==> Python 2.7.103. 安裝 python2 的包管理工具 pip
curl https://bootstrap.pypa.io/ez_setup.py -o - | python ==> easy_install pip4、安裝 brew包管理器
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"5、安裝 Python3 版本(如有需要)
搜索 Python3
brew search python3安裝 Python3
brew install python3運行Python3
python3注意:不要刪除python2,不要刪除python2,Mac 系統有些自帶App需要Python2支持。
6、安裝 requests模塊
Python2
sudo pip install requestsPython3
sudo pip3 install requests二、安裝 Xcode和 Android SDK環境
1、Mac Xcode 環境配置
進入App Store,下載Xcode,傻瓜安裝不用多將
2、Mac 下 Android SDK 環境配置
官方下載地址: https://developer.android.com/studio/index.html
國內鏡像地址:
http://tools.android-studio.org/index.php/85-tools/110-androidsdk-mirrors
http://www.androiddevtools.cn/
http://npm.taobao.org/
官網最底部下載對應的SDK工具包就可以了,官網大概率被墻,進去不了,去鏡像網站下。
下載并安裝完成后,配置環境變量
# vim /etc/profile export ANDROID_HOME=/Users/macbook/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools注意:/Users/macbook/Library/Android/sdk 路徑需要時自己的安裝路徑
3、配置 Java 環境
下載 JDK,并安裝,然后配置環境變量,如下:
# vim /etc/profile export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_71.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar刷新配置文件
source /etc/profile三、Mac 下安裝 Appium
Mac 下的 Appium 安裝比較繁瑣,因為他對iOS的支持不怎么友好,有很多的依賴需要安裝,需要細心的一步一步的配置。
1、 安裝 brew (已經安裝,請忽略)
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"2、 安裝 libimobiledevice
Appium iOS真機支持依賴一個重要的第三方軟件套件 libimobiledevice,使用 Homebrew 可以輕易地安裝好。
brew install libimobiledevice –HEAD3、安裝 carthage
為了在Xcode 8(其中包括所有iOS 10+的測試)使用iOS真機做自動化,你要安裝 Carthage 去做依賴管理:
brew install carthage4、安裝 node.js
nodejs下載地址:https://nodejs.org/en/download/
下載pkg文件,然后一鍵安裝
5、安裝 cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org6、安裝 ios-deploy
作為對 libimobiledevice 依賴的補充,Appium 對 iOS 9.3 及以上和 Xcode 8 及以上的支持依賴 ios-deploy,ios-deploy可以用來安裝卸載 ios應用。
cnpm有個問題,就是安裝的node_module 會全部放在當前路徑下。所以我們使用 cnpm 的時候,需要切換到/usr/local/lib(node模塊默認安裝路徑)
在終端輸入:
cd /usr/local/lib cnpm install -g ios-deploy7、安裝 xcpretty
gem install xcpretty安裝時間會比較長,如果沒反應,需要耐心等待。安裝失敗建議切換目錄重新安裝。也可以更換 gem 源:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/如果 gem 版本過低需要升級。
8、安裝 Appium
8.1、安裝 Appium-block 版本
cnpm install -g appium@1.12.1注意:@1.12.1可以去除,去除后會自動安裝最新版本
注意:安裝 appium-desktop 版本,可以直接用來獲取app的頁面元素信息,建議另安裝該版本或者直接安裝 appium-desktop 版本,進入appium官網下載安裝即可。
下載地址:appium/appium-desktop
8.2、安裝appium-doctor
用于檢測 appium 運行環境
npm install appium-doctor -g安裝完成后,執行 appium-doctor 檢查 appium 安裝是否完全(如果提示找不到文件,則進入appium安裝目錄/appium-doctor/目錄下,執行./appium-doctor.js),檢查結果如下:
上圖表明環境已配置完成,如果環境檢查出現 X ,檢查是否安裝對應的程序和環境變量的配置。
9、安裝 appium-xcuitest-driver 依賴
進入 Appium 安裝目錄,查找目錄下的 WebDriverAgent,進入 WebDriverAgent 后,執行以下命令
mkdir -p Resources/WebDriverAgent.bundle sh ./Scripts/bootstrap.sh10、編譯WebDriverAgentLib
進入 WebDriverAgent 目錄,找到 WebDriverAgent.xcodeproj,雙擊打開,默認就是用Xcode打開。切換到 WebdriverAgentLib,編輯如下圖內容,然后點擊左上角那個播放按鈕進行編譯,build succeed 就可繼續進行。(關于 team,可即時注冊個人開發者賬號,激活后填入即可,此處會返回10位ID,后面連接真機時會用到 )
11、編譯WebDriverAgentRunner
首先編輯general里的內容,和上面大同小異,也是需要勾選自動簽名和選擇開發者帳號。配置好后點擊編譯按鈕,build succeed 就可繼續進行。
12、獲取手機的udid
將手機通過usb連上電腦,然后打開itunes,然后選中鏈接的iPhone,點擊一下序列號,然后會彈出 udid 。
13、建立 WebDriverAgent 服務
手機開啟USB調試模式與Mac 在同一網絡,關閉 xcode,進入WebDriverAgent 文件夾。
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真機的udid' test這時候可以看到手機上多了一個WebdriverAgent的app,則表示環境已經配置成功。第一次會提示不受信任的開發者,需要進入設置-通用-設備管理(描述文件) 信任你的 Apple id。
14、Appium 獲取元素
Mac 的Appium 獲取元素需要安裝appium-desktop版本。
14.1 啟動 AppiumDesktop
打開 appium,啟動 appium server
點擊右上角放大鏡,打開 Appium server 設置
進入 Automatic Server - Desired Capabilities 中錄入對應的配置信息,如下圖
14.2 Desired Capabilities 參數
填寫以上參數,等待啟動,即可看到測試 app 的全部元素信息。
{ "platformName": "iOS",
"platformVersion": "11.0",
"deviceName": "iPhone 7",
"automationName": "XCUITest",
"app": "/path/to/my.app"}
編寫好通用的Desired Capabilities 配置信息會自動保存到Saved Capability Sets。連接手機后,點擊 Start Session按鈕,開始會話。
參數說明:
根據需求添加必要的參數,常用參數如下:
"automationName": "Appium", -- 可選,搜索引擎,appium(默認)還是Selendroid
"platformName": "iOS", -- 必填,應用平臺,iOS, Android, or FirefoxOS
"platformVersion": "10.3", -- 必填,測試的系統版本,設置兩位就可以了
"deviceName": "iPhone7", -- 必填,使用的手機或模擬器類型,iPhone Simulator, Android Emulator, Galaxy S4
"app": "com.apple.calculator", -- Android可選,iOS必填,應用的絕對路徑,與browserName屬性沖突,
"appPackage" : "com.test.now", -- Android未填app參數必填,運行的 Android 應用的包名,
"appActivity": "com.sng.LauncherActivity", -- Android未填app參數必填,Activity 的名字是指從你的包中所要啟動的 Android acticity,
"bundleId":"io.appium.TestApp", -- iOS未填app參數必填,用于在真實設備中啟動測試,使用其他需要 bundle ID 的關鍵字啟動測試。
"browserName":"Chromium", -- 做自動化時使用的瀏覽器名字, 與app 沖突,
"udid":" ", -- 多客戶端鏈接多臺手機時必填,連接真機的唯一設備號,iOS通過iTunes拷貝過來,IOS真機測試必填,
"noReset":"true" -- 在當前 session 下不會重置應用的狀態, 是否清除應用緩存。默認值為false,
"fullReset":"false" -- (iOS)刪除所有的模擬器文件夾。(Android) 要清除 app 里的數據,請將應用卸載才能達到重置應用的效果。在 Android, 在 session 完成之后也會將應用卸載掉。默認值為false ,
"xcodeOrgId":"123ADE4Y56", -- 十位字符的組織ID是蘋果開發證書的組織單位,appium可以通過十位組織單位ID找到相應的組織,IOS真機測試必填(注意: 連接真機時,測試app的打包簽名證書必須要與xcodeOrgId里的一致,否則會報證書錯誤,錯誤代碼是65)
"xcodeSigningId": "iPhone Developer", -- iOS真機測試必填,這里參數是固定的,就這樣寫,
"wdaLocalPort":"8100" -- 默認手機連接MAC本使用的端口,默認是8100,非必填
"unicodeKeyboard":"True" -- 使用 Unicode字符,輸入中文必須參數
"resetKeyboard":"True" -- 重置鍵盤,輸入中文必須參數
更多詳細的參數請參考官網:Caps - Appium
14.3 The Inspector
會話連接成功后就會展示 The Inspector,它是應用程序狀態的可視化表示。
Select Elements:選取元素,可選取左邊頁面上的元素。獲取元素的ID或者xpath等等類似的信息。選中某一元素后,該元素的詳細信息會展示在右側的視圖中,并且可以在右側選擇要對此元素進行的操作,包括tap、sendkey、clear。
Swipe By Coordinates:滑動,在截圖頁面上定位兩個點,頁面將會根據定點滑動。
Tap By Coordinates:點擊,可點擊左邊頁面上的元素。
Back:相當于返回按鈕
Refresh Source & Screenshot:刷新當前視圖
Search for element:尋找元素,當元素無法通過 Select Elements 并無法選取到,可以使用Search for element進行元素的查找。
Start Recording:錄制,開始錄制你的測試腳本,注意:它是學習工具,不是代碼生成工具。
總結
以上是生活随笔為你收集整理的android studio 设置自动编译_Appium Mac系统 自动测试环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 伸展树(Splay tree)图解与实现
- 下一篇: git灰度发布版本_spring clo