Appium + Mac + iOS 自动化测试

前提条件

  1. iOS系统12.2
  2. macOS设备系统10.14.5 (18F132)
  3. Xcode版本Version 10.2.1 (10E1001)
  4. Appium版本V1.14.0

Appium工作原理

Appium是c/s模式的,appium是基于webdriver协议添加对移动设备自动化api扩展而成的。webdriver是基于http协议的,第一连接会建session会话,并通过post发送一个json告知服务端相关测试信息。
客户端执行脚本后生成基于WebDriver协议下的URL请求,服务器接收URL请求(类似一个远程命令)并将命令转发给测试机器,测试机器接收命令,解析命令后执行相应的操作,并把执行结果返回给服务器端,服务器端再将执行结果返回给客户端。

Appium环境搭建(osx)

1. 安装Appium

使用Appium Desktop方式,只需下载下来安装就可以啦。Appium Desktop下载。

2. 安装所需依赖库

根据被测应用平台选择不同的驱动,这里在Xcode10上测试iOS,选择XCUITest Driver。这是实现自动化测试很重要的一步。驱动其实也集成在了Appium Desktop中,不需单独安装,但运行环境需要搭好。
安装所需依赖库,包括:

  1. node (brew install node)
  2. npm (brew install npm)
  3. carthage (brew install carthage)
  4. libimobiledevice(真机测试需要)(brew install libimobiledevice)
  5. ios-deploy(真机测试需要)(brew install ios-deploy)

确定所有依赖是否安装成功,可通过appium-doctor验证

  1. appium-doctor(npm install -g appium-doctor
  2. 在终端运行appium-doctor。

三、开始测试

真机测试
  1. 启动Appium Desktop,单击start。
  2. 点击右上角的搜索icon,启动一个session。
  3. 编辑需要的属性
    可通过图中左边的+按钮添加,也可直接在右边的JSON编辑框中编辑。
  • automationName:使用哪种自动化引擎。appium(默认)还是Selendroid?
  • platformName:使用哪种移动平台。iOS, Android, orFirefoxOS?
  • deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator,真机名称etc...
  • app:应用的绝对路径,注意一定是绝对路径。如果指定了appPackage和appActivity的话,这个属性是可以不设置的。另外这个属性和browserName属性是冲突的。
  • udid:真机设备的UDID。//如果是模拟器此配置可忽略

在真机上测试,需要多指定udid、xcodeOrgId、xcodeSigningId三个属性。udid及设备id,通过idevice_id -l查看;xcodeOrgId即开发者账号id,可在xcode的账号管理中查看;xcodeSigningId赋值"iPhone Developer"即可。若还未在手机上装好了被测应用,需通过appName指定安装包路径。然后点击右下角Start Session。

fushiX ceshi5 真机
Funline 模拟器

  1. 成功启动后,会出现这个编辑界面,可以开始自动化测试的步骤设置啦。
  2. Start Recording:录制,选择录制后,你的操作过程将以脚本的形式记录在recorder中,recorder中还可以选择你想要的脚本语言,以及简单脚本或可执行脚本。
脚本测试
  1. 打开终端,切换到脚本文件所在的文件夹目录
  2. 使用python 命令行运行脚本文件
  3. 运行过程中,成功下,Appium下的状态提示
  4. 附录“XXXX”下的一个流程的脚本
附录:

如果报错info XCUITest xcodebuild exited with code '65' and signal 'null',那说明自动生成provisioning profile没有成功,需要手动配置一下WebDriverAgentRunner。
在应用程序中右键Appium Desktop->Contents->Resources->app->node_modules->appium->node_modules->appium-xcuitest-driver->WebDriverAgent,用终端打开此路径,然后执行
./Scripts/bootstrap.sh

然后打开WebDriverAgent.xcodeproj,进行证书管理配置,确保没有红色叹号
如果出现了下图的错误,那么就修改app ID,直至红色叹号消失。
配置成功后,显示如下
注意:
1、必须配置真机真机唯一证书,不可使用通配自动生成的那种
2、WebDriverAgentLib 和 WebDriverAgentRunner 这两个要修改,其他的不用管

然后在终端运行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=' test
经测试,终端运行这段代码依然会报错,可在Xcode中 Command + U 调试
如果终端出现了下图这些log,说明设置成功

然后再回到步骤3,删除掉xcodeOrgId、xcodeSigningId属性(亲测需要删除,不删除还是按自动生成provisioning profile的方式去启动了,不能成功),再次点击start session即可。

参考链接

GitHub -- WebDriverAgent
appium/appium-desktop

Appium自动化—浅谈iOS自动化测试环境搭建
Appium Desktop之iOS真机测试环境搭建
iOS 真机安装 WebDriverAgent
Appium-ios真机
Appium --XCUITest Driver在ios真机上配置
iOS 真机安装 WebDriverAgent
appium-desktop-1.0.0.dmg appium 1.6.4 (真机)问题和解决方法
Appium 启动 iOS 真机 app 后无限重启
Xcode9.0+appium1.6.5真机环境运行app及遇坑知多少

你可能感兴趣的:(Appium + Mac + iOS 自动化测试)