case解释

首先要了解进入uiwatcher方法中的机制,是在你某个控件找不到的情况下会进入。但是你得保证进入以后处理完来电界面以后,这条case得保证正确,那么说明回来以后这个控件要能找到。刚开始的时候,我认为来电后,点击接听,会出现通话画面,这个时候我们来判断该界面上的某一个控件是否存在,这样我们就能保证这条case执行完毕了。但是实验后,是不可以的。uiautomator只会在开始的界面上寻找,像通话界面它只会认为它是个弹出框。所以它会认为case执行失败。

所以后来我想到的解决方案是首先在主页面上找一个控件,点击后是没反应的,这样我就循环去点击。设定一个超时时间和一个标志位flag,让case一直等待着。当来电界面触发后,会进入uiwatcher后,处理完来电界面后,将标志flag设置为false。这样回来后这个控件仍然存在,但是这个时候flag已经为false。所以就不会再循环点击主界面上的控件了。case也会被认为是执行成功了,当不再进入循环后,我们判断一下flag的值。如果为true。说明没有被改变,那么也就没有接收到来电的界面。这个时候也应该判断为case失败。

执行case后的输出

[exec] INSTRUMENTATION_STATUS: numtests=1
     [exec] INSTRUMENTATION_STATUS: stream=
     [exec] com.sprd.test.uiautomator.call.InCallTest:
     [exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
     [exec] INSTRUMENTATION_STATUS: test=test_Call
     [exec] INSTRUMENTATION_STATUS: class="com".sprd.test.uiautomator.call.InCallTest
     [exec] INSTRUMENTATION_STATUS: current=1
     [exec] INSTRUMENTATION_STATUS_CODE: 1
     [exec] waiting for incoming
     [exec] you have a call
     [exec] INSTRUMENTATION_STATUS: numtests=1
     [exec] INSTRUMENTATION_STATUS: stream=.
     [exec] INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
     [exec] INSTRUMENTATION_STATUS: test=test_Call
     [exec] INSTRUMENTATION_STATUS: class="com".sprd.test.uiautomator.call.InCallTest
     [exec] INSTRUMENTATION_STATUS: current=1
     [exec] INSTRUMENTATION_STATUS_CODE: 0
     [exec] INSTRUMENTATION_STATUS: stream=
     [exec] Test results for WatcherResultPrinter=.
     [exec] Time: 17.053
     [exec] OK (1 test)
     [exec] INSTRUMENTATION_STATUS_CODE: -1
BUILD SUCCESSFUL

后续的扩展

既然能监听到来电,那么下一步要实现控制2台机器实现A给B打电话的功能。这个要用到框架啦。

老李分享:接电话之uiautomator 2的更多相关文章

  1. 老李分享:接电话扩展之uiautomator 1

    老李分享:接电话扩展之uiautomator   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...

  2. 老李分享:接电话之uiautomator 1

    老李分享:接电话之uiautomator   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9 ...

  3. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

  4. 老李分享:持续集成学好jenkins之内置命令

    老李分享:持续集成学好jenkins之内置命令   Jenkins命令调用方式:调用Jenkins命令设置job的描述信息. $JAVA_BIN-jar "$JENKINS_CLI_JAR& ...

  5. 老李分享:持续集成学好jenkins之安装

    老李分享:持续集成学好jenkins之安装   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  6. 老李分享:持续集成学好jenkins之解答疑问

    老李分享:持续集成学好jenkins之解答疑问   poptest(www.poptest.cn)在培训的过程中使用jenkins搭建持续集成环境,让学员真正交流持续集成到底是什么,怎么去做的. Je ...

  7. 老李分享:持续集成学好jenkins之Git和Maven配置

    老李分享:持续集成学好jenkins之Git和Maven配置   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣 ...

  8. 老李分享:https协议

    老李分享:https协议   最近我们看到很多站点使用 HTTPS 协议提供网页服务.通常情况下我们都是在一些包含机密信息的站点像银行看到 HTTPS 协议. 如果你访问 google,查看一下地址栏 ...

  9. 老李分享:webservice是什么?

    老李分享:webservice是什么?   前言 Web Services 是 Web 应用出于和其他 Web 应用以交互数据为目的的开放式标准(XML.SOAP.HTTP 等).Web Servic ...

  10. 老李分享: JSON

    老李分享: JSON    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478, ...

随机推荐

  1. [MongoDB] - mongod.exe参数详解

    mongod.exe是启动mongodb的命令,我们可以通过mongod --help来查看帮助文档.下面是各个参数的对应中文解释.<基于Mongo3.0.5> 通用参数选项 -h/--h ...

  2. 如何通过注解Bean类来封装SQL插入语句

    整体思路是酱紫的: 给bean上注解说明该bean对应着数据库中哪张表,给每个bean的属性都注解说明各自对应着这张表的哪个字段. 通过类反射获取表名,通过逐个反射每个属性的getter方法,获取注解 ...

  3. angular : $eval & $timeout

    $digest: function() { var watch, value, last, watchers, length, dirty, ttl = TTL, next, current, tar ...

  4. angular : $location & $state(UI router)的关系

    次序:angular 的 location会先跑 $rootScope.$on("$locationChangeStart", function (scope, newUrl, o ...

  5. 每天一个Linux命令(13)--less命令

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是Linux正统馋看文件内容的工具,功能极其强大.less 的用法比起  more 更加有弹性.  在 more 的时候,我们没有办法向前面 ...

  6. MySQL索引的使用方式

    一,create CREATE INDEX可对表增加普通索引或UNIQUE索引. CREATE INDEX index_name ON table_name (column_list) CREATE ...

  7. 模仿Wireshark网络抓包工具实现---c++

    最近在用Wireshark抓包工具的时候,老感觉这东西用起来很简单,功能强大,所以想了解他的实现原理,我就自己好奇写了一个实现基本功能的demo吧. 其实叫抓包工具,其实就是抓取流经自己网卡的所有ip ...

  8. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  9. Broken pipe错误终极解释

    叙述 想必或多或少在Java的服务器都会遇到过这种异常,如下图        由于Java偏上层,日常开发接触系统底层的机会偏少,要搞清楚什么原因导致的这种异常,肯定是先要百度google一番. 网络 ...

  10. okhttp +fastJson 在UI层的回调封装

    一直使用OkHttp 经常烦人的地方是回调方法  数据解析后必须通过handler 在主线程做操作 网上找了很多资料 发现有些都是基于Gson做的解析 fastJson 在封装时 泛型传入会有很多不方 ...