文档章节

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

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

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.3K
0
开发者眼中最好的 22 款 GUI 测试工具

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

oschina
2014/06/06
23.4K
16
「转载」换个角度看手工测试与自动化测试

「转载」换个角度看手工测试与自动化测试 之前,自己也开发过自动化的架构,也有用过testbird这样的自动化测试服务,并做过长期的手工测试,对两者有深刻的思考。简单的总结,自动化完成不了...

kyzg2211
2016/10/20
206
0
UI自动化测试的正确打开方式

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

白一客
2017/04/17
154
0
Watij - 面向 Web 的自动化测试工具

简介: 随着应用程序渐渐脱离独立的宿主模型并进入到云中,可靠性和可预测性的测试变得更加重要。在云环境中,有许多 因素是我们无法控制的,因此编写健壮的、经过测试的代码比以往更加迫切。...

IBMdW
2011/11/10
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

7月13日任务 for、while、break跳出、ontinue结束、exit退出

20.10 for循环 语法:for 变量名 in 条件; do …; done 案例1:计算1到100的和 #!/bin/bashsum=0for i in `seq 1 100`do    sum=$[$sum+$i]    echo $idoneecho $sum 案例2...

吕湘颖
38分钟前
0
0
qemu增量镜像的好处

可以快速恢复,相当于快照的功能。

simpower
46分钟前
0
0
Python3_Appium_QQ 实战

Python3_Appium实战 -海盐 APPium移动自动化测试 样例中 测试的 app 使用的是 QQ; Appium介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合...

海盐宝宝
46分钟前
0
0
内网穿透利器-ngrok的图文安装

使用场景: 在做微信开发或是调银行或支付宝等支付系统的时候,本地想联调但是对方需要可以访问的域名或是外网IP才可以。但是,在本地如果不在路由器上做映射或是公司没有固定的外网IP。这种...

中凯_凯哥java
51分钟前
4
1
归约与分组 - 读《Java 8实战》

区分Collection,Collector和collect 代码中用到的类与方法用红框标出,可从git库中查看 收集器用作高级归约 // 按货币对交易进行分组Map<Currency, List<Transaction>> currencyListMap = g...

yysue
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部