由于安装Appium不会使用,学习了一下网上的方法,遇到了很多问题,主要是在手机上安装程序,以及定位元素,记录一下,方便后面使用。
一、配置adb环境变量(之前我的adb没有Linux下,后来拷贝到linux磁盘下,但没有配置,导致无法使用,所以记录下来)
配置环境变量
sudo gedit /etc/profile
在文件的最后追加一下内容(your_android-sdk-linux_path是绝对路径):
#set path for android sdk tools
export PATH=$PATH:/your_android-sdk-linux_path/tools/
export PATH=$PATH:/your_android-sdk-linux_path/platform-tools/
source /etc/profile
2、将下面的两句加到上面打开的文件里
export ANDROID_HOME=/home/sdk文件路径
export PATH=$PATH:$ANDROID_HOME/platform-tools
3、source~/.bashrc
二、使用Eclipse直接创建案例工程
1、打开Eclipse,【File】-->【New】-->【Project】
2、选择【Java Project】-->【Next】
3、输入工程名称Appium_demo,点击【Finish】
4、右键点击工程 New-Folder,新建两个文件夹:apps和libs,目录结构如下:
三、导入测试的类库
1、导入Selenum类库:http://docs.seleniumhq.org/download/
1) selenium-server-standalone-2.44.0.jar
2、导入Appium类库:
3、右键点击工程空白处,选择【Build Path】-->【Configure Build Path】
四、配置测试APK
将需要测试的apk放到项目的apps目录下
五、建立package包和案例文件
1、在src文件夹上右键单击,【New】-->【package】,输入包名:com.glen.demo,点击【Finish】
2、在package下新建类:ContactsTest.java,如下:
package com.glen.demo;
/*
* 安装应用程序app-debug.apk
* 打开app-debug,输入用户名、密码,点击保存
*/
import java.io.File;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
public class ContactsTest {
private AndroidDriver driver;
@Test
public void addContact() {
WebElement el=driver.findElement(By.name(""));
el.click();
driver.swipe(100, 500, 100, 100, 2);
driver.findElementByName("").click();
}
@BeforeClass
public void setUp() throws Exception{
//<span style="font-family: Verdana, Arial, Helvetica, sans-serif;">安装apk</span>
//设置apk的路径
File classpathRoot=new File(System.getProperty("user.dir"));//获得项目路径
File appDir=new File(classpathRoot,"apps");//获得APK所在文件夹名称
File app=new File(appDir,"app-debug.apk");//获得APK文件
//设置自动化相关参数
DesiredCapabilities capabilities=new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");//指定浏览器的名字,我们测试的是APK所以没有浏览器,故而为空;
capabilities.setCapability("platformName", "Android");//平台名称
capabilities.setCapability("deviceName", "d76af"); //模拟器才需要的参数,真机不需要设置//设备名称,通过命令行输入adb devices进行查找
//设置安卓系统版本 capabilities.setCapability("platformVersion", "5.1.1"); //模拟器才需要的参数,真机不需要设置
//设置apk路径
capabilities.setCapability("app", app.getAbsolutePath());//指定需要测试的APK,也就是需要安装的APK文件;
//设置app的主包名和主类名,需要设置了才可以安装
capabilities.setCapability("appPackage", "com...");
capabilities.setCapability("appActivity", ".ui...");
//使用命令行方式查找app类名:aapt dump xmltree xx.apk AndroidManifest.xml
capabilities.setCapability("unicodeKeyboard", true);// 使用 Unicode 输入法
capabilities.setCapability("resetKeyboard", true); // 重置输入法到原有状态
//初始化//核心关键步骤,创建驱动,指定服务地址,和初始化信息;
driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
}
@AfterClass
public void tearDown() throws Exception{
driver.quit();
}
}
其中,元素定位方法:
1、在命令行中运行sdk/tools目录下的uiautomatorviewer文件
hhh@Test-hhh:/opt/sdk/tools$ ./uiautomatorviewer
2、打开界面,以及操作如下:
好了,完成这一步,由于之前使用selenium进行PC端的BS结构测试,后面我基本知道怎么使用了。
六、 启动Android模拟器(也可以连接真机)
1、cmd输入:android avd,选择模拟器,点击【Start】即可。具体可参考:http://www.cnblogs.com/puresoul/p/4597211.html
2、启动好后,cmd输入:adb devices,确定设备是否连接上,如下图连接成功:
七、 启动Appium
方法一:cmd输入:appium
方法二:
1、直接双击appium gui图标(如下图):
2、点击右上角的启动按钮,启动日志如下:
八、 运行测试案例:
1、在eclipse中,项目右键>【Run As】>【TestNG Test】,运行过程截图如下: