基于Appium+JAVA环境测试iOS

来源:互联网 发布:悲伤的网络歌曲 编辑:程序博客网 时间:2024/05/29 15:24

至于原理什么的,这里不再阐述,网上有很多讲述原理的例子相信你们已有所了解,你想用JAVA环境来测试iOS,那么我想你一定是有些想法的,来吧We Go

MacOSX上搭建Appium-iOS环境所需的软件

◾Mac OS X >= 10.7

◾XCode >= 4.6.3

◾Xcode command line tools

◾Homebrew

◾ideviceinstaller

◾JDK

◾Appium

◾JAVA编译工具(Eclipse,MyEclipse,Android Studio…只要能编译JAVA文件就可以)

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

/usr/libexec/java_home/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

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

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

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

source ~/.bash_profile

查看当前设置的JDK信息

java -versionjava version "1.8.0_101"Java(TM) SE Runtime Environment (build 1.8.0_101-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

◾安装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 1.1.13
Homebrew/homebrew-core (git revision 4075; last commit 2017-04-18)

如果还未运行过xcode,可能会出现如下提示,先启动一下xcode再来安装homebrew。(iOS 开发者忽略)

◾安装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:JAVAHOME/bin:JAVA_HOME/jre/bin:$PATH
运行appium命令或者点击Doctor也就是下图放大镜旁边的图标检查环境变量是否生效

appium.js

info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor ✔ Xcode is installed at: /Applications/Xcode 2.app/Contents/Developer
info AppiumDoctor ✔ Xcode Command Line Tools are 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 ✔ HOME is set to: /Users/chenwei
WARN AppiumDoctor ✖ ANDROID_HOME is set to ‘/Users/guowenxie/Documents/adt-bundle-mac-x86_64-20140702/sdk’ but this is NOT a valid path!
info AppiumDoctor ✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
WARN AppiumDoctor ✖ adb could NOT be found at ‘/Users/guowenxie/Documents/adt-bundle-mac-x86_64-20140702/sdk/platform-tools/adb’!
WARN AppiumDoctor ✖ android could NOT be found at ‘/Users/guowenxie/Documents/adt-bundle-mac-x86_64-20140702/sdk/tools/android’!
WARN AppiumDoctor ✖ emulator could NOT be found at ‘/Users/guowenxie/Documents/adt-bundle-mac-x86_64-20140702/sdk/tools/emulator’!
info AppiumDoctor ### Diagnostic completed, 4 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 install adb and add it to PATH.
WARN AppiumDoctor - Manually install android and add it to PATH.
WARN AppiumDoctor - Manually install emulator and add it to PATH.
info AppiumDoctor ###
info AppiumDoctor
info AppiumDoctor Bye, run appium-doctor again when the all the manual fixes have been applied!
info AppiumDoctor
这里不需 测试Android 的话只要保证基本的iOS环境通过就可以了
启动Appium并打开iOS的设置页面,如使用模拟器请不要勾选UDID。注意App Path路径的正确性以及设备的系统版本号的设置。
箭头分别指的是Inspector,环境配置,及Launch
真机与模拟器配置的区别

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

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

◾启动JAVA编译工具,这里以Android Studio 为例
怎么建工程,这里就不再说了
首先导入Appium测试必备的库

将之前运行得到的脚本拷贝至Main函数内,并执行该文件。

到这里整个流程已经完毕


剩下的便是遇到的坑,你值得注意哟
1.版本的限制

2.:Instruments crashed on startup:
1)在设置里:
Developer—>Enable UI Automation
开启这几即可
App签名包,和本机的Xcode配置的签名不一致,

(在使用真机调试的App的时候,必须保证通过Xcode 的Instrument能够正常的调试真机才可以,否则Appium 无法调试真机的)
2).真机测试的时候,必须确保手机已经安装要测试app
3).确定ios已经绑定开发者证书,并且使用Xcode 能够运行真机
4).运行真机的时候,确保Instrument 已经关闭

3.[debug] [iOS] App is not installed. Will try to install.
[MJSONWP] Encountered internal error running command: Error: Installing
/var/folders/hb/5xtrkgp16bj3rctx9kxg64t00000gn/T/2016913-9705-
1ugvtlc/Payload/Input.app failed
at
/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-
ios-driver/node_modules/node-idevice/main.js:159:6
at ChildProcess.exithandler (child_process.js:193:7)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:850:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)

Encountered internal error running command: Error: Installing
告诉你没有权限需要开启:
在终端执行命令:sudo chmod -R 777 /var/db/lockdown/

4.[iOSLog] [IOS_SYSLOG_ROW] Apr 18 13:14:47 liangxueqingde-iPhone com.apple.xpc.launchd[1] : assertion failed: 13G35: launchd + 116796 [9F6284CF-8A17-36CC-9DB5-85D510A21F14]: 0x3

[debug] [Instruments] [INST STDERR] 2017-04-18 13:14:48.068 instruments[3231:105358] WebKit Threading Violation - initial use of WebKit from a secondary thread.
提醒Instruments 一般为 Xcode 正在运行真机测试
停止Xcode测试就可以

5.每次运行JAVA脚本的时候一定要重启Launch,Inspector和JAVA脚本只能有一个在运行

这里有能碰到的绝大多数错误

0 0
原创粉丝点击