Appium 的理念:

  1. 你无需为了自动化,而重新编译或者修改你的应用。
  2. 你不必局限于某种语言或者框架来写和运行测试脚本。
  3. 一个移动自动化的框架不应该在接口上重复造轮子。(移动自动化的接口应该统一)
  4. 无论是精神上,还是名义上,都必须开源。

满足第一条,Appium 真正的工作引擎其实是第三方自动化框架

  • iOS: 苹果的 UIAutomation
  • Android 4.2+: Google’s UiAutomator
  • Android 2.3+: Google’s Instrumentation. (Instrumentation由单独的项目Selendroid提供支持 )

满足第二条,把这些第三方框架封装成一套 API,WebDriver API.WebDriver(也就是 “Selenium WebDriver") 指定了客户端到服务端的协议。
Appium 和 WebDriver 客户端不是技术意义上的“测试框架”,而是“自动化库”。你可以在你的测试环境中随意使用这些自动化库!

第四条就不用说了,Appium 是开源的。

Appium 概念:

appium1

appium2http://std.mama.cn/laizhuoming/appium_share/raw/master/2.png

Appium 安装和运行

brew install node (brew install nvm) # get node.js

npm --registry http://registry.cnpmjs.org install -g appium # get appium

npm install wd # get appium client

appium & # start appium

node your-appium-test.js (maven clean test)

Appium 服务关键字:

http://appium.io/slate/cn/master/?java#appium-服务关键字

移动手势的自动化

http://appium.io/slate/cn/master/?java#移动手势的自动化

Wireless 远程连接

adb connect 172.68.81.247:5555

STF 安卓设备集群

https://github.com/openstf/stf

rethinkdb

stf local --public-ip 172.68.80.228 --allow-remote

以上是5月底分享的内容。本人觉得不是十分满意,因为只看了官网文档和根据sample做了个简单的demo,没有深入去做好分层,封装好代码。
再参考其他教程,说说java方面怎么入门appium(Android):

01 安装相关环境

  1. 安装 JDK 并设置环境变量
  2. 安装 Android SDK 并设置环境变量
  3. 安装 Nodejs
  4. 安装 appium
  5. 通过 appium-doctor 验证安装是否正常
  6. 安装 Eclipse 或 IDEA

本人使用 Eclipse ,官网例子有 maven 处理依赖,所以不需要额外下载 Appium Java Client

启动 appium 的配置

写在 setUp() 方法中

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("appium-version", "1.5.2");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("deviceName", "Android");
    capabilities.setCapability("platformVersion", "5.1");
    //capabilities.setCapability("avd", "Nexus_6_API_22");
    capabilities.setCapability("deviceName", "71MBBL622933");
    capabilities.setCapability("noSign", "true");
    capabilities.setCapability("noReset", "true");
    capabilities.setCapability("app","apk 路径");

然后启动手机或模拟器

    serverAddress = new URL("http://127.0.0.1:4723/wd/hub");
    driver = new AndroidDriver(serverAddress, capabilities);

结束后需要关闭 session

    @After
    public void tearDown() throws Exception {
        if (driver != null) driver.quit();
    }

元素定位

  • appium 图形客户端有 Inspector 工具,可以直接得到xpath
  • android sdk tools 中有 uiautomatorviewer,可以拿到resource-id
  • android sdk tools 中有 DDMS 也可以获得元素信息

以后的目标:

我转python,加上robot framework 来实现 ^_^
持续学习中