Appium + Mac + iOS 自动化测试

发表于:2019-10-09 11:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:深海谢先生    来源:简书

  前提条件
  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),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号