概要
—报告简介及查看
—各种状态报告及其定位问题
—输出信息到报告
—传入参数控制脚本
报告简介和查看
报告信息说明
—INSTRUMENTATION_STATUS_CODE: -2 //-2断言失败返回的
—Time: 1.539 //总共运行时间
—Failures: 1, //断言失败1条
—Errors: 0 //脚本失败0条
—执行当前类下的所有用例:testName 不赋值,放空!
—Test results for WatcherResultPrinter=.F….E //检出是断言错和脚本错误
输出信息到报告
1.初始setUp和tearDown
setUp(计划) //用例运行前执行
tearDown(拆卸) //用例运行后执行
2.输出信息使用API说明
1)Boundle
2)getAutomationSupport().sendStatus(int ,Bundle); //发送状态函数
ps:Boundle类的数据类型:很多个 Key = value
运行顺序: setUp—>testCase—>tearDown
演示代码:
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
System.out.println("setUp:用例开始执行了***************");
//创建bundle类 存储新
Bundle bundle = new Bundle();
/*putString 保存键值对的方式
* */
bundle.putString("*key1*", "*value1*");
bundle.putString("*key2*", "*value2*");
bundle.putString("*key3*", "*value3*");
bundle.putString("*key4*", "*value4*");
bundle.putString("*key5*", "*value5*");
/* 调用发送状态消息函数
* * 注:int 是状态吗,系统的状态码有 -1,0,1,2,-2
* int的值不能是上述这些
* */
getAutomationSupport().sendStatus(10, bundle);
}
public void testCase(){
System.out.println("testCase:用例开始执行了***************");
//创建bundle类 存储新
Bundle bundle = new Bundle();
/*putString 保存键值对的方式
* 注:int 是状态吗,系统的状态码有 -1,0,1,2,-2
* int的值不能是上述这些
* */
bundle.putString("+key1+", "+value1+");
bundle.putString("+key2+", "+value2+");
bundle.putString("+key3+", "+value3+");
bundle.putString("+key4+", "+value4+");
bundle.putString("+key5+", "+value5+");
//调用发送状态消息函数
getAutomationSupport().sendStatus(11, bundle);
}
public void testCase(){
System.out.println("testCase:用例开始执行了***************");
//创建bundle类 存储新
Bundle bundle = new Bundle();
/*putString 保存键值对的方式
* 注:int 是状态吗,系统的状态码有 -1,0,1,2,-2
* int的值不能是上述这些
* */
bundle.putString("+key1+", "+value1+");
bundle.putString("+key2+", "+value2+");
bundle.putString("+key3+", "+value3+");
bundle.putString("+key4+", "+value4+");
bundle.putString("+key5+", "+value5+");
//调用发送状态消息函数
getAutomationSupport().sendStatus(11, bundle);
}
传入参数控制脚本
演示代码
/*
* 1)通过-e 传入数据到用例中,如:拨打一个指定电话
* */
public void testCall() throws UiObjectNotFoundException{
//初始化用例环境
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
//获取到电话对象
UiObject call = new UiObject(new UiSelector().
text("电话"));
//获取到拨号盘对象
UiObject callTray = new UiObject(new UiSelector().
resourceId("com.android.dialer:id/floating_action_button"));
//点击进入电话模式
call.clickAndWaitForNewWindow();
//点击进入打开拨号盘
callTray.clickAndWaitForNewWindow();
//从命令行取参数
Bundle params = getParams();
String phone = (String)params.get("phone"); // -e key value -e phone 10086
// 拨号
for(int i=0;i
测试代码(dos下)
C:\Users\Administrator>adb shell uiautomator runtest Demo1.jar --nohup -c com.re
port.Demo#testClear -e ctrl 10086
/*
* * 2)通过-e 传入整体控制参数控制脚本,如:清除应用数据
* */
public void testClear() throws UiObjectNotFoundException{
//初始化用例环境
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressBack();
UiDevice.getInstance().pressHome();
//获得控制台输入内容
Bundle b = getParams();
//
String ctrl =(String)b.get("ctrl");
//Boolean 转换成boolean值
boolean isClear = Boolean.valueOf(ctrl);
if(isClear){
//执行清理
//获取应用对象
UiObject apply = new UiObject(new UiSelector().
description("应用"));
//获取设置对象设置
UiObject set = new UiObject(new UiSelector().
text("设置"));
//获取应用对象
UiScrollable d_apply = new UiScrollable(new UiSelector()
.resourceId("com.android.settings:id/dashboard_container"));//父类
UiSelector d_apply1 = new UiSelector().
className("android.widget.TextView");//子类
String text ="应用";
UiObject c_text = d_apply.getChildByText(d_apply1, text,true);//要查找的元素
//获取百度浏览器对象
UiObject baidu = new UiObject(new UiSelector().
text("百度浏览器"));
//获取存储对象
UiObject memonry = new UiObject(new UiSelector().
text("存储"));
//获取清除缓存对象
UiObject clear = new UiObject(new UiSelector().
text("清除缓存"));
//依次点击操作 注意延时
apply.clickAndWaitForNewWindow();
set.clickAndWaitForNewWindow();
c_text.clickAndWaitForNewWindow();
baidu.clickAndWaitForNewWindow();
memonry.clickAndWaitForNewWindow();
clear.clickAndWaitForNewWindow();
}else{
//不执行清理
System.out.println("不执行清理++++++++++");
}
}
测试代码(dos下)
C:\Users\Administrator>adb shell uiautomator runtest Demo1.jar --nohup -c com.re
port.Demo#testClear -e ctrl true