iphone xs 12.3.1;mac os 10.14.5;xcode 10.2.1;appium-desk 1.13.0;appium 无界面版 1.14.0; node.js 10.16.0;python3.7;JDK12.0.2 。
如果有报错权限问题的话,每条命令前加上sudo即可
检查jdk是否安装成功:输入 java -version 查看java的版本。如果输出版本信息,说明jdk安装成功。
安装homebrew:homebrew 简称brew。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
使用brew命令安装
brew install node
安装完成后在终端输入 node -v 出现版本号字样说明安装成功。
brew install libimobiledevice --HEAD
brew install carthage
npm install -g ios-deploy
gem install xcpretty
推荐在App Store中下载安装
appium是手机和pc之间的代理服务器,完成两者的通信处理。(没错,它就是个中间商)
appium-desk版本可在官网下载安装http://appium.io/downloads.html
appium-server 无界面版使用npm命令安装,但鉴于部分资源被墙,建议使用淘宝镜像。
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g appium #[email protected]可指定安装版本
安装appium-doctor检查appium环境。
cnmp install -g appium-doctor
终端运行appium-doctor --ios
如果报错提示xcode未安装在终端运行命令,设置xcode路径。
xcode-select –switch /Applications/Xcode.app/Contents/Developer
之前查阅了很多资料,说的是appium自带的wda有问题,无法使用inspector进行页面元素定位,但我决定使用appium-desk进行定位就没有单独去下载GIthub上的wda-master。
./Scripts/bootstrap.sh
安装完成后点击mac右上角的聚焦搜索,粘贴路径敲击回车。
右键通过Xcode打开.xcodeproj文件。
如果没有找到.xcodeproj文件
clone项目(要安装有git brew install git):$ git clone https://github.com/facebook/WebDriverAgent
下载依赖
$ cd /Users/yourname/WebDriverAgent
$ mkdir -p Resources/WebDriverAgent.bundle
$ sh ./Scripts/bootstrap.sh
在wdaLib General设置中选择自动签名,选择你的公司team。bundleid 是APP的唯一标识符,直接问开发获得。
确认 wdaLib build setting 中deployment系统的版本
image.png
image.png
signing签名是否正确
image.png
在wdaRunner General中设置自动签名,如果报错提示 Try again ,不要着急,先设置build setting。
image.png
检查build setting中packaging 的bundleid是否正确
image.png
image.png
连接上你的水果机,Scheme选择wdarunner,destination选择你的真机。
image.png
image.png
点击左上角三角形进行构建,首次构建可能会要求你输入访问钥匙的密码,输入你的账户密码即可(我输入的是开机密码),提示build succeeded。然后点击-product-test进行将wda安装到真机。安装完成后在真机的safari浏览器输入 127.0.0.1:8100/status 显示如下则表示安装成功。
QQ20190725-0.PNG
参数填写完成后点击右下角start session 手机上点击信任此电脑,并且开启设置-开发者-enable ui automation ,转跳到爱的魔力转圈圈界面,第一次连接的时间可能会很长。
路径/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
同上,cd到目录执行命令后使用xcode构建。
./Scripts/bootstrap.sh
如果之前安装过appium-desk的wda ,xcode会卸载后重新安装,安装过程中如果提示application install failed 就手动卸载真机上的wda。
敲黑板
安装谁的wda就用谁去连接真机。
比如说:我通过xcode构建了appium-desk版的wda到真机上,那么我就只能通过desk版去连接真机,不能通过无界面appium+python连接!
mac 系统自带python2,可通过官网下载并安装python3,在终端输入python3进入python IDE说明安装成功。
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能,目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。
你可以通过以下命令来判断是否已安装:
pip3 --version
安装成功提示如下
如果提示c'ommand not found可以通过如下命令安装
sudo easy_install pip
appium-python-client 是让 python 连接 appium 服务的一个驱动,也就是一个 python 语言封装和 appium api 通讯的一个库。
安装方法:
pip install Appium-Python-Client
验证:
引入webdriver模块不报错。
至此我们的ios测试环境已经部署的差不多了,接下来就用脚本进行测试吧。
# coding=utf-8
from appium import webdriver
import time
class Appium:
# 启动app
def __init__(self):
desired_caps = {}
desired_caps['platformName'] = 'iOS' # 设备系统
desired_caps['platformVersion'] = '12.3.1' # 设备系统版本
desired_caps['deviceName'] = '欢哥的 iPhone' # 设备名称
desired_caps['bundleId'] = 'com.xxx.xxx' # 测试app包名
desired_caps['udid'] = 'xxxxxx-xxxxxxxx' #设备id
desired_caps['automationName'] = 'XCUITest' # 测试框架
desired_caps['noReset']='true' # 保留app的登录状态
desired_caps['xcodeSigningId']='iOS Developer'
desired_caps['xcodeOrgId']='aaaaa' # 团队id
desired_caps['newCommandTimeout']=3600
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) # 保持端口号和appium服务端口一致
# 使用隐式等待或者显示等待,尽量减少time.sleep强制等待的使用提高脚本执行速度。
self.driver.implicitly_wait(5)
def test(self):
# 点击一个id定位的元素
self.driver.find_element_by_accessibility_id("").click()
# 此处使用time.sleep是为了能让肉眼区分操作。
time.sleep(1)
# 点击一个xpath定位的元素
self.driver.find_element_by_xpath("").click()
time.sleep(1)
# 给输入id定位的输入框传值
self.driver.find_element_by_accessibility_id("").set_value("iostest")
time.sleep(1)
# 截图保存到当前文件
self.driver.save_screenshot('./1.png')
time.sleep(2)
# 关闭app
self.driver.close_app()
if __name__ == '__main__':
a =Appium()
a.test()