一文搞定移动端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进行脚本的编写和调试,所以这里只介绍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、连接设备编写脚本
 
 
相关链接:
 
 
遇到问题:
1、Error running xcrun simctl
打开Xcode-->Preferences-->Locations-->Command Line Tools 选择版本号就可以
2、opencv4nodejs cannot be found.
sudo npm install -g opencv4nodejs --ignore-scripts
 

原文地址:https://www.cnblogs.com/hanxiaobei/p/15315470.html