当前位置:   article > 正文

Android移动测试入门—— adb 测试环境搭建及常用命令_adb 需要配置jdk么

adb 需要配置jdk么

搭建abd环境

adb 环境搭建主要分为2部分,一是 jdk 环境,二是 Android SDK 环境

安装jdk并配置环境变量

1.从官网下载 jdk 安装包:https://www.oracle.com/java/technologies/java-se-glance.html
-点击 download
在这里插入图片描述
-选择Windows→x64 Installer
在这里插入图片描述

2.双击 exe 安装 jdk,记录安装路径!!!一直点击"下一步",点击”关闭“,就安装结束啦:
在这里插入图片描述
3.配置环境变量:
说明
i. 系统变量设定后,会对这台机器的所有用户生效 ;
ii. 用户变量设定后,只对当前用户有效;
(看自己需要来设定哇~)

  • 新建 JAVA_HOME 变量,填写自己的 jdk 安装路径

  • 新建 CLASSPATH 变量输入 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(直接复制,注意最前面的”."不要漏掉)

在这里插入图片描述

  • 选择 Path →编辑 →新建:
    %JAVA_HOME%\bin
    %JAVA_HOME%\jre\bin
    在这里插入图片描述
    4.打开 cmd 输入 java -version,确认下jdk是不是成功安装并且配置好了
    在这里插入图片描述
    恭喜你,jdk完美安装!

安装 adb 并配置环境

1.下载 Android SDK 官网:http://tools.android-studio.org/index.php/sdk
在这里插入图片描述

2.双击 exe 安装 Android SDK,一样的操作一样的重点,记录下安装路径!!!
在这里插入图片描述在这里插入图片描述
3.安装SDK包
Android SDK Platform-tools 必选,其他看需要
在这里插入图片描述
4.配置环境变量:

  • 新建ANDROID_HOME变量
    值=自己的安装路径

  • 选择 Path →编辑 →新建:
    %ANDROID_HOME%\platform-tools
    %ANDROID_HOME%\tools

打开 cmd 输入adb -version,确认下 adb 是不是成功安装并且配置好了
在这里插入图片描述

常用命令

连接设备

1.打开开发者模式

设置–关于手机–版本信息–多次点击版本号

2.USB 连接移动设备

打开USB调试

3.查看连接设备

adb devices
  • 1

设备串号 device表示连接成功

4.进入手机

adb shell
  • 1

备注:可以使用部分Linux命令

退出连接

exit
  • 1

5.adb push电脑文件上传到手机

adb push 电脑上的文件路径 手机路径
  • 1

6.adb pull 从手机里下载文件到电脑

adb pull 手机路径 电脑路径
  • 1

7.adb install 安装app

adb install 安装包的绝对路径
  • 1

8.查看手机上安装的所有软件(查看包名)

查看所有包(包括系统和第三方)

adb shell pm list packages
  • 1

第三方应用

adb shell pm list packages -3
  • 1

查看系统的包

adb shell pm list packages -s
  • 1

"关键词"查看包

adb shell pm list packages -e "keyword"
  • 1

当前打开的app包名

adb shell dumpsys window | findstr mCurrentFocus
  • 1

9.卸载app

adb shell pm uninstall 包名
  • 1

10.monkey测试

adb shell monkey -p 包名 1000>D:\AAlog.txt
  • 1

作用
主要测试app稳定性、健壮性
模拟用户随机操作,实现对正在开发的应用程序进行压力测试
1000只随机操作1000个事件

如果发现错误,可以使用报告最后的seed进行单一时间的重复操作,以查看这个错误是否可浮现,获取详细报告

adb shell monkey -p com.fanmao.crashtest 1000
// CRASH: com.fanmao.crashtest (pid 9796)
// Short Msg: android.content.ActivityNotFoundException
// Long Msg: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.app.mainactivity2 }
// Build Label: samsung/dream2qltezh/dream2qltechn:7.1/N2G48H/G9550ZHU1AQEE:user/release-keys
// Build Changelist: 700210421
// Build Time: 1619015543000
// android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.app.mainactivity2 }
//      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809)
//      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523)
//      at android.app.Activity.startActivityForResult(Activity.java:4238)
//      at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:675)
//      at android.app.Activity.startActivityForResult(Activity.java:4196)
//      at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:662)
//      at android.app.Activity.startActivity(Activity.java:4535)
//      at android.app.Activity.startActivity(Activity.java:4503)
//      at com.fanmao.crashtest.MainActivity$1.onClick(MainActivity.java:22)
//      at android.view.View.performClick(View.java:5638)
//      at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
//      at android.view.View$PerformClick.run(View.java:22430)
//      at android.os.Handler.handleCallback(Handler.java:751)
//      at android.os.Handler.dispatchMessage(Handler.java:95)
//      at android.os.Looper.loop(Looper.java:154)
//      at android.app.ActivityThread.main(ActivityThread.java:6198)
//      at java.lang.reflect.Method.invoke(Native Method)
//      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
//      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
//
** Monkey aborted due to error.
Events injected: 70## Network stats: elapsed time=796ms (0ms mobile, 0ms wifi, 796ms not connected)
** System appears to have crashed at event 70 of 1000 using seed 1634205140279
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

若发现问题,针对同一seed复现问题

adb shell monkey -p 包名 -s <seedValue> --throttle 500 -v -v 500 >log 绝对路径
  • 1

–throttle 500每两个实践之间的延迟500ms
-v

命令行上的每一个-v都将增加反馈信息的详细级别。 Level0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。 500运行次数

其他参数
–ignore-timeouts 忽略超时错误
–ignore-crashes 忽略crash
–ignore-security-exceptions 忽略许可错误
–monitor-native-crashes 指定是否监视并报告应用程序发生崩溃的本地代码
–pct-touch 20 调整操作触摸事件百分比为20%

	0:触摸事件百分比,即参数--pct-touch
	1:滑动事件百分比,即参数--pct-motion
	2:缩放事件百分比,即参数--pct-pinchzoom
	3:轨迹球事件百分比,即参数--pct-trackball
	4:屏幕旋转事件百分比,即参数--pct-rotation
	5:基本导航事件百分比,即参数--pct-nav
	6:主要导航事件百分比,即参数--pct-majornav
	7:系统事件百分比,即参数--pct-syskeys
	8:Activity启动事件百分比,即参数--pct-appswitch
	9:键盘翻转事件百分比,即参数--pct-flip
	10:其他事件百分比,即参数--pct-anyevent
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在日志中搜索关键字:
1)搜索报告中的关键字“ANR”,看有无应用无响应的事件(Application Not Responding)

2)搜索报告中的关键字“crash”,看有无崩溃的事件

3)搜索报告中的关键字“exception”,看有无其他异常事件。(如果出现空指针, NullPointerException,需格外重视

11.logcat

adb logcat -b events -b radio -b main -b system -b crash -v time > log.txt
  • 1

(1)“-b”:

  • events就是抓取手机的操作事件,做了哪些操作
  • radio主要是和modem相关的,关于通话,短信,网络的bug需要带上radio
  • main和system都是android的系统log
  • crash是手机发生crash时产生的日志。

(2)"-v time"会打印出日志的时间,如果不加就不会显示时间

(3)“log.txt”这个是打印出的log文件名,可以自由更改名称,也可以名称前输入路径,比如保存到桌面:adb logcat -b events -b radio -b main -b system -b crash -v time > C:\Users\alex\Desktop\log.txt

如果直接输入adb logcat会默认包含“-b events -b radio”。
指定app日志:

adb logcat -v time -s app包名:E>d:/1.log
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/287682
推荐阅读
相关标签
  

闽ICP备14008679号