npm 安装appium
详情和linux环境部署一致, 这里不细讲
npm 安装appium-doctor
详情和linux环境部署一致, 这里不细讲
安装chromedriver
selenium用到
selenium之 chromedriver与chrome版本映射表(更新至v2.29)
brew 安装carthage
brew install carthage
brew 安装libimobiledevice
brew install libimobiledevice (真机测试需要)
brew 安装ios-deploy
brew install ios-deploy (真机测试需要)
安装ios-webkit-debug-proxy
brew reinstall -s ios-webkit-debug-proxy
元素定位方式
在ios 的UI自动化方面,苹果对于不同的系统版本采用了不同的方式。在ios10版本以下是使用uiautomation的,对于iOS10.X的版本来说,苹果公司在测试框架上有了很大的改变。苹果公司放弃了原来的uiautomator那一套东西,改用xcuitest来进行自动化测试。这个重大的改变,导致了基于uiautomator体系的appium测试框架做出了调整。为了适应xcuitest测试框架,appium引进了facebook开发WebDriverAgent(简称wda)
通过XCUITest定位元素
xcode打开/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent/WebDriverAgent.xcodeproj,配置证书,安装WebDriverAgentRunner-Runner.app
然后代码配置DesiredCapabilities参数初始化启动app即可。
例如:
通过macaca的App inspector来定位元素
macaca是阿里移动端自动测试框架,同时支持android, ios。
Macaca针对安卓平台的驱动集合
- macaca-android 安卓驱动
- macaca-adb 封装了安卓的adb命令,来实现一些adb的操作,比如安装、卸载、启动app、获取设备列表这些操作
- android-unicode 经过封装后的输入法,解决中文输入的问题
- uiautomator-client 将来自server的操作指令转换为UIAutomator可以识别的指令,驱动uiautomator完成对应的操作
- android-performance 用于自动化测试安卓性能相关的支持
Macaca针对iOS平台的驱动集合
- macaca-ios iOS驱动
- xctest-client 同安卓的uiautomator-client异曲同工,对XCUITest的封装,将来自server的操作指令转换为XCUITest可以识别的指令,驱动XCUITest完成对应的操作
- ios-simulator 用于对ios模拟器的支持,可以通过模拟器运行用例
- remote-debug 用于远程调试
(1)android SDK安装及配置
下载sdk
推荐下载地址1:https://www.androiddevtools.cn
推荐下载地址2:http://tools.android-studio.org/index.php/sdk
导航栏中点击“Android SDK工具”,选择“SDK Tools”
选择Mac OS X对应版本
设置代理服务器
终端命令行进入Tools目录,然后输入 ./android sdk ,调出SDK Manager的图形界面
Mac顶部菜单点击Android SDK Manager -> Preferences
HTTP Proxy Server填写:mirrors.neusoft.edu.cn
HTTP Proxy Port填写:80
勾选Force https:// ,然后点击“Close”
Mac顶部菜单点击Tools -> Manage Add-on Site,选择右侧“User Defined Sites”
点击“New”,手动添加下面10个网址
http://mirrors.neusoft.edu.cn/android/repository/addon-6.xml
http://mirrors.neusoft.edu.cn/android/repository/addon.xml
http://mirrors.neusoft.edu.cn/android/repository/extras/intel/addon.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-tv/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-wear/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/android/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/google_apis/sys-img.xml
http://mirrors.neusoft.edu.cn/android/repository/sys-img/x86/addon-x86.xml
http://mirrors.neusoft.edu.cn/android/repository/addons_list-2.xml
http://mirrors.neusoft.edu.cn/android/repository/repository-10.xml
添加完成后,如下图,点击“Close”
开始下载
选择Extras,勾选☑️,全部选上,点击右下角“Install 23 Packages”
进入如下界面,先选择左侧文件,再点击右侧“Accept License”
左侧三个需要分别勾选同意协议,同意后左侧会出现绿色“√”,最后点击“Install”,开始下载
最近以上用代理方式安装android sdk manager的方式不好用了,可以下载Android studio来安装,具体参考博文中的文章:
https://blog.youkuaiyun.com/qq_23599965/article/details/80910202
如果还是以打开android sdk图形化界面处理,那就去掉代理,改成添加以下内容:
首先记得修改hosts(203.208.41.68 dl.google.com), ip就拼一下dl.google.com看下哪个ip耗时最少,就用哪个
https://dl.google.com/android/repository/addon-6.xml
https://dl.google.com/android/repository/addon.xml
https://dl.google.com/android/repository/extras/intel/addon.xml
https://dl.google.com/android/repository/sys-img/android-tv/sys-img.xml
https://dl.google.com/android/repository/sys-img/android-wear/sys-img.xml
https://dl.google.com/android/repository/sys-img/android/sys-img.xml
https://dl.google.com/android/repository/sys-img/google_apis/sys-img.xml
https://dl.google.com/android/repository/sys-img/x86/addon-x86.xml
https://dl.google.com/android/repository/addons_list-2.xml
https://dl.google.com/android/repository/repository-10.xml
(2)安装macaca-li核心框架
npm install macaca-cli -g
(3)安装macaca-android或ios驱动
npm install macaca-ios -g (用于iOS平台自动化)
npm install macaca-android -g (用于Android平台自动化)
(安卓的要注意下android sdk中build tools的版本和gradle的版本,不匹配就会安装失败)
目前macaca-android 这个包就没有安装成功,还需要后续处理下。
(4)安装chrome驱动
npm i macaca-chrome -g
(5)安装electron 驱动
npm i macaca-electron -g
(6)检查macaca环境
macaca doctor
只要打印出的结果都绿色的日志信息,就表示环境是好的
(7)安装app-inspector元素查找器
npm install app-inspector -g
然后xcode打开
/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/XCTestWD/XCTestWD.xcodeproj,修改XCTestWD和XCTestWDUITests,修改bundle id,签名然后编译通过即可。(参考webdriveragent的更改方法,操作一致)
(8)启动app-inspector的命令
app-inspector -u YOUR-DEVICE-ID(设备id)
启动成功后,在浏览器打开http://192.168.88.233:5678,即可定位元素
这时可以在手机设备看到自动安装了XCTestWDUITest-Runner.app
如果app-inspector启动,可能因为XCTestWD配置的问题,导致一直卡住,可以配置这个文件
进入目录/usr/local/lib/node_modules/app-inspector/node_modules/xctestwd/lib
打开其中的logger.js
文件,添加debuMode: true
'use strict';
var logger = require('xlogger');
module.exports = logger.Logger({
closeFile: true,
debugMode: true
});