uiautomator 代码记录 :BT接收测试
package rom;
import java.lang.*;
import java.util.Random;
import java.io.File;
import com.android.uiautomator.core.UiDevice;
import com.android.uiautomator.core.UiScrollable;
import com.android.uiautomator.core.UiSelector;
import com.android.uiautomator.core.UiObject;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import android.R.id;
import android.R.string;
import android.graphics.Rect;
import android.graphics.SumPathEffect;
import android.os.RemoteException;
import android.util.Log;
import com.android.uiautomator.core.UiWatcher;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.core.UiDevice;
public class BTtestReceive extends UiAutomatorTestCase{
public int startapp(String componentName){
StringBuffer app = new StringBuffer();
app.append("am start -n");
app.append(componentName);
int ret = 1;
try{
Process process = Runtime.getRuntime().exec(app.toString());
ret = process.waitFor();
}catch(Exception e){
e.printStackTrace();
System.out.println("startapp Exception!!! ");
}
return ret;
}
public void Screenshot(String name) { //截取当前屏幕图片的方法
File file = new File("/mnt/sdcard/Podcasts/log"+name+".png");
UiDevice.getInstance().takeScreenshot(file);
}
public void longclick (UiObject ojb){ //长按方法
try{
Rect ojbValue = ojb.getBounds();
UiDevice.getInstance().swipe(ojbValue.centerX(), ojbValue.centerY(), ojbValue.centerX()+5, ojbValue.centerY()+5, 250);
}catch(UiObjectNotFoundException e ){
e.printStackTrace();
}
}
public void testbtReceive() throws UiObjectNotFoundException,RemoteException{
String btname = "HG11";
UiDevice.getInstance().sleep();
sleep(1000);
UiDevice.getInstance().wakeUp();
sleep(1000);
try{
UiObject Unlocked = new UiObject(new UiSelector().resourceId("com.android.systemui:id/notification_stack_scroller"));
assertTrue("Unlocked fail!...",Unlocked.exists());
Unlocked.swipeUp(25);
sleep(1000);
}catch(UiObjectNotFoundException e1){
e1.printStackTrace();
Log.d("Unlocked", "Exception!!!", e1);
System.out.println("Unlocked Exception!!!");
Screenshot("Unlocked");
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().sleep();
sleep(1000);
UiDevice.getInstance().wakeUp();
sleep(1000);
}
for(int i=0;i<50;i++){
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
startapp("com.android.settings/com.android.settings.Settings");
sleep(1000);
UiObject bt = new UiObject(new UiSelector().text("蓝牙").resourceId("android:id/title"));
assertTrue("bt fail!....",bt.exists());
bt.clickAndWaitForNewWindow();
sleep(1000);
UiObject Pop_ups = new UiObject(new UiSelector().text("要与"+btname+"配对吗?").resourceId("android:id/alertTitle"));
sleep(1000);
do {
sleep(1000);
} while (!Pop_ups.exists());
sleep(1000);
UiObject pair = new UiObject(new UiSelector().text("配对").resourceId("android:id/button1"));
Screenshot("pair_"+i);
pair.clickAndWaitForNewWindow();
sleep(1000);
UiDevice.getInstance().openNotification();
sleep(3000);
UiObject Wait_for_a_file = new UiObject(new UiSelector().text("有人发送文件给您").resourceId("android:id/title"));
do {
sleep(1000);
} while (!Wait_for_a_file.exists());
sleep(1000);
UiObject receive = new UiObject(new UiSelector().text("接受").resourceId("android:id/action0").description("接受"));
assertTrue("receive fail!....", receive.exists());
receive.click();
sleep(1000);
UiDevice.getInstance().openNotification();
sleep(1000);
Screenshot("Share_Bluetooth_"+i);
sleep(1000);
UiObject Share_progress1 = new UiObject(new UiSelector().resourceId("android:id/progress")
.className("android.widget.ProgressBar"));
for(int j=0;j<5;j++){ //判断蓝牙文件是否传输完毕
do {
sleep(1000);
} while (Share_progress1.exists());
}
Screenshot("Share_progress_End_"+i);
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
UiDevice.getInstance().pressBack();
sleep(1000);
startapp("com.android.settings/com.android.settings.Settings"); //再次进入设置
sleep(1000);
UiObject bt2 = new UiObject(new UiSelector().text("蓝牙").resourceId("android:id/title")); //点击蓝牙
assertTrue("bt fail!....",bt2.exists());
bt2.clickAndWaitForNewWindow();
UiObject Bluetooth_settings = new UiObject(new UiSelector().description("设备设置") //点击连接的蓝牙设置
.resourceId("com.android.settings:id/deviceDetails"));
assertTrue("Bluetooth_settings fail!...",Bluetooth_settings.exists());
Bluetooth_settings.clickAndWaitForNewWindow();
sleep(1000);
UiObject Cancel_save = new UiObject(new UiSelector().text("取消保存").resourceId("android:id/button2")); //取消已经连接的蓝牙
Cancel_save.clickAndWaitForNewWindow();
sleep(1000);
Screenshot("Cancel_save_"+i);
sleep(1000);
}
}
}
uiautomator 代码记录 :BT接收测试的更多相关文章
- uiautomator 代码记录 : BT发送测试
package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...
- uiautomator 代码记录 : 随机发送短信
package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...
- UiAutomator 代码记录: 随机创建新联系人
package lecturer; import java.lang.*; import java.nio.Buffer; import java.util.Random; import java.i ...
- UiAutomator 代码记录 : 遍历桌面
package test_one; import java.lang.*; import java.io.File; import com.android.uiautomator.core.UiDev ...
- MVVM 代码记录
一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- 记录一下Junit测试MongoDB,获取MongoTemplate
只是自己记录一下,测试MongoDB帮助类时,没有配置文件的测试 public class HelperTest { MongoTemplate template; @Before public vo ...
- Java8 Stream代码详解+BenchMark测试
Java8 Stream基础.深入.测试 1.基本介绍 1.创建方式 1.Array的Stream创建 1.直接创建 // main Stream stream = Stream.of("a ...
- python UI自动化实战记录五:测试页面2 pageobject
该部分记录测试页面2-StrategyPage,所有页面2上的元素定位.操作.获取属性等方法都写在该类中. 1 页面2继承自BasePage: 2 页面2第一部分写的是所有的定位器 3 页面2第二部分 ...
随机推荐
- VB Byte数组转字符串问题
在c#中,byte转换为字符串的过程中,如果byte的值为0,则转换成字符串时变为’\0’字符,’\0’字符在C#中意味着字符串结束,如果后面再有字符,则读取字符串的程序也不能读取和显示出来. 但是在 ...
- mysql二进制日志详解
一.什么是二进制日志 二进制日志主要记录mysql数据库的变化,二进制日志包含所有更新了数据或者潜在更新了数据(如没有匹配到任何行的delete语句),语句以时间的形式保存,描述了数据的更改.二进制日 ...
- C# MD5位加密
/// <summary> /// 方法一:通过使用 new 运算符创建对象 /// </summary> /// <param name="strSource ...
- Linux shell脚本读取用户输入的参数
新建一个test.sh文件 #!/bin/sh echo "1 : For Test" echo "2 : For nohup &" whiletrue ...
- Logback 入门和配置说明
Logback 是 Log4j 的改进版本,而且原生支持 SLF4J,Logback 的初始化步骤如下: 在类路径中查找 logback-test.xml 配置文件 在类路径中查找 logback.g ...
- 安装ruby&gem
#安装yaml#------------------------------------------------------- cd /opt tar zxf yaml-0.1.7.tar.gz ./ ...
- Maya中输出nuke脚本的方法
因项目需要,三维部门跟踪组动画组都需要一个能够快速输出nuke预合成工程的脚本.脚本已经写完,源码不便于放出来,写一个大致思路吧. 我首先分析了nuke工程,内部包含了哪些节点,这些节点有哪些属性需要 ...
- STM32 printf函数
/******************** (C) COPYRIGHT 2012 WildFire Team *************************** * 文件名 :usart1.c * ...
- Azure 认知服务 (3) 计算机视觉API - 分析图像,使用C#代码
<Windows Azure Platform 系列文章目录> 在上一节中Azure 认知服务 (2) 计算机视觉API - 分析图像,笔者介绍了如何使用API测试控制台进行调试. 本章将 ...
- g++编译后中文显示乱码解决方案(c++)
g++编译后中文显示乱码解决方案 环境:Windows 10 专业版 GCC版本:5.3.0 测试代码: 1 #include <iostream> 2 using namespace ...