Appium :Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android
来源:互联网 发布:奇虎软件怎么样 编辑:程序博客网 时间:2024/05/18 00:51
一,环境配置篇
在Windows上配置
1)下载安装node.js(http://nodejs.org/download/) 安装的时候有选项,记得把环境变量添加到path路径
2)使用npm安装appium,运行CMD输入 npm install -g appium(有些朋友反应在cmd下运行npm无效,如果这样请把nodejs的目录添加到用户变量的path下重启cmd即可 参考帖子:http://blog.csdn.net/iispring/article/details/8023319) ,如下图:
3)下载安装Android SDK(http://developer.android.com/sdk/index.htmlANDROID_HOME环境变量指向SDK路径,PATH变量设定%),设置 ANDROID_HOME%\tools 和% ANDROID_HOME%\platform-tools
4)安装JDK并设置JAVA_HOME环境变量
5)安装ANT,并将%ANT_HOME%\bin路径加到PATH
6)安装MAVEN,设置%M2_HOME%\bin,并添加到PATH中
7)安装Git
8)运行CMD 输入appium-doctor检查你的环境是不是都配置好了 如图:
9)下载selenium 类库(http://docs.seleniumhq.org/download/ 请下载java平台的)
10)Eclipse 自定义库中新建一个selenium 库 指向本地的硬盘selenium lib的路径 如图:
到此 环境算是配置好了,其中(5,6,7这三步骤只是为了构建项目和从github拖拽项目时候需要的,我的帖子不涉及到,但是为了appium-doctor顺利检查成功通过还是设置下)
二,appium启动篇
由于我测试是连接真机的,所以这里需要先通过adb devices -l 命令获得 真机的udid号,详细步骤如下:
1)真机(安卓版本4.2.2)通过USB连接 电脑,驱动装好,打开USB调试模式
2)运行cmd 输入 adb devices -l 查看UDID 如图:
3)再在cmd中输入 appium -a 127.0.0.1 -p4723 -U4d007e9a1b0050d1 (-a表示ip,-p表示端口,-U表示设备的udid 可以通过appium -h查看更多命令)
4)如果如下图所示 就表示 appium服务启动成功了,注意这个窗口不要关闭 因为这是appium的服务 关了就关了服务,后面过程无法执行,而且这个窗口也是 日志输出的窗口用于排错。
三,代码执行篇
这块我主要是执行的是官方的演示代码:通讯录管理app,安装打开app,并添加一个联系人保存的操作
1)首先去下载ContactManager.apk(http://yunpan.cn/QInSWzP2YWgTJEclipse工作目录的apps文件夹下),等会放在
2)打开Eclipse,新建一个java project,去appium的github(https://github.com/appium/appium/tree/master/sample-code/examples/java/junit/src/test/java/com/saucelabs/appiumAndroidContactsTest.java拷贝下来)上将 放到自己的包下,如下图所示:
其中apps目录 是我放ContactManager.apk 用的
3)在Project上右键点击Build Path -> Add Libraries.. ->User Library -> 勾选自己刚刚自建的 selenium 库(环境配置篇 第10步) 这样代码就不会因为在不到对应的库而报错了
4)对代码进行部分修改:
package com.incito.appiumdemo;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.openqa.selenium.*;import org.openqa.selenium.interactions.HasTouchScreen;import org.openqa.selenium.interactions.TouchScreen;import org.openqa.selenium.remote.CapabilityType;import org.openqa.selenium.remote.DesiredCapabilities;import org.openqa.selenium.remote.RemoteTouchScreen;import org.openqa.selenium.remote.RemoteWebDriver;import java.io.File;import java.net.URL;import java.util.List;public class AndroidContactsTest { private WebDriver driver; @Before public void setUp() throws Exception { // set up appium File classpathRoot = new File(System.getProperty("user.dir")); //存放app目录:apps File appDir = new File(classpathRoot, "apps"); File app = new File(appDir, "ContactManager.apk"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("device","Android"); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //我真机的安卓版本是4.2.2 capabilities.setCapability(CapabilityType.VERSION, "4.2.2"); //使用的是windows平台 capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS"); capabilities.setCapability("app", app.getAbsolutePath()); capabilities.setCapability("app-package", "com.example.android.contactmanager"); capabilities.setCapability("app-activity", ".ContactManager"); driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); } @After public void tearDown() throws Exception { driver.quit(); } @Test public void addContact(){ WebElement el = driver.findElement(By.name("Add Contact")); el.click(); List<WebElement> textFieldsList = driver.findElements(By.tagName("textfield")); textFieldsList.get(0).sendKeys("wangyang"); textFieldsList.get(1).sendKeys("18872573204"); textFieldsList.get(2).sendKeys("stephenwang@gmail.com"); driver.findElement(By.name("Save")).click(); } public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen { private RemoteTouchScreen touch; public SwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) { super(remoteAddress, desiredCapabilities); touch = new RemoteTouchScreen(getExecuteMethod()); } public TouchScreen getTouch() { return touch; } }}
5)代码右键run as "Junit test" appium 窗口会有日志记录,代码无报错 而且在真机上完成了这个安装apk添加联系人的操作(注意输入法不要默认是中文输入,不然会报错),如图:
注意:我的appium版本是0.16.0 据说最新版本的上面会报报 EXDEV error解决办法见:http://testerhome.com/topics/639
基于Windows平台上的使用Java语言实现appium自动化程序for Android devices 的详细步骤就算是写完了 有点像记流水账 ,希望对于新手有点用。 请各位大神轻喷,我也是新手。有时间的话 在写个完整版的基于Windows平台上的使用Python语言实现appium自动化程序for Android devices。
- Appium :Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android
- Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android(完整版)
- Appium 新手贴:Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android (完整版)
- Appium 新手贴:Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android (完整版)
- Appium 新手贴:Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android (完整版)
- Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Python 语言实现 appium 自动化程序 for Android(完整版)
- Windows 平台上的使用 Python 语言实现 appium 自动化程序环境配置
- appium for windows 自动化的环境搭建
- Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装
- Appium+Robotframework实现Android应用的自动化测试-2:Windows中启动Appium和模拟器
- Appium+Robotframework实现Android应用的自动化测试-1:Appium在Windows中的安装
- Android自动化测试之appium的使用
- Android自动化工具Appium的使用
- Android自动化工具Appium的使用
- Android自动化测试appium for java环境搭建实操
- CUDA编程
- 浅谈CSS中position、display、overflow、float、margin合并等几种特性的叠加关系
- opencv3.1 svm(支持向量机)使用心得
- Android下生成xml的方式
- 蓝桥杯——表达式计算(支持多位数运算的java实现)
- Appium :Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android
- Matlab——命令行执行
- uva 10137 The Trip
- 结构体、共用体和枚举之老--质价比
- java学习之数组的应用
- Maven(5)-依赖关系(实战篇)
- expected unqualified-id before numeric constant问题原因
- 什么是react-native
- poj 3468线段树区间更新