Appium - JAVA 入门
Appium 的理念:
- 你无需为了自动化,而重新编译或者修改你的应用。
- 你不必局限于某种语言或者框架来写和运行测试脚本。
- 一个移动自动化的框架不应该在接口上重复造轮子。(移动自动化的接口应该统一)
- 无论是精神上,还是名义上,都必须开源。
满足第一条,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 概念:
http://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 安装相关环境
- 安装 JDK 并设置环境变量
- 安装 Android SDK 并设置环境变量
- 安装 Nodejs
- 安装 appium
- 通过 appium-doctor 验证安装是否正常
- 安装 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 来实现 ^_^
持续学习中
转python,加上robot framework 赶紧加上啊,急需学习