新手区 2015年2月 新秀群作业--appium 学习之第一个例子(初学笔记)

jessica · 2015年02月28日 · 最后由 Monkey 回复于 2015年02月28日 · 1330 次阅读

引言: 加入组织有一段时间,一直未交作业,今天将前段时间学习的 Appium 环境搭建步骤整理汇总下(高手请绕道)。

1.下载 appium for windows 安装包
最新安装包为 AppiumForWindows-1.3.4.1,点击,进入 appium 程序后,点击"launch"按钮;

2.启动 Android AVD
点击 start.等待虚拟机加载,这个过程很漫长,几分钟左右;

3.测试工程文件搭建
1)eclipse ,加载 selenium、appium client、junit 包。
2)新建一个 java junit 工程文件,用于写测试代码;
3)放置 apk 到指定目录:在工程文件夹下新建一个 apps 子文件夹,将待测 apk 放入其中,以 contactmanager.apk 为例;
4)查找 apk 的 package 和 activity 属性;
5)定位 APK 的控件元素;
以上两个步骤中,package 和控件元素的 ID 可以采用 uiautomatorviewer.bat 工具进行捕捉,activity 可以采用反编译工具获取。
driver 定位控件元素有多个途径,在 appnium 使用中本人仅会使用 by.id 这个方法,可以将 uiautomatorviewer.bat 工具捕捉的 “resource-id” 属性值整个 copy 过来。
具体请见乙醇大神博客:http://www.cnblogs.com/nbkhic/p/3806886.htmlhttp://www.cnblogs.com/nbkhic/p/3806951.html

4.代码完成后,启动 junit 工程文件运行,就可以对 APK 的 UI 控件自动测试了,启动过程需要 2 分钟左右

5.测试源码

package androidTest;

//import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.*;  
import org.openqa.selenium.remote.CapabilityType;  
import org.openqa.selenium.remote.DesiredCapabilities;  


import java.io.File;  
import java.net.MalformedURLException;
import java.net.URL;  
import java.util.List;

import io.appium.java_client.android.AndroidDriver;




public class Test1 {

   private AndroidDriver driver;

    @BeforeClass
    public static void setUpBeforeClass()  {
    }

    @Before
    public void setUp() throws MalformedURLException{
         File classpathRoot = new File(System.getProperty("user.dir"));  
         File appDir = new File(classpathRoot, "apps");  //对应“ 在工程文件夹下新建一个apps子文件夹,将待测apk放入其中”
         File app = new File(appDir, "ContactManager.apk");  //待测APK名称
         DesiredCapabilities capabilities = new DesiredCapabilities();  
        capabilities.setCapability("deviceName","Android Emulator");  //模拟器
         //capabilities.setCapability("deviceName","Android");  //真机
         capabilities.setCapability(CapabilityType.BROWSER_NAME, "");  
         capabilities.setCapability(CapabilityType.VERSION, "4.4");  //Android版本,本人尝试过5.0失败
         capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
         capabilities.setCapability("app", app.getAbsolutePath());  
         capabilities.setCapability("app-package", "com.example.android.contactmanager");  //定位APK的Package
         capabilities.setCapability("app-activity", ".ContactManager");  //定位APK的Activity
         driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

    }

    @After
    public void tearDown()  {
        driver.quit();

    }

    @Test
    public void test() throws InterruptedException  {
    WebElement el = driver.findElement(By.name("Add Contact"));
        el.click();

        WebElement e3 = driver.findElement(By.id("com.example.android.contactmanager:id/contactNameEditText"));
        e3.sendKeys("wangyang");

        WebElement e4 = driver.findElement(By.id("com.example.android.contactmanager:id/contactPhoneEditText"));
        e4.sendKeys("18872573204");

        WebElement e5 = driver.findElement(By.id("com.example.android.contactmanager:id/contactEmailEditText"));
        e5.sendKeys("123@qq.com");

        WebElement e6 = driver.findElement(By.id("com.example.android.contactmanager:id/contactSaveButton"));
        e6.click();

     Thread.sleep(10000); //此段延时为了更好地看到测试界面效果,可省去

    }
}
共收到 3 条回复 时间 点赞

看来的确是第一次发帖, 头像都没设置. 哈哈. 不过赞下勇气.

代码请贴代码并使用代码块!
日志请贴日志并使用代码块!
提问,指明问题信息,请像一个职业测试一样报问题
支持 Markdown 格式, 粗体删除线单行代码
支持表情,见 Emoji cheat sheet
按 “M” 键查看更多 帮助。

使用 markdown 语法啊, 看看页面下方的格式语法

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册