一文搞定移动端appium自动化环境
【appium环境搭建】
1、Mac系统:11.6
2、Xcode:12.5.1
从App Store中下载Xcode
3、安装brew:3.2.12
4、安装nodejs:12.18.1
- 从nodejs官网下载安装包安装
- brew install node
5、安装libimobiledevice
- brew install -- HEAD libimobiledevice
常用命令:
idevicesyslog:查看系统日志
idevice_id -l:查看当前已连接的设备uuid
idevicescreenshot:截图
ideviceinfo:查看设备信息
ideviceinfo -k ProductVersion:查看系统版本
idevicename:获取设备名称
idevicedate:获取设备时间
6、安装ios-deploy
- npm install -g ios-deploy
- cnpm install -g ios-deploy
常用命令:
ios-deploy -c:查看相关链接设备,包括USB和Wi-Fi连接的
ios-deploy -c --no-wifi:查看通过USB连接的设备
ios-deploy --id [uuid] --bundle [xxx.app]:安装应用
7、安装ideviceinstaller
- brew install ideviceinstaller
常用命令:
ideviceinstaller -l:打印已安装的app列表
ideviceinstaller -u 2721277896a12c5170b349ef1a0c350c305d85ce -l:指定设备打印已安装的app列表
ideviceinstaller -i xxx:安装ipa包
ideviceinstaller -g xxx:覆盖安装ipa包
ideviceinstaller -U com.tencent.QQMusic:卸载QQ音乐的ipa包
idevicediagnostics restart:重启设备
8、安装carthage
- brew install carthage 验证:carthage version
9、安装appium的三种方式
- npm install -g appium【建议FQ安装原版appium,会自动解决一些依赖问题】
- cnpm install -g appium
appium-doctor检查appium安装情况
-
- appium-doctor --ios 检查iOS安装情况
- appium-doctor -- android 检查Android安装情况
- 安装appium-desktop客户端 https://github.com/appium/appium-desktop/releases/tag/v1.21.0
我使用appium-desktop进行脚本的编写和调试,所以这里只介绍appium-desktop下的android和ios!!!
网上的资料均为已过时老版本的appium,对iOS的支持需要替换appium自带的WDA,其实在appium-desktop 1.21.0 版本中已大可不必替换!
【iOS】
0、关于开发者账号
在 iOS 上通过 App Store 下载的应用,携带的是分发证书(Distribution Certificate),是禁止被测试的。
所以,需要获取 ipa 安装包再重新签名才可以被Appium 测试。
1、真机上安装WDA
- 安装包版appium下的WDA路径:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
- 打开该路径下的WebDriverAgent.xcodeproj文件
- 修改如下几个地方:
- 在Xcode中用快捷键:command + U
- 中间会出现几次访问钥匙串,直接输入机器密码。稍等片刻在手机上即可看到WDA【一个无logo的应用】
- 在设备中进行信任:设置-通用-设备管理-点击出现的开发者app-点击信任
2、真机上运行脚本
1 import time 2 from appium import webdriver 3 4 class Test_Demo(): 5 def setup(self): 6 caps = {} 7 caps["deviceName"] = "iPhone SE" # 设备的名称,在手机设置-通用-关于手机 可自行设置 8 caps["udid"] = "2721277896a12c5170b349ef1a0c350c305d85cw" # 设备的udid,指定后只会在一台机器上运行脚本 9 # caps["udid"] = "auto" # 如果设备有多台可使用auto自动选择 10 caps["platformVersion"] = "14.8" # 设备的系统版本 11 caps["platformName"] = "ios" # 设备的操作系统 12 caps["automationName"] = "xcuitest" 13 caps["noReset"] = True # 不要重复安装 14 15 caps["xcodeOrgId"] = "8278HWK4WG" # 看查看自己的team id 16 caps["xcodeSigningId"] = "iPhone Developer" # 固定写死即可 17 # Xcode编译后app的路径 18 caps["app"] = "/Users/xxx/Library/Developer/Xcode/DerivedData/UICatalog-dxrwbrhjaphogpgoapcncfjznios/Build/Products/Debug-iphoneos/UICatalog.app" 19 20 self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) 21 self.driver.implicitly_wait(20) 22 23 def test_click(self): 24 self.driver.find_element_by_accessibility_id("Buttons").click() 25 26 def teardown(self): 27 time.sleep(20) 28 self.driver.quit()
相关链接:
【Android】
1、安装adb
- 安装Android studio下sdk并配置系统环境变量
1 #Android 2 ANDROID_HOME=/Users/xxx/Library/Android/sdk 3 #adb start 4 export PATH=$ANDROID_HOME/platform-tools:$PATH 5 #uiautomatorviewer start 6 export PATH=$ANDROID_HOME/tools/bin:$PATH 7 #emulator start 8 export PATH=$ANDROID_HOME/emulator:$PATH 9 export ANDROID_HOME
- brew install android-platform-tools
2、连接设备编写脚本
相关链接:
【appium启动】
- desktop版启动双击应用图标即可
- 命令版需要在终端输入:appium& 启动并把启动的pid打印出来
遇到问题:
1、Error running xcrun simctl
打开Xcode-->Preferences-->Locations-->Command Line Tools 选择版本号就可以
2、opencv4nodejs cannot be found.
sudo npm install -g opencv4nodejs --ignore-scripts