Appium(学习)

来源:互联网 发布:数据三国 编辑:程序博客网 时间:2024/05/16 17:54

最近有空玩了一下Appium,记录一下

1.下载Appium for windows,现在是0.12.3版本

https://bitbucket.org/appium/appium.app/downloads/

解压后如下图

双击Appium.exe就能启动Appium界面

点击Launch开启服务

2. 下载Android SDK

https://developer.android.com/sdk/index.html

解压后

3. 配置系统环境变量

ANDROID_HOME: C:\adt-bundle-windows-x86_64-20131030\sdk

Path添加: %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

4. 启动AVD,耗资源啊,这时候我T400的CPU已经100%了

5. 编写Test,使用ADT安装好Maven插件,创建一个Maven项目,添加一个文件夹apps用来存放被测的app,这里测试的是ContactManager.apk

pom.xml添加如下依赖

复制代码
 1   <dependencies> 2     <dependency> 3             <groupId>junit</groupId> 4             <artifactId>junit</artifactId> 5             <version>4.11</version> 6             <scope>test</scope> 7         </dependency> 8         <dependency> 9             <groupId>org.seleniumhq.selenium</groupId>10             <artifactId>selenium-java</artifactId>11             <version>LATEST</version>12             <scope>test</scope>13         </dependency>14   </dependencies>
复制代码

编写AndroidContactsTest

复制代码
 1 package com.guowen.appiumdemo; 2  3 import org.junit.After; 4 import org.junit.Before; 5 import org.junit.Test; 6 import org.openqa.selenium.*; 7 import org.openqa.selenium.interactions.HasTouchScreen; 8 import org.openqa.selenium.interactions.TouchScreen; 9 import org.openqa.selenium.remote.CapabilityType;10 import org.openqa.selenium.remote.DesiredCapabilities;11 import org.openqa.selenium.remote.RemoteTouchScreen;12 import org.openqa.selenium.remote.RemoteWebDriver;13 import java.io.File;14 import java.net.URL;15 import java.util.List;16 17 public class AndroidContactsTest {18     private WebDriver driver;19 20     @Before21     public void setUp() throws Exception {22         // set up appium23         File classpathRoot = new File(System.getProperty("user.dir"));24         File appDir = new File(classpathRoot, "apps/ContactManager");25         File app = new File(appDir, "ContactManager.apk");26         DesiredCapabilities capabilities = new DesiredCapabilities();27         capabilities.setCapability("device","Android");28         capabilities.setCapability(CapabilityType.BROWSER_NAME, "");29         capabilities.setCapability(CapabilityType.VERSION, "4.4");30         capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");31         capabilities.setCapability("app", app.getAbsolutePath());32         capabilities.setCapability("app-package", "com.example.android.contactmanager");33         capabilities.setCapability("app-activity", ".ContactManager");34         driver = new SwipeableWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);35     }36 37     @After38     public void tearDown() throws Exception {39         driver.quit();40     }41 42     @Test43     public void addContact(){44         WebElement el = driver.findElement(By.name("Add Contact"));45         el.click();46         List<WebElement> textFieldsList = driver.findElements(By.tagName("textfield"));47         textFieldsList.get(0).sendKeys("Some Name");48         textFieldsList.get(2).sendKeys("Some@example.com");49         driver.findElement(By.name("Save")).click();50     }51 52     public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen {53         private RemoteTouchScreen touch;54 55         public SwipeableWebDriver(URL remoteAddress, Capabilities desiredCapabilities) {56             super(remoteAddress, desiredCapabilities);57             touch = new RemoteTouchScreen(getExecuteMethod());58         }59 60         public TouchScreen getTouch() {61             return touch;62         }63     }64 }
复制代码

6. 运行Test,注意AVD里的Android如果没有解锁需要先解锁

这时候我们可以看到AVD在运行了,

同时Appium的命令行有对应的输出

7. 更多信息请参考Appium的Github

https://github.com/appium/appium

建议可以Clone下这个项目,在Sample-code文件夹下有示例

https://github.com/appium/appium/tree/master/sample-code

同时Testerhome发起翻译活动的中文文档也提交进去了

https://github.com/appium/appium/tree/master/docs/cn

OscarXie.net

关注质量与体验——电子商务与自动化测试
http://www.cnblogs.com/oscarxie/

0 0
原创粉丝点击