前提条件
iOS系统12.2
macOS设备系统10.14.5 (18F132)
Xcode版本Version 10.2.1 (10E1001)
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中,不需单独安装,但运行环境需要搭好。
安装所需依赖库,包括:
node (brew install node)
npm (brew install npm)
carthage (brew install carthage)
libimobiledevice(真机测试需要)(brew install libimobiledevice)
ios-deploy(真机测试需要)(brew install ios-deploy)
确定所有依赖是否安装成功,可通过appium-doctor验证
appium-doctor(npm install -g appium-doctor
在终端运行appium-doctor。
三、开始测试
真机测试
启动Appium Desktop,单击start。
点击右上角的搜索icon,启动一个session。
编辑需要的属性
可通过图中左边的+按钮添加,也可直接在右边的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 模拟器
成功启动后,会出现这个编辑界面,可以开始自动化测试的步骤设置啦。
Start Recording:录制,选择录制后,你的操作过程将以脚本的形式记录在recorder中,recorder中还可以选择你想要的脚本语言,以及简单脚本或可执行脚本。
脚本测试
打开终端,切换到脚本文件所在的文件夹目录
使用python 命令行运行脚本文件
运行过程中,成功下,Appium下的状态提示
附录“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=<udid>' test
经测试,终端运行这段代码依然会报错,可在Xcode中 Command + U 调试
如果终端出现了下图这些log,说明设置成功
然后再回到步骤3,删除掉xcodeOrgId、xcodeSigningId属性(亲测需要删除,不删除还是按自动生成provisioning profile的方式去启动了,不能成功),再次点击start session即可。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理