1、下载或者更新Homebrew:homebrew官网 macOS 不可或缺的套件管理器
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #下载
$ brew update #更新
$ brew -v
Homebrew 1.1.5
Homebrew/homebrew-core (git revision e151b; last commit 2016-12-26)
2、使用homebrew来安装node.js : Node.js教程 node采用C++编写,是一个JavaScript的运行环境,因为JS是脚本语言需要一个解析器才能运行,对于写在HTML页面的JS,浏览器本身就是解析器,对于需要单独运行的JS,Node.js就是解析器。
$ brew install node
$ node -v
v7.3.0
3、安装npm: NPM 使用介绍 是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。
$ brew install npm
4、使用npm来安装appium,2017/01/03目前最新的版本是 1.6.3
,当然也可以在 Macos下bitbucket下载appium客户端,但是坑人的是最新版本是 1.5.3
支持的还只是 iOS10
以下的 UIAutomation
框架基础上测试,而 iOS10
以后苹果使用的却是基于 XCUITest
,所以只能采用npm安装咯。但是因为国内墙太高而使用npm却是从国外服务器下载,有时候使用npm需要非常长的时间,更多时候是失败,推荐使用cnpm来安装:淘宝 NPM 镜像 10分钟同步npmjs.org镜像,使用方式和npm完全一致
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ npm view appium versions #查看appium所有的版本号
5、使用cnpm安装appium和appium-doctor:
$ cnpm install -g appium --no-cache
$ cnpm install -g appium
$ cnpm install -g appium-doctor
6、检查appium环境检测:
$ appium-doctor
info AppiumDoctor Appium Doctor v.1.2.5
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode.app/Contents/Developer
WARN AppiumDoctor ✖ Xcode Command Line Tools are NOT installed!
info AppiumDoctor ✔ DevToolsSecurity is enabled.
info AppiumDoctor ✔ The Authorization DB is set up properly.
info AppiumDoctor ✔ The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor ✔ Carthage was found at: /usr/local/bin/carthage
info AppiumDoctor ✔ HOME is set to: /Users/denglibing
WARN AppiumDoctor ✖ ANDROID_HOME is NOT set!
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
WARN AppiumDoctor ✖ adb could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor ✖ android could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor ✖ emulator could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor ✖ Bin directory for $JAVA_HOME is not set
info AppiumDoctor ### Diagnostic completed, 6 fixes needed. ###
info AppiumDoctor
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor - Manually configure ANDROID_HOME.
WARN AppiumDoctor - Manually configure ANDROID_HOME and run appium-doctor again.
WARN AppiumDoctor - Add '$JAVA_HOME/bin' to your PATH environment
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye, run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor
常见问题解决:
✖ Xcode Command Line Tools are NOT installed!
$ xcode-select --install #按照提示安装即可
✖ Carthage was NOT found!
$ brew install carthage #carthage:类似cocoapods管理第三方代码,自动将工程编译为动态库,所以仅支持iOS8以上
WARN AppiumDoctor ✖ ANDROID_HOME is NOT set!
但是建议安装安装编译器,可以解决其他Android环境的其他问题 AndroidStudio(https://developer.android.com/studio/index.html?hl=zh-cn)
设置 ANDROID_HOME 路径:
http://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x
设置 JAVA_HOME 路径:
http://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-captain-10-11-yosemite-10-10
JAVA_HOME问题:
当前最新JDK版本下载地址 Java SE Development Kit 8u111 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
.bash_profile文件:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
export ANDROID_HOME=/Users/denglibing/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:${JAVA_HOME}/bin
7、安装appium客户端,上面的操作只是安装了server端,接下来需要安装测试代码运行所依赖的客户端,我们以python为例:
git clone https://github.com/appium/python-client
cd python-client
#谢谢 @GentHuang 提醒
sudo python setup.py install
8、对于 iOS10
以上的测试,需要下载安装 appium-xcuitest-driver 驱动:Appium iOS driver, backed by Apple XCUITest
, 当然也可以在 /usr/local/lib/node_modules/appium/node_modules/.2.5.1@appium-xcuitest-driver/WebDriverAgent/
找到该项目,执行 carthage update
, 选择 WebDriverAgentRunner
这个target编译即可。
其他相关的安装:
$ ./Scripts/bootstrap.sh #感谢网友 @托托李_742f 的提醒,添加该命令解决很多人编译WebDriverAgent不通过的问题。
$ brew install libimobiledevice --HEAD # install from HEAD to get important updates
$ brew install ideviceinstaller # 只是对iOS9有用
$ npm install -g ios-deploy # iOS10 以后的版本安装ios-deploy
$ sudo gem install xcpretty # 真机需要安装 xcpretty
不太熟悉WebDriverAgent的可以看看这个博客:
https://testerhome.com/topics/7220
9、下载测试代码并且测试,官网上的测试代码坑很多,这个问题我困扰我好久。一开始还以为是自己那个环境出问题还是流程不对,结果真的只是官网测试代码本身问题,当然可以自己编写代码测试咯,也可以下载我的一个简单的 erduoniba/appium_ios_sample_code
先启动 appium
服务器:
$ appium &
再执行模拟器的python客户端的代码测试
$ cd sample-code/apps/HHH
#在sample-code/apps/HHH/build/Release-iphonesimulator/得到HHH.app包
$ xcodebuild -sdk iphonesimulator
Build settings from command line:
SDKROOT = iphonesimulator10.2
=== BUILD TARGET HHH OF PROJECT HHH WITH THE DEFAULT CONFIGURATION (Release) ===
...
...
...
Signing Identity: "-"
/usr/bin/codesign --force --sign - --timestamp=none /Users/denglibing/Desktop/sample-code/apps/HHH/build/Release-iphonesimulator/HHH.app
** BUILD SUCCEEDED **
$ cd sample-code/examples/python
$ python ios_simple_simulator.py # 执行测试脚本时,会遇到 HTMLTestRunner 错误的问题,这个是因为第二篇也对这个脚本进行了测试,请移步到 这里http://www.jianshu.com/p/a673b93d1f98 可以快速解决并输出测试结果
test_scroll (__main__.SimpleIOSTests) ... ok
----------------------------------------------------------------------
Ran 1 test in 30.421s
OK
对于真机,可能要麻烦些,安装 appium-xcuitest-driver 驱动后,生成在真机上运行的包:
参考资料可以看官网的说明 部署ios-app-到手机上
# 在 apps/HHH/build/Release-iphoneos/HHH.app 得到 release 包
$ xcodebuild -sdk iphoneos -target HHH -configuration Release CODE_SIGN_IDENTITY="iPhone Distribution: Shenzhen XXXX Technology Co., Ltd. (B9FH944VTE)"
PROVISIONING_PROFILE="08f04032-ca2e-4bb5-b1ba-c32778115f2e"
关于怎么设置 CODE_SIGN_IDENTITY
和 PROVISIONING_PROFILE
如何查看 ,可以选择下图所示的 Development Team
一行, control+c
然后 复制出去即可
接下来连上真机 执行测试用例代码:
$ cd sample-code/examples/python
$ python ios_simple_device.py
test_scroll (__main__.SimpleIOSTests) ... ok
----------------------------------------------------------------------
Ran 1 test in 30.421s
OK
10:一些很有帮助的资料
很好的论坛 https://testerhome.com
appium源码地址: https://github.com/appium/appium
appium官网地址:http://appium.io/
appium中文说明文档:http://appium.io/slate/cn/master/?ruby#about-appium
11、心得:
整体的流程其实不多,但是在macOS10.12搭建appium的环境及测试整个过程着实烦躁,有时候一个小问题就卡1-2天也不好说,而且官网上的文档和测试代码已经部分误导我走了非常多的歪路。
比如
11.1、开始使用 appium1.5.3的mac客户端,虽然在macOS10.12上也有些问题,确实毕竟GUI用起来非常方便,可惜是基于 UIAutomation
框架来的,然后在iOS10中已经使用了新的框架 XCUITest
,只能废弃;
11.2、关于appium如果搭建啊,进行测试啊相关的文章其实不少,有中文的也有英文的,可能是作者在那个时候测试兼容过,但是iOS10上真的很多是误导了,而且搭建的流程我不建议阅读 appium中文说明文档
,毕竟年代太久远了。倒是可以在 appium源码地址
上多多发现类似的问题或者多多提问,作者及团队人员很热血 😊
11.3、还是环境问题,动不动就会失败,这个时候只能有耐心的多多看看log日志了,log少什么就满足他们,边边角角的一些依赖资源也可以了解了解😄,毕竟程序员需要耐得住寂寞😁,上面的流程基于当前最新的开发环境 Xcode8.2
、iOS10.2
网友评论
Traceback (most recent call last):
File "ios_simple_simulator.py", line 12, in <module>
import HTMLTestRunner
ImportError: No module named HTMLTestRunner
这是啥原因?
HTMLTestRunner 这个是输出测试结果用的,它会把你的测试结果生成Html更好的展示结果。
你可以看一下这个:
http://www.jianshu.com/p/a673b93d1f98
1、先在这里下载代码 https://github.com/facebook/WebDriverAgent
2、下载之后进入 WebDriverAgent 文件夹下,
3、终端 cd WebDriverAgent所在的文件夹,在执行 carthage update (如果没有安装cartage先安装,或者更新最新的cartage版本)
4、好了之后,使用Xcode打开项目,选择 WebDriverAgentRunner 这个target编译即可
看个: http://7xqhx8.com1.z0.glb.clouddn.com/appium8.png
http://7xqhx8.com1.z0.glb.clouddn.com/appium8.png
IOS
Unfortunately, at the moment Appium does not support the Selenium network connection API for iOS.
ANDROID
Choose the setting you would like to use, and then send the correct bitmask from the table above.
WINDOWS
Unfortunately, at the moment Appium does not support the Selenium network connection API for Windows.
1:初步我仅需要研究ios真机上的自动化测试。运行appium-doctor时ANDROID_HOME、JAVA_HOME及adb项均不配置的情况下是否可行。
2:第八步关于appium-xcuitest-driver的安装没有搞明白。。。
3:虚拟机调试的时候,启动appium 后显示[Appium] Appium REST http interface listener started on 0.0.0.0:4723就没有后续了。。。
选择 WebDriverAgentRunner 这个target编译即可---这句话没明白怎么编译
可行
2: 第八步关于appium-xcuitest-driver的安装没有搞明白。。。
需要下载 WebDriverAgent 这个项目,执行 carthage update , 选择 WebDriverAgentRunner 这个target编译即可。之后需要安装一些工具:
$ brew install libimobiledevice --HEAD # install from HEAD to get important updates
$ brew install ideviceinstaller # 只是对iOS9有用
$ npm install -g ios-deploy # iOS10 以后的版本安装ios-deploy
$ sudo gem install xcpretty # 真机需要安装 xcpretty
3: 虚拟机调试的时候,启动appium 后显示[Appium] Appium REST http interface listener started on 0.0.0.0:4723就没有后续了。。。
说明你的appium服务端已经搭建好了,接下来你需要安装一个appium的客服端,可以看第九步说明。
设置 ANDROID_HOME 路径:
http://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x
设置 JAVA_HOME 路径:
http://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-captain-10-11-yosemite-10-10
JAVA_HOME问题:
当前最新JDK版本下载地址 Java SE Development Kit 8u111 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
.bash_profile文件:”
我也安装了 eclipse 和 Android studio这两个工具,终端执行:appium-doctor 还是提示有哪些警告,设置bash_profile后 ,终端命令却出现“commnd not found” 。就算忽略这些警告,启动appium客户端,还是无法启动模拟器和真机。求楼主指导,有没有QQ号, 想跟你深入探讨一下。以上,感谢感谢~~
我们可以讨论一下 😊
Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `xcode-select --install` to install the standalone command line developer tools.
See `man xcode-select` for more details.
Error: Failure while executing: git config --local --replace-all homebrew.analyticsmessage true
我以前下载的xcode7的版本,现在安装的事xcode8,安装brew update更新的时候报的错误