Appium环境搭建已经在在博客中写出
http://www.cnblogs.com/feimaoyuzhubaobao/p/5057832.html
那么本篇博客主要介绍java版本的appium入门demo。在开始demo之前,Android模拟器要安装好,其实模拟器就是模拟器真机,除了不能打电话和发信息,其他应该都可以的。模拟器的话在这里还可以安装genymotion,其实它不是普通的模拟器,严格来说,genymotion是虚拟机,被网传定义为模拟器。想安装这款模拟器的话。我在这里提供安装文件地址 http://yun.baidu.com/s/1pJC6ve7 和我自己在官网上注册号的账号和密码:feimao ,feimao12345。genymotion安装文件比较多,效果确实比前面AVD.exe模拟器要快些。我就不再赘述模拟器了,下面开始正式appium入门demo。
使用Eclipse创建案例工程
1.打开Eclipse,【File】-->【New】-->【Project】
2.选择【Java Project】-->【Next】
3.输入工程名称AppiumDemo,点击【Finish】
4.右键点击工程 New-Folder,新建两个文件夹:apps和libs,目录结构如下:
导入测试的类库
由于Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。所以selenium类库是要导入的。
1.Selenum2类库: http://seleniumhq.org/downlod
做过selenium自动化的朋友这块应该是熟悉的,就不多讲了。
2.Appium类库: http://appium.io/downloads.html
3.右键点击工程空白处,选择【Build Path】-->【Configure Build Path】
selenium的类库我导入比较多哈,不影响的。
下载测试 APK
1.下载测试的文件
ContactManager.apk https://github.com/appium/sample-code/tree/master/sample-code/apps/ContactManager
2.将下载的apk直接复制黏贴到项目的apps目录下
建立 package 包和案例文件
1.在src文件夹上右键单击,【New】-->【package】,输入包名: com.feimao.demo,点击【Finish】
2.在package下新建类:ContactsTest.java
下载地址如下:
https://github.com/appium/sample-code/tree/master/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium
代码如下:
package com.feimao.demo; import java.io.File; import java.net.URL; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver; import io.appium.java_client.android.AndroidDriver; public class ContactTest { private AndroidDriver driver; @Before public void setUp() throws Exception { //设置apk的路径 File classpathRoot = new File(System.getProperty("user.dir")); File appDir = new File(classpathRoot, "apps"); File app = new File(appDir, "ContactManager.apk"); //设置自动化相关参数 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("deviceName", "Android Emulator"); //设置安卓系统版本 capabilities.setCapability("platformVersion", "4.4.2"); //设置apk路径 capabilities.setCapability("app", app.getAbsolutePath()); //设置app的主包名和主类名 capabilities.setCapability("appPackage", "com.example.android.contactmanager"); capabilities.setCapability("appActivity", ".ContactManager"); //初始化 driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); } @Test public void addContact(){ WebElement el = driver.findElement(By.name("Add Contact")); el.click(); List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText"); textFieldsList.get(0).sendKeys("feimaoyuzhubaobao"); textFieldsList.get(2).sendKeys("forever together"); driver.swipe(100, 500, 100, 100, 2); driver.findElementByName("Save").click(); } @After public void tearDown() throws Exception { driver.quit(); } }
启动 Android 模拟器(也可以连接真机)
1.cmd输入:android avd,选择模拟器,点击【Start】即可。如果你在eclipse中集成了插件,那么在eclipse中也可以直接启。
2.启动好后,cmd输入:adb devices,确定设备是否连接上,如下图连接成功:
启动 Appium
1.由于之前安装好了appium,那么直接双击,然后点击启动按钮
2.cmd命令,appium 启动
运行 Appium 入门 demo
1.在eclipse中,项目右键>【Run As】>【JUnit Test】,运行过程如下:
到这里appium的入门demo已经全部写完了,这只是一个模拟呼叫联系人的例子,然后可以模拟此demo,写登录啊、定位元素啊等等。appium定位元素的方法貌似有9种,后续还会写一些工作中的例子和解决appium问题的方法。另外还可以去官网上下载源代码来看,看它的原理,看它的API,技术就那么回事,没什么难的,为自己加油~