Appium是为编程人员设计打造的一款开源性编程软件。这款软件基于Client-Server的架构设计,并采用标准的HTTP通信协议,用户可以通过它检测原生应用。


2.appium可以测试原生的、混合的、以及移动端的web项目;
3.appium可以测试ios,android应用(当然了,还有firefox os);
4.appium是跨平台的,可以用在osx,windows以及linux桌面系统上;

2.不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;
3.不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了;
4.移动端自动化测试应该是开源的;

你可以用你喜欢的开发工具,使用任何 WebDriver 兼容的语言来编写测试用例。比如 Java, Objective-C, JavaScript with Node.js (in both callback and yield-based flavours), PHP, Python, Ruby, C#, Clojure, 或者 Perl。 可以使用标准的Selenium WebDriver API和特定语言的客户端库。
你可以使用任何测试框架。
如果没有 Appium,你就只能用 Javascript 来写 Apple 的 UIAutomation 脚本,并且只能通过Instruments 应用来运行你的测试。同样的,在 Google 的UiAutomator体系下,你只能用 Java 写你的测试案例。Appium 最终开启了跨平台原生移动自动化的可能。
appium的核心其实是一个暴露了一系列REST API的server。
这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。
在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。
这样的设计思想带来了一些好处:
1,可以带来多语言的支持;
2,可以把server放在任意机器上,哪怕是云服务器都可以;(是的,appium和webdriver天生适合云测试)

基于Dan Cuellar's 在 iOS 自动化上的成果,Appium 通过驱动 Apple 的 UIAutomation 库来提供 iOS 支持。
而在新版本的 Android 上,我们使用 Uiautomator 框架,老版本的 Android,则使用了 Selendroid
FirefoxOS 的支持依赖一个基于 Gecko 平台并且兼容 WebDriver 的自动化驱动Marionette。

默认安装 jdk 2.1.2.
配置java环境变量
JAVA_HOME D:\Java\jdk1.8.0_25
CLASSPATH .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
Path %JAVA_HOME%\bin;
测试:CMD中输入java/javac,能看到命令提示


2.下载安装adt-bundle-windows-x86_64
配置环境变量
ANDROID_HOME 值是Android SDK的安装路径
Path (%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools;)

3.下载安装nodejs
node2.2.1.默认安装
node2.2.2配置环境变量
Path D:\nodejs\; (也就是node.exe文件所在的目录)
测试:CMD中输入node-v,能看到版本号

4.下载安装Python2.7
将Python2.7的安装路径(也就是python.exe所在的目录)添加到环境变量Path
测试:CMD中输入Python -v

5.第一种方法安装Appium。
1) 打开CMD窗口,执行 npm install -g appium 命令开始安装Appium. Appium默认被安装到C:\Users\Administrator\AppData\Roaming\npm\ 下。
2) 把路径C:\Users\Administrator\AppData\Roaming\npm\ (appium可执行文件所在的目录)添加到环境变量Path
第二种方法安装Appium。
下载Appium压缩包
解压后配置appium环境变量
Path D:\tools\appium\Appium\node_modules\.bin;
测试:CMD中输入appium-doctor,能看到All Checks were successful
JAVA_HOME(你的JDK安装位置,如:C:\Program Files\Java\jdk1.6.0_23)
PATH(%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;)
CLASSPATH(.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar)
验证JDK配置
打开CMD,依次输入:java,javac,java -version进行验证,出现以下界面表示配置OK






2.配置SDK环境:解压SDK压缩包到本地,下面进行SDK的配置,参数如下:
ANDROID_HOME(你的SDK路径,如:D:\Program Files\adt-bundle-windows-x86_64-20131030\sdk)
PATH(%ANDROID_HOME%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;)
验证SDK配置
打开CMD,输入:adb,出现以下界面表示配置OK



3.安装Node.js,双击安装包,然后点下一步下一步即可。注意环境的配置(图1),最后安装成功后的界面如下(图2)


4.安装配置Appium Server,解压安装包,双击安装包,然后点下一步下一步即可,最后会弹出一个CMD窗口,属正常现象,不要关闭它!只需等待即可。安装完成后配置一下PATH的环境变量
PATH(C:\Program Files\Appium\node_modules\.bin)
配置完成后打开CMD,输入:appium-doctor,出现下图的界面表示安装成功




5.安装配置Appium Client,双击安装包,然后点下一步下一步即可,出现以下界面表示安装成功(图2)


6.安装配置Appium-Python-Client,Python环境已配置,前期安装已完成。打开CMD,输入:pip install Appium-Python-Client进行安装,安装完成后表示整个Appium环境搭建成功,可以正常使用了。

1.在安装app首次启动的时候,在引导页出现权限弹出框

2.弹窗是可以直接定位到的,这里不能通过id去定位了,因为弹窗比较多,每次id都不太一样,但是文本text都是一样的:始终允许

3.通过xpath来定位按钮:始终允许代码

4.使用selenium里面的显示等待模块WebDriverWait和判断模块expected_conditions封装定位方法代码

5.循环判断是否有权限弹窗方法代码

6.使用权限弹窗-始终允许方法代码



【基本介绍】
Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。
【软件功能】
1.appium是开源的移动端自动化测试框架;2.appium可以测试原生的、混合的、以及移动端的web项目;
3.appium可以测试ios,android应用(当然了,还有firefox os);
4.appium是跨平台的,可以用在osx,windows以及linux桌面系统上;

【软件特色】
1.不需要为了自动化而且重新编译或修改测试app;2.不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;
3.不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的api;也就是说webdriver协议里的api已经够好了,拿来改进一下就可以了;
4.移动端自动化测试应该是开源的;

【软件优势】
因为 Appium 在所有平台上都使用了标准的自动化接口, 所以你不需要以重新编译或者修改你的 app。你可以用你喜欢的开发工具,使用任何 WebDriver 兼容的语言来编写测试用例。比如 Java, Objective-C, JavaScript with Node.js (in both callback and yield-based flavours), PHP, Python, Ruby, C#, Clojure, 或者 Perl。 可以使用标准的Selenium WebDriver API和特定语言的客户端库。
你可以使用任何测试框架。
如果没有 Appium,你就只能用 Javascript 来写 Apple 的 UIAutomation 脚本,并且只能通过Instruments 应用来运行你的测试。同样的,在 Google 的UiAutomator体系下,你只能用 Java 写你的测试案例。Appium 最终开启了跨平台原生移动自动化的可能。
appium的核心其实是一个暴露了一系列REST API的server。
这个server的功能其实很简单:监听一个端口,然后接收由client发送来的command。翻译这些command,把这些command转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些command后把执行结果返回给appium server,appium server再把执行结果返回给client。
在这里client其实就是发起command的设备,一般来说就是我们代码执行的机器,执行appium测试代码的机器。狭义点理解,可以把client理解成是代码,这些代码可以是java/ruby/python/js的,只要它实现了webdriver标准协议就可以。
这样的设计思想带来了一些好处:
1,可以带来多语言的支持;
2,可以把server放在任意机器上,哪怕是云服务器都可以;(是的,appium和webdriver天生适合云测试)

【工作原理】
Appium 可以驱动多种原生自动化框架,同时也提供基于 Selenium 的 WebDriver JSON wire protocol api。基于Dan Cuellar's 在 iOS 自动化上的成果,Appium 通过驱动 Apple 的 UIAutomation 库来提供 iOS 支持。
而在新版本的 Android 上,我们使用 Uiautomator 框架,老版本的 Android,则使用了 Selendroid
FirefoxOS 的支持依赖一个基于 Gecko 平台并且兼容 WebDriver 的自动化驱动Marionette。

【安装教程】
1.下载安装java环境默认安装 jdk 2.1.2.
配置java环境变量
JAVA_HOME D:\Java\jdk1.8.0_25
CLASSPATH .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
Path %JAVA_HOME%\bin;
测试:CMD中输入java/javac,能看到命令提示


2.下载安装adt-bundle-windows-x86_64
配置环境变量
ANDROID_HOME 值是Android SDK的安装路径
Path (%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools;)

3.下载安装nodejs
node2.2.1.默认安装
node2.2.2配置环境变量
Path D:\nodejs\; (也就是node.exe文件所在的目录)
测试:CMD中输入node-v,能看到版本号

4.下载安装Python2.7
将Python2.7的安装路径(也就是python.exe所在的目录)添加到环境变量Path
测试:CMD中输入Python -v

5.第一种方法安装Appium。
1) 打开CMD窗口,执行 npm install -g appium 命令开始安装Appium. Appium默认被安装到C:\Users\Administrator\AppData\Roaming\npm\ 下。
2) 把路径C:\Users\Administrator\AppData\Roaming\npm\ (appium可执行文件所在的目录)添加到环境变量Path
第二种方法安装Appium。
下载Appium压缩包
解压后配置appium环境变量
Path D:\tools\appium\Appium\node_modules\.bin;
测试:CMD中输入appium-doctor,能看到All Checks were successful
【环境搭建】
1.安装配置JDK环境:安装JDK过程简单,不再累述;下面进行JDK的配置,参数如下:JAVA_HOME(你的JDK安装位置,如:C:\Program Files\Java\jdk1.6.0_23)
PATH(%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;)
CLASSPATH(.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar)
验证JDK配置
打开CMD,依次输入:java,javac,java -version进行验证,出现以下界面表示配置OK






2.配置SDK环境:解压SDK压缩包到本地,下面进行SDK的配置,参数如下:
ANDROID_HOME(你的SDK路径,如:D:\Program Files\adt-bundle-windows-x86_64-20131030\sdk)
PATH(%ANDROID_HOME%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;)
验证SDK配置
打开CMD,输入:adb,出现以下界面表示配置OK



3.安装Node.js,双击安装包,然后点下一步下一步即可。注意环境的配置(图1),最后安装成功后的界面如下(图2)


4.安装配置Appium Server,解压安装包,双击安装包,然后点下一步下一步即可,最后会弹出一个CMD窗口,属正常现象,不要关闭它!只需等待即可。安装完成后配置一下PATH的环境变量
PATH(C:\Program Files\Appium\node_modules\.bin)
配置完成后打开CMD,输入:appium-doctor,出现下图的界面表示安装成功




5.安装配置Appium Client,双击安装包,然后点下一步下一步即可,出现以下界面表示安装成功(图2)


6.安装配置Appium-Python-Client,Python环境已配置,前期安装已完成。打开CMD,输入:pip install Appium-Python-Client进行安装,安装完成后表示整个Appium环境搭建成功,可以正常使用了。

【使用技巧】
Appium如何处理弹窗?1.在安装app首次启动的时候,在引导页出现权限弹出框

2.弹窗是可以直接定位到的,这里不能通过id去定位了,因为弹窗比较多,每次id都不太一样,但是文本text都是一样的:始终允许

3.通过xpath来定位按钮:始终允许代码

4.使用selenium里面的显示等待模块WebDriverWait和判断模块expected_conditions封装定位方法代码

5.循环判断是否有权限弹窗方法代码

6.使用权限弹窗-始终允许方法代码



