虛擬機器完美搭建IOS自動化測試環境
一、win系統
1.1 安裝虛擬機器VM16
如果是macos系統請跳過
詳細安裝請看壓縮包,私信可以提供安裝包
1.2 VM解鎖macOS
使用的是unlocker
解鎖涉及到修改註冊列表,會報毒,請先關閉防毒軟體
解鎖前需要關閉vmvare程式
同時關閉工作管理員中所有vm開頭的服務
將解鎖包解壓出來,右鍵以管理員身份執行win-install.cmd
檢視是否解鎖成功:
這裡出現MacOS則為解鎖成功,版本可以預設不選擇
這時候需要把工作管理員中的VM服務都開啟
1.3 VM匯入macOS
1.3.1 選擇好虛擬機器存放的位置,下一步
1.3.2 設定虛擬機器的處理器數量,我這裡是八核(建議最少4核)
1.3.3 設定記憶體,我這裡是16g,建議最低8g
1.3.4 選擇網路
1.3.5 選擇控制器型別
1.3.6 設定磁碟
1.3.7 建立完成,設定CD
1.3.8 啟動
這裡若是啟動卡住不動或者報錯
- 到macos安裝路徑下
- 滑鼠右鍵編輯
可以嘗試一下幾種方式
intel的cpu:
(1)不修改
(2)結尾處新增程式碼
smc.version = 0
(3)結尾處新增程式碼
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:1111:1010:1011:1111:1011:1111:1111"
featureCompat.enable = "FALSE"
(4)結尾處新增程式碼
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:1111:1010:1011:1111:1011:1111:1111"
featureCompat.enable = "TRUE"
(5)結尾處新增程式碼
smbios.reflectHost = "TRUE"
hw.model = "MacBookPro16,1"
board-id = "Mac-E1008331FDC96864"
amd的cpu:
(1)不修改
(2)結尾處新增程式碼
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"
smbios.reflectHost = "TRUE"
hw.model = "MacBookPro14,3"
board-id = "Mac-551B86E5744E2388"
keyboard.vusb.enable = "TRUE"
mouse.vusb.enable = "TRUE"
(3)結尾處新增程式碼
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"
(4)結尾處新增程式碼
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:0111:1000:1011:1111:1011:1111:1111"
featureCompat.enable = "TRUE"
具體安裝問題可以參考:https://www.dhzy.fun/archives/3858.html
1.4 macOS基礎設定
1.4.1 擴大磁碟
1.4.2 執行系統
系統開始安裝,安裝過程中,系統會自動重啟數次,整個安裝過程大約需要1小時左右;
系統安裝完成後,根據設定嚮導設定區域,輸入法等,區域選擇【中國大陸】;
輔助功能點選【以後】進行跳過,進入系統後再設定;
在登入Apple ID時,可選擇【稍後設定】進行跳過
建立電腦賬戶,設定使用者名稱和密碼
1.4.3 安裝 VMware Tools
- 在系統中,彈出系統安裝盤;
- 在虛擬機器選單中,點選安裝 VMware Tools;
- 根據安裝嚮導開始VMware Tools的安裝;
- 選擇【為這臺電腦上的所有使用者安裝】點選【繼續】;
5.點選【安裝】,根據提示輸入使用者密碼;
- 在彈出的系統擴充提示資訊選擇【開啟系統設定】-【隱私與安全性】-【安全性】中【允許】來自開發者"VMware,Inc.”的系統軟體已被阻止載入;
- VMware Tools安裝完成,點選【重新啟動】完成。
二、macOS實現IOS自動化測試環境搭建
環境說明
Mac版本:macOS Monterey 13(intel平臺)
Xcode版本:V13.3.1
Appium版本:V1.22.3
2.1、JDK
雙擊jdk-8u202-macosx-x64.dmg
2.2、Xcode
雙擊Xcode_13.3.1.xip,進行安裝
2.2.1、Command_Line_Tools_for_Xcode
雙擊Command_Line_Tools_for_Xcode_13.3.1.dmg
2.3、Appium Desktop
雙擊Appium-Server-GUI-mac-1.22.3-4.dmg
2.4、Appium-Inspector
雙擊Appium-Server-GUI-mac-1.22.3-4.dmg
2.5、Homebrew
透過映象安裝方式:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
(推薦使用中科大的映象源)
2.6、Carthage
brew install carthage
carthage version
2.7、 ios-deploy
brew install ios-deploy
2.8、ideviceinstaller
brew install --HEAD ideviceinstaller
2.9、libimobiledevice
#安裝最新版本libimobiledevice
brew install --HEAD libimobiledevice
2.10、Node&npm
brew install node
2.11、Appium doctor
npm install appium-doctor -g
#檢測iOS環境是否安裝成功
appium-doctor --ios
2.12、Pip
雙擊pip-24.0.zip,進行解壓
cd pip-24.0
python3 setup.py install
2.13、setuptools
雙擊setuptools-69.2.0.tar.gz,解壓
cd setuptools-69.2.0
python3 setup.py install
三、配置WebDriverAgent
3.1、先安裝
本機路徑為:
cd /Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent/Scripts
node ./build-webdriveragent.js
3.2、用xcode 開啟工程檔案,把檔案直接拖到xcode可知己開啟
檔案路徑為:/Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj
3.3、xcode登入賬號
新增account:Xcode -> Preferences -> account -> 左下角 +
3.4、設定team,所有TARGETS都需要設定
3.5、更改bundle id
這裡的bundle id就相當於一個App的唯一識別號,更改的規則隨意,只要確認不會與有重複即可;所有的targets都需要修改
3.6、構建WebDriverAgentRunner
3.7、啟動
點選Product → 選擇Test方式
如果真機執行後彈出以下彈窗,則需要在設定中信任證書
處理方式,在真機中授權信任WebDriverAgentRunner
授權信任之後需要重新點選Test
日誌出現地址則成功
可以測試下網址是否可以開啟
四、配置Appium
4.1 啟動Appium Server
顯示日誌則成功
4.2 啟動Appium Inspector
配置後點選Start Session,基本配置的引數如下:
{{
"platformName": "iOS",
"appium:deviceName": "iPhone 7",
"appium:udid": "c2d40a68a9c3123d2fd0aa85fddef4ec1e39c4bf",
"appium:platformVersion": "15.8.2"
}
五、編輯Python程式
5.1 開啟pycharm,新建專案
新建專案
5.2、新建python專案
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
# 啟動引數
iOS_caps = {
'automationName': 'XCUITest',
'platformName': 'iOS',
'platformVersion': '15.8.3',
'udid': 'c2d40a68a9c3123d2fd0aa85fddef4ec1e39c4bf',
'deviceName': 'iPhone'
}
# 連線Appium Server,初始化自動化環境
driver = webdriver.Remote('http://localhost:4723/wd/hub', iOS_caps)
# 亞馬遜圖示 XPath
亞馬遜圖示_xpath = '//XCUIElementTypeIcon[@name="亞馬遜購物"]'
# 定位亞馬遜圖示並點選
亞馬遜圖示 = driver.find_element('xpath', 亞馬遜圖示_xpath)
TouchAction(driver).tap(亞馬遜圖示).perform()
time.sleep(5)
# 退出程式
driver.quit()
右鍵-》run