Android移动测试入门—— adb 测试环境搭建及常用命令

编程入门 行业动态 更新时间:2024-10-19 22:26:51

Android移动<a href=https://www.elefans.com/category/jswz/34/1771117.html style=测试入门—— adb 测试环境搭建及常用命令"/>

Android移动测试入门—— adb 测试环境搭建及常用命令

目录

  • 搭建abd环境
    • 安装jdk并配置环境变量
    • 安装 adb 并配置环境
  • 常用命令
    • 连接设备
      • 1.打开开发者模式
      • 2.USB 连接移动设备
      • 3.查看连接设备
      • 4.进入手机
      • 5.adb push电脑文件上传到手机
      • 6.adb pull 从手机里下载文件到电脑
      • 7.adb install 安装app
      • 8.查看手机上安装的所有软件(查看包名)
      • 9.卸载app
      • 10.monkey测试
      • 11.logcat

搭建abd环境

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

安装jdk并配置环境变量

1.从官网下载 jdk 安装包:.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 官网:.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

设备串号 device表示连接成功

4.进入手机

adb shell

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

退出连接

exit

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

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

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

adb pull 手机路径 电脑路径

7.adb install 安装app

adb install 安装包的绝对路径

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

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

adb shell pm list packages

第三方应用

adb shell pm list packages -3

查看系统的包

adb shell pm list packages -s

"关键词"查看包

adb shell pm list packages -e "keyword"

当前打开的app包名

adb shell dumpsys window | findstr mCurrentFocus

9.卸载app

adb shell pm uninstall 包名

10.monkey测试

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

作用
主要测试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

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

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

–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-touch1:滑动事件百分比,即参数--pct-motion2:缩放事件百分比,即参数--pct-pinchzoom3:轨迹球事件百分比,即参数--pct-trackball4:屏幕旋转事件百分比,即参数--pct-rotation5:基本导航事件百分比,即参数--pct-nav6:主要导航事件百分比,即参数--pct-majornav7:系统事件百分比,即参数--pct-syskeys8:Activity启动事件百分比,即参数--pct-appswitch9:键盘翻转事件百分比,即参数--pct-flip10:其他事件百分比,即参数--pct-anyevent

在日志中搜索关键字:
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)“-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

更多推荐

Android移动测试入门—— adb 测试环境搭建及常用命令

本文发布于:2024-03-08 19:13:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721989.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:测试   入门   环境   常用命令   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!