UiAutomator API:UiAutomatorTestCase

作为所有测试用例的超类,UiAutomatorTestCase继承于junit.framework.TestCase,遵循setUp,test,tearDown的测试流程,支持断言使用,负责基础的框架支持,包含执行过程的参数获取,实例获取及断言使用。对应api解析如下:

1、参数获取:
返回值
方法及说明
Bundle
getParams()
在执行UIAutomator时,可以使用-e 给执行过程指定参数,所有键值对存储于参数Bundle中,在测试过程中通过getParams()得到该Bundle
用法:
假设我需要想jar包传三个参数,String uiserName,String password,long runTime,则对应的命令应该如下:

      public void test1() throws Exception { 
        Bundle bundle=getParams();//获取键值对  
        String userName=bundle.getString("userName"); 
        String password=bundle.getString("password"); 
        long runTime=Long.parseLong(bundle.getString("runTime")); 
        System.out.println(runTime+"======="+password+"========"+userName); 
    } 

2、实例获取:
返回值
方法及说明
UiDevice
getUiDevice()
取得当前设备实例,等效于使用Uidevice.getInstance()
IAutomationSupport
getAutomationSupport()
取得uiautomator实现的IAutomationSupport实例,用以向结果添加INSTRUMENTATION_STATUS标志的日志信息
用法:

   public void testDevice() {
     //获取手机设备的实例
     UiDevice device1 = UiDevice.getInstance();
     device1.pressBack();

     //获取手机设备的实例另一种方法
     UiDevice device2 = getUiDevice();
     device2.pressBack();
     }

3、流程执行:
返回值
方法及说明
void
setup()
测试前环境准备,在同一个类中与每个testCase前执行,一般被用户覆写,用以测试时的初始化准备放置于该方法内进行
void
sleep(long ms)
休眠指定时间,等效与使用SystemClock.sleep(long ms)
void
tearDown()
测试后收尾工作,在同一个类中与每个testCase后执行,一般被用户覆写,用以处理执行结果,保存数据,还原测试前环境
用法:

public void setup() {
     System.out.println("开始测试");
}
public void tearDown() {
     System.out.println("结束测试");
}
public void testSleep() {
     //休眠1s
     sleep(1000);
}

4、断言支持:
返回值
方法及说明
void
assertXXX()系列
继承于junit.framework.Assert,常用断言来检查当前的测试环境状态,如断言失败,则认为case执行失败,case执行终端,进入tearDown()

测试脚本:

package com.uiautomator.demo;

import android.os.Bundle;

import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class Home extends UiAutomatorTestCase {

	public static void main(String[] args) {
		String testClass, testName;
		testClass = "com.uiautomator.demo.Home";
		testName = "";
		new UiAutomatorHelper(testClass, testName);
	}

	public void setup() {
		System.out.println("开始测试");
	}

	public void tearDown() {
		System.out.println("结束测试");
	}
	
	public void testSleep() {
		//休眠1s
		sleep(1000);
		assertEquals("预期的", "真实的");
	}

	public void testDevice() {
		// 获取手机设备的实例
		UiDevice device1 = UiDevice.getInstance();
		device1.pressBack();

		// 获取手机设备的实例另一种方法
		UiDevice device2 = getUiDevice();
		device2.pressBack();
	}

	public void test1() throws Exception {
		Bundle bundle = getParams();// 获取键值对
		String userName = bundle.getString("userName");
		String password = bundle.getString("password");
		long runTime = Long.parseLong(bundle.getString("runTime"));
		System.out.println(runTime + "=======" + password + "========"
				+ userName);
	}

}

猜你喜欢

转载自blog.csdn.net/tt75281920/article/details/105650091
今日推荐