-
报告的简介以及查看
-
错误的类型:
- 断言错误:AssertionFailedError
- 脚本错误:UiObjectNotFoundException、Java异常等
-
报告状态:
- 运行状态
- 结果状态
- 运行状态
运行状态 | 结果状态 | 运行信息 | ||
---|---|---|---|---|
1 | 运行前 | 0 | Ok | 运行前信息 |
-1 | 运行完成 | -1 | Errors 脚本错误 | 运行中信息 |
-2 | Failures 断言错误 | 运行后信息 |
-
numtests 运行的所有用例数量
-
stream 信息流与错误流
-
id 运行框架
-
test 用例名字
-
class 用例完整类名
-
current 当前运行在第几条
-
CODE 状态信息
-
各种状态的报告并定位问题:
- 断言失败报告
/**
* 断言失败
* @throws UiObjectNotFoundException
*/
public void testMsm() throws UiObjectNotFoundException {
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject uiObject = new UiObject(new UiSelector().text("信息"));
UiObject uiObject1 = new UiObject(new UiSelector().text("无信息"));
uiObject.clickAndWaitForNewWindow();
assertTrue(!uiObject1.exists());
}
* 脚本失败报告
/**
* 脚本失败
* @throws UiObjectNotFoundException
*/
public void testScript() throws UiObjectNotFoundException {
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject uiObject = new UiObject(new UiSelector().text("1信息"));
UiObject uiObject1 = new UiObject(new UiSelector().text("无"));
uiObject.clickAndWaitForNewWindow();
assertTrue(!uiObject1.exists());
}
-
多测试用例异常:
- 直接将上述两个测试用例直接执行即可
-
只有断言失败表现.F, 只有脚本失败表现.E,两者都有.F.E
-
输出自己的信息到报告中:
- 初始setUp与tearDown函数
- setUp主要用于开始初始化工作
- tearDown主要用于收尾
- 初始setUp与tearDown函数
-
输出信息API
- Bundle
- getAutomationSupport().sendStatus(int x, Bundle bundle)
- 此处的Bundle包含很多的键值对的集合,和Android中的一致
public class SelfTest extends TestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
System.out.println("SetUp调用了");
Bundle bundle = new Bundle();
bundle.putString("key1","value1");
bundle.putString("key2","value2");
bundle.putString("key3","value3");
bundle.putString("key4","value4");
bundle.putString("key5","value5");
//发送状态,注意不能跟系统状态码一样(0,1,-1),这里我们用10
// getAutomationSupport().sendStatus(10, bundle);
}
public void testSetup(){
System.out.println("用例调用了");
Bundle bundle = new Bundle();
bundle.putString("key1","value1");
bundle.putString("key2","value2");
bundle.putString("key3","value3");
bundle.putString("key4","value4");
bundle.putString("key5","value5");
// getAutomationSupport().sendStatus(11, bundle);
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
System.out.println("tearDown用例完成了");
Bundle bundle = new Bundle();
bundle.putString("key1","value1");
bundle.putString("key2","value2");
bundle.putString("key3","value3");
bundle.putString("key4","value4");
bundle.putString("key5","value5");
// getAutomationSupport().sendStatus(12, bundle);
}
/**
* 通过-e传参拨打电话
*/
public void testCall() throws UiObjectNotFoundException {
UiDevice uiDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
uiDevice.pressBack();
uiDevice.pressBack();
uiDevice.pressBack();
UiObject uiObject = new UiObject(new UiSelector().text("电话"));
uiObject.clickAndWaitForNewWindow();
//从命令行获取数据
Bundle bundle = new Bundle();
//命令行中的参数 -e key value 10010
String phone = (String)bundle.get("phone");
Scanner input = new Scanner(System.in);
System.out.println("号码");
phone = input.nextLine();
for(int i = 0;i<phone.length();i++){
String c = phone.charAt(i)+"";
UiObject phoneNum = new UiObject(new UiSelector().text(c));
phoneNum.click();
sleep(1000);
}
}