文档章节

简单的自动化测试小程序(二)

shaula
 shaula
发布于 2016/05/20 16:17
字数 602
阅读 386
收藏 7

2,如何在你的应用中执行ADB命令?

    1)代码实现:          

    execShellCmd("input tap 345 1236");
    private void execShellCmd(String cmd) {
    try {
        Process process = Runtime.getRuntime().exec("sh");
        OutputStream outputStream = process.getOutputStream();
        DataOutputStream dataOutputStream = new DataOutputStream(
                outputStream);
        dataOutputStream.writeBytes(cmd);
        dataOutputStream.flush();
        dataOutputStream.close();
        outputStream.close();
    } catch (Throwable t) {
        t.printStackTrace();
    }

     2)平台签名:

        如果不签名的话,应用执行到这里是没有效果的。

        签名需要三个文件:platform.x509pem和platform.pk8在源码\build\target\product\security目录下。signapk.jar在\out\host\linux-x86\framework目录下。

        拷贝出来之后,将未签名的apk放到相同的文件夹下,执行如下命令:

java -jar signapk.jar platform.x509.pem platform.pk8 需要签名apk 签名完成apk

 

      3)ADB命令扩展:

        上篇介绍的adb命令比较局限,仅仅触屏、按键。本小结强化一下。

        am :

        am start    am startservice        am stopservice       am force-stop  am kill am kill-all

       am broadcast     am instrument  am profile start  am profile stop am dumpheap    

        am set-debug-app  am clear-debug-app     am monitor    am hang      am restart

       am idle-maintenance    am screen-compat       am to-uri        am to-intent-uri 

       am switch-user  am stop-user am stack create  am stack movetask    am stack        resize     am stack boxes     am stack box 

        启应用,启服务,发广播~功能好强,但是我就讲一个例子:

        am 启动相机!x度一搜命令就出来了。

        am start -n com.android.camera/com.android.camera.Camera

        也许这条指令在你的设备上能启动相机,但是在我的设备上执行之后,啥都没启动~why?难不成被骗了?查看am后面的参数包star -n 包名/包名.活动名。看看上面的参数,没问题啊。再拿一个已知包名和活动名的应用验证了一下,确实能起来。这样问题就能确定了,是我设备上关于相机的包名或者是活动名字不对。

        接下来是怎么查看到正确的包名和活动名字,使用如下命令,dumpsys usagestats 是用来记录打开了程序的哪些activity次数和时间一类信息的,所以包名活动名什么的一览无遗。        

            dumpsys usagestats | grep cam

 

        将所有包含cam的信息都显示出来

        com.android.camera2: 32 times, 8695 ms

        com.android.camera.CameraActivity: 32 starts

 

          如此一来就确认是包名活动名都不对,所以正确的命令应该是

        am start -n   com.android.camera2/com.android.camera.CameraActivity

                                                                                    ----to be continued

© 著作权归作者所有

共有 人打赏支持
shaula
粉丝 0
博文 4
码字总数 2755
作品 0
朝阳
程序员
私信 提问
禅道自动化测试框架1.2发布

大家好,禅道自动化测试框架1.2版本发布了。该版本增加了多语言的支持、windows下面增加了ruby, lua, perl, python等常见脚本的支持,并调整了临时目录的位置和日志的格式。 一、关于ZenTaoA...

炒蚕豆吃蹦豆
2013/05/28
3.4K
0
开发者眼中最好的 22 款 GUI 测试工具

1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面。 它提供事件自动生成和验证Java GUI组件,使您能够轻松地启动,探索和控制应用程...

oschina
2014/06/06
27.9K
16
UI自动化测试的正确打开方式

自动化好像是测试行业永恒不变的热点话题,同时也是测试行业争议最大的话题。不知道现在还有多少言论说自动化没有用的,也有不少人在争论自动化的价值和作用,但其实自动化在各行各业都已经如...

白一客
2017/04/17
154
0
Android自动化测试之自动化测试基本原理(一)

手机自动化测试工具基本原理 一、首先说说手机自动化测试的原理 1、手机自动化测试的原理为PC上一个控制端(测试工具)与手机上的一个agent端,通过串口、USB或者无线方式将PC与手机终端相连...

Eric
2015/09/21
131
0
OHSCE_V0.1.20 Alpha 发布,高可靠性的PHP通信框架

OHSCE-Open HI-REL Signal Communication Engine是一款高可靠性跨平台的PHP通信框架,Windows友好且同时支持Linux和OS X。对TCP、UDP、ICMP、RS232/485通信、简单内存通信与数据暂存,可轻松...

随风星海
2016/09/08
558
2

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部