学习自动化测试工具Appium—iOS环境搭建

发表于:2018-12-21 21:58

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

 作者:1vxy    来源:简书

  因为工作需要进行手机App的iOS端自动化测试,所以特来学习工具Appium的使用。
  Mac下的环境搭建
  Xcode
  本文的系统版本为Mac 10.13.6,使用Xcode 10.0,在 App Store 里获取即可:
  Command Line Tools
  Command Line Tools是在Xcode中的一款工具,可以在命令行中运行C程序,Xcode 默认是不会安装它的。
  在Terminal中输入以下指令安装:
 xcode-select --install
  brew
  brew是Mac下的一个软件包管理工具,非常方便,免去了自己手动编译安装的不便。
  在Terminal中输入以下指令安装:
 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  Node.js & npm
  Node.js是一个Javascript运行环境(runtime environment)。
  而npm(node package manager)是随同Node.js一起安装的包管理工具,能解决Node.js代码部署上的很多问题。
  在Terminal中输入以下指令一并安装:
 brew install node
  Carthege
  Carthage 是一款使用于 Swift 语言编写,只支持动态框架,只支持 iOS8+的Cocoa依赖管理工具。
  在Terminal中输入以下指令安装:
 brew install Carthage
  其他依赖库安装
  在Terminal中输入以下指令安装:
   brew install libimobiledevice --HEAD
  npm install -g ios-deploy  # 如果是iOS10以上的系统才需要安装
  如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
  Python
  Python 3.7 下载地址:
  https://www.python.org/downloads/mac-osx
  Pycharm
  Pycharm是一款Python IDE,编写脚本所用。
  PyCham 下载地址:
  http://www.jetbrains.com/pycharm/download/#section=windows
  具体激活方法可自行百度
  Appium
  Appium是一个自动化测试开源工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。Appium是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。
  官网:http://appium.io
  Github:http://github.com/appium/appium
  Appium-Desktop
  下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.7.1
  Appium Python-Client
  Appium客户端依赖库支持Python、Ruby、Java、Javascript、PHP、C#等,本文使用Python,就安装Appium-Python-Client。
  在Terminal中输入以下指令安装:
 pip install Appium-Python-Client
  Appium-Doctor
  Appium-Doctor用于检测Appium运行环境是否搭建完成。
  在Terminal中输入以下指令安装:
 npm install appium-doctor -g
  安装后执行appium-doctor --ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果有哪一项是打叉的,则对应进行安装就可以了。
  WebDriverAgent
  Github:https://github.com/facebook/WebDriverAgent
  iOS 10+使用的是XCUITest,Appium使用的模块是appium-xcuitest-driver,其中引用了Facebook提供的WDA方案来驱动iOS的测试。装Appium Desktop的时候,原生的WDA无法使用,需要从Facebook那里clone一份。
  在Terminal中输入以下指令:
 git clone https://github.com/facebook/WebDriverAgent.git
  clone完后进入该目录下执行指令
   cd WebDriveAgent
  ./Scripts/bootstrap.sh
  
   下载编译完成后,直接用Xcode打开WebDriverAgent.xcodepro文件。
  配置WebDriverAgentLib和WebDriverAgentRunner的证书:
  WebDriverAgentLib
  WebDriverAgentRunner
  成功生成Signing Certificate之后,将Scheme改为WebDriverAgentRunner,Destination改为你的iPhone:
  连接你的iPhone,按下Command + U,进行Test,再按下Command + Shift + C 调出 Activate Console查看调试信息:
  若显示上述信息则运行成功
  因为国内iPhone不能直接访问返回的地址,所以需要进行端口转接,在Terminal中运行以下指令:
  iproxy 8100 8100
  在浏览器输入 localhost:8100/status ,若成功访问且返回JSON格式数据则表示配置成功:
  接下来用配置好的WebDriverAgent替换Appium自带的WDA,在Terminal中运行以下指令:
   cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
  mv WebDriverAgent WebDriverAgent2  # 将Appium自带的WDA改名
  ln -s ~/WebDriverAgent WebDriverAgent  # 用Facebook的WDA替换进去
  下载测试用程序:
  git clone https://github.com/appium-boneyard/sample-code.git
  打开Appium-Desktop,点击 Start Server,Host 和 Port 使用默认设置即可,点击右上角放大镜按钮(Start Inspector Session),配置如下属性:
  
  {
  "platformName": "iOS",  # 测试平台名称
  "platformVersion": "12.0", # iPhone 版本
  "deviceName": "iPhone", # 设备名称
  "udid": "90a007e58e6a68519d3793a4371fb804c3c8df9c", # UDID
  "antomationName": "XCUITest", # 自动化工具名称
  "app": "/Users/administrator/sample-code/sample-code/apps/TestApp/build/Release-iphonesimulator/TestApp-iphonesimulator.app",  # app路径
  "noReset": true # 若app已存在,则不重新安装
  }
  点下 Start Session,等待一段时间后手机会安装指定的app,Mac上会弹出Inspector显示屏幕以及定位的原素:
  ok,到这一步环境基本搭建完成了,下一章将介绍脚本如何运行
  遇到的问题
  许多问题都可以通过重启Mac或者iPhone解决。
 
     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号