【原创】Appium 测试安卓app(java)--windows平台

本文意在引导初学者使用java语言编写appium脚本,以知乎登录为例(知乎版本4.14.0(457));作者:沙陌 appium交流qq群:534129320,转载请注明

作者:沙陌  appium交流qq群:534129320,转载请注明

前提条件:appium服务端已搭建完成,不管是GUI版本的appium1.4.16,还是命令行版本的appium1.6.3,本文以java语言为例,编辑代码工具为eclipse
1. 首先在eclipse上创建一个java项目,选择eclipse菜单File-->New-->Java Project,弹出界面如下:
attachments-2017-02-gUcR4p7w58aef80002fb
生成的项目结构如下:
attachments-2017-02-wbyUQ3iB58aef8545782
接下来右键选择项目名称,右键后选择菜单New-->Folder
attachments-2017-02-SXsODdJ858aef8ab79bf
点击Finish后,项目结构中多了一个libs目录,这里我们用来存放appium用到的jar包
jar包下载http://pan.baidu.com/s/1o86SddS 密码:javf 网盘里找到appium所需jar下载里面的即可,请注意这里的jar包并非当前appium需要的最新版jar包,请酌情参考
下载后将java-client3.4.0.jar、testng-6.9.9.jar和selenium-server-standalone-2.52.0.jar 复制到项目的libs目录下,然后在libs目录下全选这几个包,全选后在选中区域右键-->Build path-->Add to build path,至此项目搭建完毕,如下图:
attachments-2017-02-SQ4N7q6Q58aef9072bea
2. 接下来该下测试脚本了,选中src,右键New-->package,如下:
attachments-2017-02-d5Kc5dP358aef96c1a91
点击Finish后,项目的src下会出现一个com.zhihu.test的package,然后再右键新创建的这个package,选择菜单New-->Class,如下:
attachments-2017-02-caF8LwDy58aef998ba05
点击Finish,即可创建一个类ZhihuLoginTest
写脚本前先说下如何查看app的界面元素,打开自己的sdk/tools/uiautomatorviewer.bat,双击打开这个文件,如下:
attachments-2017-02-EvvaegG258aeff1d6360
之后确保设备连接正常,使用adb devices能够看到设备,并且设备状态是device,在设备上打开某app,点击上图中的按钮,即可获取设备上的当前界面的元素信息如下(需要用鼠标在左侧区域进行选择某个控件右侧才会出来):
attachments-2017-02-RDyAVm5K58aeff5b56d6
测试脚本编写如下(脚本中用到的定位id均为以上工具看到的元素属性resource-id的值):
package com.zhihu.test;

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

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;

public class ZhihuLoginTest {
AndroidDriver driver;
@BeforeClass
public void beforeClass() throws Exception{
//这里写的是初始化driver的过程
File app=new File("C:/Users/LXG/Desktop/zhihunew1.apk");//要安装的测试app路径
DesiredCapabilities caps=new DesiredCapabilities();
caps.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());//app路径参数
caps.setCapability(MobileCapabilityType.DEVICE_NAME, "sui bian xie");//
caps.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true);
caps.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);
caps.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
driver=new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), caps);
}
/**
* 测试的业务流程
* 1.点击登录
* 2.点击邮箱
* 3.输入用户名和密码
* 4.点击登录
* 5.判断登录是否成功
*/
@Test
public void login(){
driver.findElement(By.id("com.zhihu.android:id/login_btn")).click();
driver.findElement(By.id("com.zhihu.android:id/email_text")).click();
driver.findElement(By.id("com.zhihu.android:id/email_input_view")).sendKeys("xxxxxxxxxxxxxxx");
driver.findElement(By.id("com.zhihu.android:id/password")).sendKeys("xxxxxxxxxxxx");
driver.findElement(By.id("com.zhihu.android:id/main_tab")).click();
Assert.assertEquals(driver.getPageSource().contains("搜索"), true);
}
@AfterClass
public void afterClass(){
driver.quit();
}

}

3. 执行脚本
3.1 检查设备连接是否正常,命令行执行adb devices,并且设备状态必须是device
attachments-2017-02-LpaHI2B358aefce86c76
3.2 启动appium服务端,命令行下直接输入appium或者在appium的界面版本中启动appium服务
3.3 执行测试,在当前测试类上右键-->Run as--> Testng Test,即可执行测试,如下:
attachments-2017-02-jwnnbeOe58aefd53db57

  • 发表于 2017-02-23 23:33
  • 阅读 ( 3318 )
  • 分类:默认分类

1 条评论

请先 登录 后评论
不写代码的码农
沙陌

神一样的存在

13 篇文章

作家榜 »

  1. hey girl 181 文章
  2. 王前前 137 文章
  3. 柠檬 118 文章
  4. lamking 105 文章
  5. 云少 105 文章
  6. 腾讯移动品质中心TMQ 82 文章
  7. humortony 82 文章
  8. 开心的阳光 41 文章