测试相关adb命令小汇总

这篇文章是小白掌握adb基础命令的小汇总~

后续还会补充,文章相关adb暂时只应用于日常的测试工作中

在我目前的工作中,adb主要用于帮助我完成自动化的实现(后续会讲到基于adb+python的一个组合应用),以及完成一个安卓的简单的性能测试-monkey

一、adb简介

adb的全称为Android Debug Bridge,就是起到调试桥的作用。借助adb工具,我们可以手机管理设备或模拟器的状态。
还可以进行很多手机操作,如安装软件、系统升级、运行shell命令等等。其实简而言说,adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。 

它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互。包括三大内容:电脑上运行的客户端;在你用于开发的机器上作为后台进程运行的服务器;一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon);

ADB命令的主要功能:

  1. 运行Android设备的shell(命令行)
  2. 管理模拟器或Android设备的端口映射
  3. 安装/卸载APK程序
  4. 计算机和Android设备之间上传/下载文件

好啦~废话不多说,接下来我主要从我工作的两方面来介绍我常用的adb命令~

二、针对自动化测试

adb在移动端自动化中起了一个非常大的桥梁(当然啦,目前只支持安卓哈哈哈)

如果你现在使用的是基于adb+appium的框架来写的一个自动化,那么你需要掌握以下的adb命令:

1. 很多小伙伴在实践过程会发现Android9.0以上的系统,uiautomatorview会报错,检查发现连接也没问题,下载的adb也没有问题,就是会报错很苦恼。这是因为Android 9.0以上,不能直接通过自带的uiautomatorview上的按钮直接获取页面以及页面元素,此时,你需要在终端敲下4行命令,分别获取以及下载页面及页面元素

  • adb shell uiautomator dump /sdcard/app.uix(这一步操作是获取当前真机的页面元素)
  • 完成这步操作后需要在D盘新建一个app.uix的文件,记住后缀是uix哦!!!
  • adb pull /sdcard/app.uix D:/app.uix(这一步操作是将前一步获取到的元素存在这个文件下)

  • adb shell screencap -p /sdcard/app.png(这一步是获取当前真机的页面)
  • 完成这步操作后需要在D盘新建一个app.png的文件
  • adb pull /sdcard/app.png D:/app.png(这一步操作是将前一步获取到的页面存在这个文件下)

  • 之后再打开uiautomatorview导入这两个文件就可以成功获取到页面以及元素啦

比较麻烦的就是每次换一个页面就需要重复上诉操作,这里小编建议大家可以把以上的命令写进一个.bat文件,直接进入视图,执行bat就可以啦~(感兴趣的小伙伴可以百度下如何制作bat,小编有空也会出一个)

2. 完成页面的元素获取之后,我们就要开始自动化之路啦~

adb基于appium的话需要用到的其实就是关于获取设备的一些操作

首先我们需要获取到设备的识别码,让我们的appium找到设备并执行代码:

adb devices

框起来的就是设备号了,获取到了设备号接下来我们就需要获取需要执行代码的应用了(获取包名以及活动包名)

adb shell dumpsys window w|findstr name=

获取到了包名后,基本上,adb的应用在这一块就差不多了,后续需要用上的我还会再补充~

三、针对monkey

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

3.1 进入Monkey

  •  首先检测android真机/模拟器是否已经连接:adb devices
  • 然后选取一个设备来进入shell:adb -s XX设备 shell,当然如果你只有一个设备,可以写adb shell

3.2 使用monkey进行参数的步骤

  • 使用模拟器或者真机,注意要在DOS里面使用adb devices验证
  • 找到APP应用程序的包名,也就是PackageName
  • 写出Monkey命令进行测试:adb shell monkey -p 应用软件的包名 -v 操作数    或进入shell里执行命令:monkey -p 应用软件的包名 -v 操作数

3.3 PackageName怎么获取

上诉步骤有教大家怎么获取包名哦~

3.4 monkey的参数

   1.  -p参数用于约束限制

//下面的命令表示Monkey程序对包名这个程序模拟100次随机用户事件
adb shell monkey -p 包名 100

//下面的命令表示Monkey程序对包名1,包名2,包名3模拟100次随机用户事件
adb shell monkey -p 包名1 –p 包名2  -p 包名3 100

 //下面的命令表示Monkey程序手机内所有的程序模拟100次随机用户事件
adb shell monkey 100

   2.  -v参数要定义执行monkey的时候的日志显示详情的

 -v:一级日志(默认的,显示的日志内容最少)

 -v -v:二级日志,会显示随机事件的比例以及发送事件的顺序等

 -v -v -v:三级日志,最详细

命令如:adb shell monkey -p com.tencent.mm -v -v 100

命令后面加上 > 路径,可以将log导出到本地查看,例:adb shell monkey -p x -v -v -v y > D:/log.txt

3.    -s [-s SEED]

在多次执行monkey的时候,就算指令完全一样,发出的随机事件及顺序不一样 在每次执行的时候,可以都要给相同的一个种子数(随机的数字),发出的随机事件及顺序就一样 主要使用的场景:复现之前monkey执行时候出现的问题

adb shell monkey -p com.tencent.mm -s 1588 -v -v 10
adb shell monkey -p com.tencent.mm -s 1588 -v -v 10
adb shell monkey -p com.tencent.mm -s 158 -v -v 10

4 .  --throttle [--throttle MILLISEC] (熟练掌握)

在每次事件发送的时间间隔,以一定频率发送事件

adb shell monkey -p com.tencent.mm -s 1588 --throttle 1000 -v -v 100
 

5. [--pct-touch PERCENT] 注意:PERCENT表示占总事件的百分之多少

是调整发送的触摸事件的比例功能,点击一个位置,再松开

  • (action_down/action_up)

touch后面的100,表示100次操作都是触摸事件

  • adb shell monkey -p com.tencent.mm -s 158 --throttle 100 --pct-touch 100 -v -v 1000

--pct-trackball 30 表示30%的轨迹球事件

  • adb shell monkey -p com.tmall.wireless -v -v -pct-touch 50 -pct-trackball 30 -throttle 300 100

用monkey测试小米商城的这个包触摸操作百分之50,轨迹球操作百分之30,其它操作百分之20,总共进行100次随机点击,事件之间间隔300ms

  • adb shell monkey -p com.xiaomi.shop --throttle 300 -pct-touch 50 --pct-trackball 30 -v 100

6.[--pct-motion PERCENT] 注意:PERCENT表示占总事件的百分之多少

是调整发送的拖动/移动事件的比例功能,点击一个位置,拖到另一个位置,再松开(action_down/ACTION_MOVE/action_up)

adb shell monkey -p com.tencent.mm -s 158 --throttle 100 --pct-motion  100 -v -v 10

7.[--pct-syskeys PERCENT]注意:PERCENT表示占总事件的百分之多少

模拟设备的电话、主页、音量加、减等操作

adb shell monkey -p com.tencent.mm -s 158 --throttle 100 --pct-syskeys  100 -v -v 10

8.--pct-appswitch PERCENT  注意:PERCENT表示占总事件的百分之多少

覆盖你指定包(app)activity,切换不同的页面

adb shell monkey -p com.tencent.mm -s 158 --throttle 100 --pct-appswitch  80 -v -v 100

9. ignore

[–ignore-crashes]

  • 忽略monkey执行过程中crash这种问题,继续执行monkey
  • adb shell monkey -p com.tencent.mm -s 158 --throttle 100 --pct-syskeys 100  --ignore-crashes -v -v 100

[–ignore-timeouts]

作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

[–ignore-security-exception]

作用:通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值