【原創】win11完美搭建macos13實現IOS自動化測試環境

yanzu發表於2024-04-12

虛擬機器完美搭建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 啟動

這裡若是啟動卡住不動或者報錯

  1. 到macos安裝路徑下

  1. 滑鼠右鍵編輯

可以嘗試一下幾種方式

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

  1. 在系統中,彈出系統安裝盤;

  1. 在虛擬機器選單中,點選安裝 VMware Tools;


  1. 根據安裝嚮導開始VMware Tools的安裝;

  1. 選擇【為這臺電腦上的所有使用者安裝】點選【繼續】;

5.點選【安裝】,根據提示輸入使用者密碼;


  1. 在彈出的系統擴充提示資訊選擇【開啟系統設定】-【隱私與安全性】-【安全性】中【允許】來自開發者"VMware,Inc.”的系統軟體已被阻止載入;


  1. 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

相關文章