app测试(手机自动化测试)----(含adb命令,monkey命令)

【持续更新中】

1.环境搭建:

(1). 安装 jdk1.8 【测试 java -version】 【appium 运行需要】

(2). 安装 sdk 【appium 运行需要 】【不要写中文路径,不要带空格或特殊字符的路径】

(3). 配置sdk环境变量

① 系统变量添加ANDROID_HOME,值为D:\Android\android-sdk

app测试(手机自动化测试)----(含adb命令,monkey命令)_第1张图片

② 在path里添加Android SDK环境变量

(注意变量之间用 ; 分割%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\29.0.3

app测试(手机自动化测试)----(含adb命令,monkey命令)_第2张图片

 4.安装模拟器(夜神,mumu)或者用数据线连接真机。在设置中找到开发者选项,开启。

app测试(手机自动化测试)----(含adb命令,monkey命令)_第3张图片

5. 通过 adb devices 命令能找到设备。

adb connect 127.0.0.1:7555   #后面ip是mumu模拟器的ip
adb start-server      #开启服务
adb devices    #展示所有可用的设备
adb kill-server  #停止服务
  

其他的adb命令

adb version  #查看 adb 版本
adb -P  start-server   #指定 adb server 的网络端口
adb 
adb pull /sdcard/xx.png c:/test/  #将xx图片拿出来放在c盘的test文件下,不能放在根目录下。
adb push C:\test\huahua.png /sdcard/  #将c盘中的huahua图片放在app端的sdcard下
adb install -lrtsdg D:\yibijizhang.apk    #安装 APK
#(-l  将应用安装到保护目录 /mnt/asec;-r  允许覆盖安装;-t  允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用;-s    将应用安装到 sdcard;-d  允许降级覆盖安装   后面跟apk地址)
adb uninstall -k  com.mobivans.onestrokecharge   #删除apk,后面com.……是包名。
adb shell dumpsys activity activities | findstr mFocusedActivity  #查看当前所在的界面所在的包名和activity名。下面做演示。


adb shell 命令:安卓系统是基于Linux系统开发,也就支持常见的Linux的命令,这些命令都保存在手机 “/system/bin” 的目录下,我们连接手机就可以使用命令 adb shell 来执行这些命令。

adb shell  #进入linux系统后,再使用linux的命令  如:直接跟ll,ls等
#按 exit 退出linux模式
adb shell ll    #不进入Linux系统,直接调用linux命令。
adb shell cat /proc/meminfo    #查看内存信息
adb shell cat /proc/cpuinfo     #查看cpu信息
adb shell dumpsys battery      #电量
adb shell getprop ro.build.version.release      #获取Android版本
adb shell getprop ro.product.model     #查看手机型号
adb shell wm size     #查看分辨率 
adb shell screencap  -p /sdcard/xx.png   #截图,-p表示保存png文件


monkey命令--通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

即用随机的操作测试应用的稳定性 ,为了测试app 是否会Crash(崩溃)。

monkey需要用adb shell 进入到andriod系统,再用monkey命令。

monkey 【选项】 count    :count不能少,必填,是运行次数。

eg:adb shell monkey 100: 执行100次。

常见选项:

-p:表示允许的包名 

 -s:seed,随机数种子,它是随机数的事件序列定一个值,若出现问题下次可以重复同样的序列进行排错。 

--throttle 毫秒,在每次操作(即事件)间的延时,单位是毫秒。

--pct-touch 触摸事件,即在某一位置的Down-Up(手指的放下和抬起)事件。

ignore-crashes 用于指定当应用程序崩溃时(Force & Close 错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,知道事件计数完成。

ignore-timeouts 用于指定当应用程序发生ANR(APPlication No Responding)错误时Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

ignore-security-ecxeptions  用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。  

(但在测试中,一般是不会忽略这些问题的。所以上面的命令要少用)

-v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别

     -v:缺省值,仅提供启动提示、测试完成和最终结果等少量信息。

    -vv:提供较为详细的日志,包括每个发送到Activity的事件信息。

    -vvv:提供最详细的日志,包括了测试中选中/未选中的Activity信息。

adb shell pm list packages -3 获取手机中所有的第三方包名
adb shell monkey -p com.mobivans.onestrokecharge 5 指定测试的包,利用-p执行5次
adb shell monkey -v  2 输出一些简单的,基本的运行日志
adb shell monkey -vv  2 输出比较详细的运行日志,包括每个发送到Activity的事件信息
adb shell monkey -vvv  2 输出最详细的运行日志,包括每次发送的跟没有选中的事件
adb shell monkey -p com.kmxs.reader -vvv 30  输出执行30次reader包的详细运行日志
adb shell monkey -p com.kmxs.reader -vv 30 >D:/日志/1.txt (正常情况,  如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成\)  将较为详细的日志输出到D盘中的日志下面,1.txt文件中去。
事件百分比,加起来不能超过100% adb shell monkey --pct-touch 67 -v 10 表示执行10个伪随机用户事件流,并调整其中触摸事件的百分比为67%。(触摸)
adb shell monkey --pct-motion 20 3 手势操作(按下--直线移动--放开)
adb shell monkey --pct-trackball 20 3 轨迹球事件(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
adb shell monkey --pct-pinchzoom 20 3 两指缩放(二指缩放百分比,即智能机上的放大缩小手势操作)
adb shell monkey -p com.kmxs.reader 100 >D:/日志/2.txt 正常操作,不忽略异常。并把结果写到D盘日志里。
adb shell monkey -p com.mobivans.onestrokecharge --ignore-crashes 20 >D:\日志\4.txt 执行包里的事件20,并忽略异常,把结果写到日志里
adb shell monkey -p com.mobivans.onestrokecharge --ignore-timeouts 20 忽略超时事件
adb shell monkey-throttle 1000 10 操作10次,每次延时一秒。
adb shell monkey -vvv --pct-touch 100 --throttle 1000 -s 123456789 10

让随机的事件可以复现,-s:seed种子,复现10次。

adb shell monkey -vvv --pct-touch 100 --throttle 1000 -s 123456789 10 >> C:/log.txt windows 中直接记录运行结果,写在c盘的log文件中
adb shell monkey -vvv --pct-touch 100 --throttle 1000 -s 123456789 10 >> /sdcard/log.txt 在手机端记录事件,到sdcard的log日志中去。
adb pull /sdcard/log.txt c:/test/ 将手机端的log文件传到windows中去

monkey 结果分析:monkey测试的目的是检测被测程序是否出现崩溃,卡顿现象。

(1) Crash:表示被测试应用异常停止或退出。

(2)ANR:表示在5秒内没有响应输入的事件(例如,按键按下,屏幕触摸)等。

(3) Error或Exception:表示应用程序在系统运行过程中遇到了未知错误或异常。

(4) aborted:表示应用程序没有被正常启动或无法正常启动,Monkey测试被迫中止。

注意:为了确保在Monkey测试过程中引入其它干扰因素,建议测试过程中注意以下事宜:

(1) 尽量关闭所有网络开关(wifi及数据连接),以免莫名消耗流量,除非测试过程必须要求联网。

(2) 开启安全设置下的未知来源。

(3) 手机连接电源充电,模拟器不在此讨论范畴。

(4) 测试前运行一遍手机上方带有的首次提示的说明,如输入法,文件夹窗口,apk提示语等。

你可能感兴趣的:(自动化,web,app)