在写Android case时 每个case都需要继承UiAutomatorTestCase
1.创建JAR
android create uitest-project -n $packageName -t 1 -p $ProjectPath
-n指的是jar包名字
-t指的是你电脑中的第几个SDK,可以通过android list查看
-p指的是你的工作空间的路径
2.build
cd $ProjectPath && $Antpath/apache-ant-1.10.1/bin/ant build
ant build
3.将本地推到手机上
adb push $path/jarname.jar /data/local/tmp/
4.运行
adb shell uiautomator runtest jarname.jar -c testcasepackage.testcaseclassName
5.日志
Uiautomator定位元素示例
FindElement.java
package interim;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
public class FindElement extends UiAutomatorTestCase{
/**
* 根据X,Y点进行点击
* @param x 文件的路径
* @param y 写入文件的内容
*/
public void click(int x,int y){
UiDevice.getInstance().click(x, y);
}
// 按resource id定位
/**
* 根据resource id进行定位元素
* @param id resource_id
* @param y 写入文件的内容
*/
public UiSelector findByResourceId(String id) {
UiSelector us=new UiSelector();
UiSelector uiseletor=us.resourceId(id);
return uiseletor;
}
/**
* 文本内容等于text
* @param text 文本
*/
public void findByText (String text){
UiObject addNote = new UiObject(new UiSelector().text("Add note"));
try {
assertEquals(addNote.getText(),"Add note");
} catch (UiObjectNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 文本包含text
* @param text 文本
*/
public void findByTextContains (String text){
UiObject addNote = new UiObject(new UiSelector().textContains("Add")); try {
assertEquals(addNote.getText(),"Add note");
} catch (UiObjectNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 文本包含text
* @param text 文本
*/
public void findByTextStartsWith (String text){
UiObject addNote = new UiObject(new UiSelector().textStartsWith("Add"));
try {
assertEquals(addNote.getText(),"Add note");
} catch (UiObjectNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 按index定位
// 按class name定位
/**
* 根据className进行查找
* @param className 类名
* @param text 文本
*
*/
public void findByTextInClass (String className,String text){
UiObject addNote = new UiObject(new UiSelector().className(className).text(text));
try {
assertEquals(addNote.getText(),"Add note");
} catch (UiObjectNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 根据className进行查找
* @param className 类名
* @param text 文本
*/
public void findByTextInObject() throws UiObjectNotFoundException {
UiObject save = new UiObject(new UiSelector().text("Save"));
assertEquals(save.getText(), "Save");
UiObject delete = save.getFromParent(new UiSelector().text("Delete"));
assertEquals(delete.getText(), "Delete");
}
// 按description定位
// 按package name定位
}