首先安装appium桌面版,appium命令行版,node.js版本在10以上,及Xcode,以下是本人安装版本,建议与我一至避免不必要的麻烦,坑还是很多滴。(如果要测试真机需要苹果开发者账户)
此为ios及安卓具体配置文档https://www.jianshu.com/p/1a69ee554b67
image.png image.png
依赖工具包安装:
brew install --HEAD ideviceinstaller
brew install --HEAD libimobiledevice
brew installl ios-deploy
ios必备命令
查看模拟器列表
instruments -s devices
查看真机列表
idevice_id -l
安装app
ideviceinstall -i demo.app
高版本使用
ios-deploy
命令行编译
xcodebuild -scheme UICatalog -target IOS clean build
xcodebuild -scheme UICatalog -target IOS archive
准备好运行你的第一个appium ios自动化脚本吧
命令行启动appium
appium -g /tmp/appium.log
image.png
启动appium桌面版
注意端口号要进行改变
配置xcode运行项目生成app
项目下载地址https://github.com/appium/ios-uicatalog
Xcode打开下载的项目
选择show the Report navigator
image.png
选择模拟器
image.png
点击Build,进行构建
构建完成后,将app路径进行复制,如果是真机选择真机进行构建,前提是你在apple注册了苹果开发者账户,使用开发者账户生成的app是有签名的可以放在真机上面运行,否则无法在真机上运行。构建的时候也会提示,无开发者证书 image.png
接下来配置appium桌面版
image.png
配置完成点击启动会话,等待虚拟设备加载安装,此过程很慢。(第二次启动就不会如此慢了)
选择此处虚拟设备会弹出,此时配置完成(这里的虚拟版本选择应与appium上一致)
image.png
录制一个脚本
image.png
复制之后放到pycharm即可运行脚本(虚拟设备不需要开发者账号)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Time : 2020/4/5 10:50 上午
# Software : PyCharm
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from appium import webdriver
caps = {}
caps["platformName"] = "ios"
caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphonesimulator/UICatalog.app"
caps["automationName"] = "XCUITest"
caps["deviceName"] = "iPhone 8"
caps["platformVersion"] = "13.3"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
el1 = driver.find_element_by_accessibility_id("Image View")
el1.click()
driver.quit()
真机配置(必须要有开发者账号)
真机配置见注解
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Time : 2020/4/4 9:46 下午
# Software : PyCharm
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from time import sleep
from appium import webdriver
class TestIOS():
def setup(self):
caps = {}
caps["platformName"] = "ios"
# 使用真机生成包(使用Xcode选择真机生成包),给出路径不在是Debug-iphonesimulator路径 路径变为Debug-iphoneos
# caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphonesimulator/UICatalog.app"
caps["automationName"] = "XCUITest"
# 会自动去找匹配udid,如果找不到需要配置udid,还找不到将手机版本也写上
caps["deviceName"] = "iPhone (2)"
# caps["platformVersion"] = "13.3"
# udid在 instruments -s devices 里面查找,真机后面的就是对应的uudid
caps["udid"] = "c7d84fbe88da5bcdeabb5da677d92bfdcd1a6c20"
#此为Xcode选择真机生成包的路径
caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphoneos/UICatalog.app"
# 开发者ID在苹果开发者账号查看
caps['xcodeOrgId'] = "96NJEQL7Y2"
caps["xcodeSigningId"] = "iPhone Developer"
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
def test_button(self):
el1 = self.driver.find_element_by_accessibility_id("Buttons")
el1.click()
def teardown(self):
sleep(20)
self.driver.quit()
如果运行过程中报如下错误 在appium运行日志中查看,将失败命令拎出来在次执行,发现为开发者证书的问题,cd 到报错给出的路径下,Xcode会打开WDA,将里面的开发者证书正确选择可解决问题。
ok,一个简单的case就这样完成了✅。
参数详细解释请浏览官网🔎http://appium.io/docs/en/writing-running-appium/caps/
网友评论