Appium Appium 自动化—基于 java 的 iOS 环境搭建

adfghzhang · June 21, 2016 · Last by 陈远鸣 replied at October 10, 2019 · Last modified by admin 恒温 · 6479 hits

本文是在Mac OS X环境下搭建基于Appium的iOS自动化测试环境,脚本语言为java,如有疑问可以联系我。
安装iOS自动化测试框架的环境为Mac OS X 10.10。本文安装Appium以DMG格式为例,命令行安装略显麻烦,喜欢折腾的同学可以去官网查找安装方法。

一、注意事项

1.模拟器或真机均需要将手机设置—开发者中的 Enable UI Automation启用。
2.要使用模拟器安装应用运行,测试包注意target,configruation选择debug。
模拟器打包可参考如下命令:

xcodebuild -workspace yourworkspace -scheme yourscheme -sdk iphonesimulator9.3 -configuration Debug
xcodebuild -project yourprojecte -target target -sdk iphonesimulator9.3 -configuration Debug

3.真机设备需要developer证书并且将测试机的udid加入到pp(Provisioning Profile)文件,configruation为debug。
4.appium设置设备uuid和程序的路径(未安装APP或需要重新安装时),已安装APP设置程序的BundleID即可。
5.出现问题多利用搜索引擎,多逛论坛。
6.本文仅做参考,有错误的地方欢迎指正。

二、所需软件

◾MacOSX上搭建Appium-iOS环境所需的软件
◾链接:http://pan.baidu.com/s/1ciI6tS 密码:bkrp
◾Mac OS X >= 10.7
◾XCode >= 4.6.3
◾Xcode command line tools
◾Homebrew
◾ideviceinstaller
◾JDK
◾Appium
◾Eclipse

三、安装步骤

◾安装JDK设置JAVA环境变量
推荐使用JDK1.7+版本,并配置系统环境变量(以JDK1.7.71配置为例,也可参考其他配置方法)
打开jdk的dmg文件,双击安装,安装完成后打开终端,查看当前使用的java

/usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

终端输入vi ~/.bash_profile(Mac配置环境变量有多种方式请根据需要自行选择)进入编辑模式

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

保存并退出,然后生效环境变量

source ~/.bash_profile

查看当前设置的JDK信息

java -version 
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

◾安装Xcode
打开xcode的dmg文件,复制xcode.app到Applications文件夹(推荐),然后等待其安装完成。

◾安装Xcode Command Line Tools
Xcode安装完成后启动终端,在终端输入xcode-select --install,弹出如下界面:

点击安装等待其完成即可。

◾安装Homebrew
终端输入命令:

usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

出现如图提示敲回车键即可继续,接着根据提示输入登录密码即可。

安装完成后执行检查命令安装是否成功

brew -v
Homebrew 0.9.9 (git revision cc10; last commit 2016-06-14)
Homebrew/homebrew-core (git revision 405f; last commit 2016-06-15)

注意:如果还未运行过xcode,可能会出现如下提示,先启动一下xcode再来安装homebrew。

◾安装Node
如不需要命令行启动Appium可跳过此步骤。
终端执行

brew install node
node -v
v6.2.1

◾安装ideviceinstaller
终端执行

brew install ideviceinstaller
ideviceinstller -h
Usage: ideviceinstaller OPTIONS
Manage apps on iOS devices.

-u, --udid UDID Target specific device by its 40-digit device UDID.
-l, --list-apps List apps, possible options:
-o list_user - list user apps only (this is the default)
-o list_system - list system apps only
-o list_all - list all types of apps
-o xml - print full output as xml plist
-i, --install ARCHIVE Install app from package file specified by ARCHIVE.
ARCHIVE can also be a .ipcc file for carrier bundles.
-U, --uninstall APPID Uninstall app specified by APPID.
-g, --upgrade ARCHIVE Upgrade app from package file specified by ARCHIVE.
-L, --list-archives List archived applications, possible options:
-o xml - print full output as xml plist
-a, --archive APPID Archive app specified by APPID, possible options:
-o uninstall - uninstall the package after making an archive
-o app_only - archive application data only
-o docs_only - archive documents (user data) only
-o copy=PATH - copy the app archive to directory PATH when done
-o remove - only valid when copy=PATH is used: remove after copy
-r, --restore APPID Restore archived app specified by APPID
-R, --remove-archive APPID Remove app archive specified by APPID
-o, --options Pass additional options to the specified command.
-h, --help prints usage information
-d, --debug enable communication debugging

◾安装Appium
打开Appium的dmg包,复制Appium.app到Applications文件夹中,即完成安装。

◾Appium设置
设置Appium环境变量,将appium.js和appium-doctor.js文件所在路径配置到PATH

export PATH=/Applications/Appium.app/Contents/Resources/node_modules/appium/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

运行appium命令检查环境变量是否生效

appium.js
(node:393) fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module, please update it to a more recent version.
info: Welcome to Appium v1.4.13 (REV c75d8adcb66a75818a542fe1891a34260c21f76a)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
appium-doctor.js
Running iOS Checks
Xcode is installed at /Applications/Xcode.app/Contents/Developer
Xcode Command Line Tools are installed.
DevToolsSecurity is enabled.
The Authorization DB is set up properly.
Node binary found at /usr/local/bin/node
iOS Checks were successful.

Running Android Checks
ANDROID_HOME is not set
Appium-Doctor detected problems. Please fix and rerun Appium-Doctor.

启动Appium并打开iOS的设置页面,如使用模拟器请不要勾选UDID。注意App Path路径的正确性以及设备的系统版本号的设置。

◾启动Appium
设置完成后,点击Launch按钮,以启动Appium Server

如启动时遇到该情况请重置appium设置。

◾iOS模拟器
打开Xcode然后打开开发者工具,启动iOS Simulator。然后你可以指定一个你喜欢的模拟器启动。

◾启动Inspector
启动Appium Server后,连接好真机或模拟器,并确保Appium的参数设置正确(与设备保持一致),点击Inspector按钮启动Inspector。此时Appium Server会自动安装app并启动被测App并通过instruments抓取页面元素展示到Inspector页面,就可以开始获得页面元素信息开始自动化脚本的编写工作了。

◾安装Eclipse
下载Eclipse for Mac解压后执行运行。
安装必须的插件,然后导入demo工程TestAppiumDemo.zip,然后运行测试。

ENJOY IT!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 41 条回复 时间 点赞

已经写完了?

#1楼 @chenhengjie123 不能实时预览,点了个保存,现在写完了。

不错

全部截图 一行代码都不给. 这么残忍

#4楼 @seveniruby Demo代码在百度云盘链接里面,代码写得不好,见笑了

和我之前写的环境准备大致一样啊

#6楼 @oscarxie 👍跟着你的教程入门的appium ios

#6楼 @oscarxie 已拜读,搭建环境这活儿思路都一样,所以跟您写的看起来比较相似。以前不喜欢写,后面有时间争取把现在做的东西share出来与大家一起探讨,向各位前辈学习。


启动Inspector,就报图片错误,请大神给点建议吧

adfghzhang #10 · June 24, 2016 作者

#9楼 @liangzhaochen 这个图没实际意义啊,主要看log,注意事项请参考正文

—— 来自TesterHome官方 安卓客户端

我看用appium-doctor检测的时候,提示ANDROID_HOME is not set,这个我也出现过,需要忽略么?

#11楼 @momoyue 你不测android的话 那就不用设置。

13Floor has been deleted
adfghzhang #15 · July 01, 2016 作者

#14楼 @liangzhaochen 看日志好像说是你的app编译的版本不适合你的设备,估计是deployment target选择的问题,可以看一下是不是这个原因导致的。

亲爱的楼主,日志总是一样的,帮我看看我这个是正确的吗?

#5楼 @adfghzhang demo代码能下载吗

不错

楼主,我需要测试安卓,但是报ANDROID_HOME is NOT set! 和 JAVA_HOME is NOT set! 事实上我用命令行工具,都是可以检测到ANDROID_HOME和AVA_HOME是配置了的,自己确实经过配置。请问下这怎么破?

adfghzhang #20 · July 27, 2016 作者

#17楼 @yingwei 能下载啊,网页不能下载请尝试用百度云客户端吧。

adfghzhang #21 · July 27, 2016 作者

#19楼 @laughing_xk 环境变量设置好了应该就OK了。你生效了你的环境变量配置么?

你好,楼主,我按照你的方法安装,在运行appium.js时出现如下的错误,弄了一天也没弄明白,你能帮我看看是什么原因吗?

#22楼 @jenny_li node、环境变量这些都配置好了么?安装的appium是什么版本写明白一点。

#23楼 @adfghzhang appium 安装的是1.5.3版本,环境变量设置了,如下图

#23楼 @adfghzhang 我现在用appium图形界面各个功能都是正常使用的,但是我工作需要用命令行调用appium,现在我用命令行调用appium时会报错的,命令行调用用的命令是 node /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/appium.js

#25楼 @jenny_li 报错跟22楼一样的情况么?

你好,在测试的时候遇到一些问题,希望能帮帮我!

我安装完成appium之后appium.js和appium-doctor.js文件位置跟文中的位置不一样

#27楼 @wu_1814114667 appium要1.6.0以后才支持xcode8

#28楼 @sunyy appium版本不一样,所以路径有不同这个你找找对应的吧

@adfghzhang
这个地方的app路径,是写模拟器中的app路径吗?/Users/*/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.0.sdk/Applications。如果是手机ipa文件应该怎么办呢?

#31楼 @helenakeep 都是app的包啊,不同在于一个是模拟器一个是真机。没明白你具体的问题

#32楼 @adfghzhang 用的是模拟器 appium ios settings app path这里写*.ipa,运行模拟器的时候会把ipa安装到模拟器上吗?

#33楼 @helenakeep 模拟器应该是*.app格式的包

#34楼 @adfghzhang 只有.ipa格式的怎么办。楼主用的是xcode8吗?

#35楼 @helenakeep 写这个帖子的时候还是xcode7.3.1 最近比较长时间没弄这个了。开发者证书签名的ipa包可以用到真机上 一样可以测试的

#34楼 @adfghzhang 现在appium的版本 和xcode8不太好搭配 。早知道不升级xcode了,嘤嘤

我的环境已经按照文档说明搭建好了,用eclipse打开环境,但是之前我对java了解不多,请问如何跑测试的脚本啊?感觉还是不会用啊?感觉找不到设备?不知道怎么跑?是我安装的eclipse不对么,少东西了??

@jenny_li 我用命令运行appium.js的时候也是和你的一样报错,permission denied。Mac OS X 10.12,appium的版本是1.5.3.给appium配置的环境变量和你的一模一样。请问你的问题解决了吗?谢谢!

@jenny_li 我的已经弄好了。原因是nodeJS的版本问题,我把7版本卸了,新安装了6.9.1版本的node。希望对你有帮助。

hello IOS 模拟器多开集成测试和那些坑 中提及了此贴 22 Aug 13:30


我的界面怎么和你不一样啊?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up