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接收测试的更多相关文章

  1. uiautomator 代码记录 : BT发送测试

    package rom; import java.lang.*; import java.util.Random; import java.io.File; import com.android.ui ...

  2. uiautomator 代码记录 : 随机发送短信

    package sms_test; import java.lang.*; import java.util.Random; import javax.microedition.khronos.egl ...

  3. UiAutomator 代码记录: 随机创建新联系人

    package lecturer; import java.lang.*; import java.nio.Buffer; import java.util.Random; import java.i ...

  4. UiAutomator 代码记录 : 遍历桌面

    package test_one; import java.lang.*; import java.io.File; import com.android.uiautomator.core.UiDev ...

  5. MVVM 代码记录

      一.XML <Page x:Class="MVVM.MainPage" xmlns="http://schemas.microsoft.com/winfx/20 ...

  6. Java 中静态代码块初始化问题测试

    Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...

  7. 记录一下Junit测试MongoDB,获取MongoTemplate

    只是自己记录一下,测试MongoDB帮助类时,没有配置文件的测试 public class HelperTest { MongoTemplate template; @Before public vo ...

  8. Java8 Stream代码详解+BenchMark测试

    Java8 Stream基础.深入.测试 1.基本介绍 1.创建方式 1.Array的Stream创建 1.直接创建 // main Stream stream = Stream.of("a ...

  9. python UI自动化实战记录五:测试页面2 pageobject

    该部分记录测试页面2-StrategyPage,所有页面2上的元素定位.操作.获取属性等方法都写在该类中. 1 页面2继承自BasePage: 2 页面2第一部分写的是所有的定位器 3 页面2第二部分 ...

随机推荐

  1. mac系统 Xcode打包ionic项目(iOS)

    一.环境搭建 1. 安装Node.js,使用node -v 查询版本号: 2. 安装ionic: $ sudo npm install -g cordova(可以指定版本,如cordova@7.0.1 ...

  2. dom响应事件

    DOMsubtreeModified.DOMNodeInserted.DOMNodeRemoved.DOMAttrModified.DOMCharacterDataModified 当底层DOM结构发 ...

  3. linux svn客户端通过 https访问windows VisualSVN Server Manager

    1)需求: 已经在阿里云windwos系统 下面安装了VisualSVN Server Manager 做为svn服务器: 现在要在腾讯云源码安装新版本客户端 2)开始源码编译安装TortoiseSV ...

  4. 黄聪:AngularJS如何在filter中相互调用filter

    调用方式如下: app.filter('filter2', function( $filter ) { return function( input) { return $filter('filter ...

  5. 黄聪:微信公众平台开发OAuth2.0网页授权(转)

    微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息 作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使 ...

  6. C++11--时钟和计时器<chrono>

    /* 介绍<chrono> -- 一个精确中立的时间和日期库 * 时钟: * * std::chrono::system_clock: 依据系统的当前时间 (不稳定) * std::chr ...

  7. Android开发之环境配置篇

    Android环境配置: 一.JDK(不用安装) 1.拷贝 D:\Java\jdk1.8.0_91 文件内容 2. 安卓ADT ADT(Android Development Tools):安装ADT ...

  8. bzoj5010: [Fjoi2017]矩阵填数

    Description 给定一个 h*w 的矩阵,矩阵的行编号从上到下依次为 1..h,列编号从左到右依次1..w.在这个矩阵中你需要在每 个格子中填入 1..m 中的某个数.给这个矩阵填数的时候有一 ...

  9. java设计模式-State模式

    1.背景: MM的状态是非常不固定的,说不定刚才还非常高兴,没准一会就生气了.就跟六月的天似的,说变就变. 封装一下MM的状态:smile,cry,say:MM的状态决定了这些方法该怎么执行.   2 ...

  10. springboot(整合事务和分布式事务)

    springboot +mybatis 单数据源,事务 事务:简单理解指的是一组操作,里面包含许多个单一的逻辑,只要有一个逻辑没有执行成功 ,那么都算失败.所有的数据都回归到最初的状态(回滚) 代码实 ...