测试环境
夜神模拟器 下载链接
droid Studio --> SDK 下载链接
JDK 下载链接
自动化环境部署
以下介绍的是eclipse
1.环境资源
adt
–>安卓开发工具jdk
–>java开发工具
2.资源部署
1)解压Android_test.rar 文件到指定目录
eclipse
– java 开发工具,编写并解析执行java代码sdk
--软件开发工具,提供大量Android辅助工具:adb/aapt、monkeyrunnerSDK Manager.exe
--版本更新工具,更新资源文件
2)安装JDK 1
java 配置
开发工具:左侧交表点击选择第二项
安装目录默认即可
单击下一步
java SE 配置
java SE左侧交表选择:第二项
与java配置一样,下一步即可
jdk:属于开发及测试人员支持的文件资源,提供运行环境及辅助支持工具(jdk1.6.0)
jre:属于普通用户使用资源,相对功能简单
配置环境变量
1)jdk环境变量
找到安装的目录,复制路径
新建变量 JAVA_HOME
2.找到Path变量(这是WIN7截图,WIN10显示友好一些)
光标移至尾行追加:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意加分号(英文输入法的分号)
点击2个确定
3.验证
win+r 输入cmd 打开 DOS窗口输入命令
set java
显示以下内容,如果是显示是jdk1.8.0的朋友可以把环境变量java1.6.0移到1.8前
2)==配置adb==
1.新建变量
ANDROID_HOME
复制SDK所在目录
2.path中追加
%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\28.0.3;
3.验证
adb -version
3、创建AVD(安卓虚拟设备)
1)启动eclipse.exe
2)配置AVD
启动位置:工具栏–安卓虚拟设备管理选项
配置AVD参数
ADB简介
1.adb(Android Debug Bridge) ---->ADB中文文档
它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互
- 电脑上运行的客户端
- 在你用于开发及其上作为后台进程运行的服务器
- 一个以后台进程的形式运行于模拟器或设备上的守护程序(daemon)
说白了就是手机和电脑之间的桥梁如名称一样Bridge
2.ADB命令的主要功能
- 运行Android设备的shell
- 管理模拟器或Android设备的端口映射
- 安装/卸载APK程序
- 计算机和Android设备之间上传/下载文件
3.常用命令
adb
adb kill-server \\ 关闭ADB服务
adb start-server \\ 启动ADB服务
adb devices [-l] \\ 查看当前连接设备,模拟器或者真机
--> [serialNumber] [state]
如果连接有问题,重启了ADB服务,会出现以下情况,重启虚拟机可以解决
这里是虚拟机,如果是真机,保证和PC在同一个网段,然后设置端口,进行连接
上方中文文档中有详细介绍
模拟器多开:
安装和卸载APK程序
adb insatll <.apk 路径>
adb uninstall [-k] <包名> \\ -k卸载程序但保留配置和缓冲文件
aapt dump badging <.apk 路径> \\ 查看.apk相关信息
没有.apk包的时候,打开移动端的app,查看包名和activity
adb shell dumpsys window | findstr mCurrentFocus
路径直接拖窗口中
多个设备中指定设备
adb [-d|-e|-s <serial Number>] <command>
-d 真机(多个设备中只有一个真机)
-e 虚拟机(多个设备中只有一个虚拟机)
-s 序列号 \\ 一般直接用序列号就OK
上传和下载
adb push <本地路径> <远程路径> \\ 上传
adb pull <远程路径> <本地路径> \\ 下载
example:
虚拟机截屏,把文件pull到PC
adb shell screencap /sdcard/screen.png \\ 配合 shell 命令截屏
adb pull /sdcard/screen.png C:\Users\xxx\Desktop\test\ \\ 下载到本地路径
同样适合大多数Linux命令
adb shell ls /system/bin \\ 查看相关命令
当然可以直接进入shell操作
adb shell
退出shell :exit
生成日志辅助调试
adb logcat \\ 实时跟踪
adb logcat -d \\ 一次读取缓存日志
adb logcat > path \\ 重定向生成日志文件
adb logcat:*w \\ 等级过滤查看warning,*E(error)
adb logcat -v time \\ 查看时间相关的日志内容
adb logcat -v process \\ 以程序进程ID内容进行查看
adb logcat -c \\ 日志缓存的清除
敲完命令没有任何提示,查看相应路径是否生成文件,直接Ctrl + c退出即可
剩余adb相关命令,可参考中文文档
Android
常用Android命令
android sdk
// 打开SDK管理器,更新和下载之类的操作
android avd
// 打开AVD原生模拟器
android list avd
// 列出模拟器以及相关信息
Monkey
使用过程:
1.使用模拟机或者真机,注意要在DOS里面使用adb devises验证
2.找到APP应用程序的包名,也就是packageName
3.写出monkey命令进行测试
相关命令
:
adb shell monkey [param]
adb shell monkey 1000 \\ 随机操作1000次
adb shell monkey -p packageName 1000 \\ -p 指定软件操作
-v 操作日志记录
- -v Level 0 缺省值 启动提示、测试完成和最终结果,提供较少信息
- -v -v Level 1 提供较为详细的测试信息,如逐个发送Activity的事件
- -v -v -v Level 2 更加详细,如测试中被选中的或者未被选中的 Activity
adb shell monkey -p packageName -v -v 1000 > d:\monkey_logcat.log
简单查看日志:关键字(error, exception, anr, crash)
可以查看相应关键字前后的动作如:touch(点击)
switch后跟的信息,异常或者报错大部分都在该关键字后
monkey的关闭:
可以看出monkey为移动端的命令,执行monkey则会创建进程,所以找到相应PID,kill即可
对于真机而言,就算拔掉数据线也无法停止monkey,也别重启机器了(dog)
adb shell
ps | grep monkey
kill pid
需要注意的就是执行了monkey过后,ctrl + c 之后,再执行三行命令
–pct的使用
--pct-touch <percent>
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置。
Note:
percent代表了这个事件占到所有随机事件的百分比数,多个参数指定的时候,加起来的百分比数不能多于100。剩下的几个参数同理:
--pct-motion <percent>
motion一般代表的是直线滑动,事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成;
--pct-trackball <percent>
轨迹事件由一个或几个随机的移动组成,有时还伴随有点击;
--pct-majornav <percent>
引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键;
--pct-syskeys <percent>
这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键;
--pct-appswitch <percent>
在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法;
--pct-anyevent <percent>
它包含了所有其它类型的事件,如:按键、其它不常用的设备按钮等等
e.g.:
adb shell monkey -p com.tencent.mm --pct-touch 50 --pct-trackball 30 100
执行100次的随机事件中,有50%的touch事件和30%的轨迹事件,其他事件随机比例分布
--throttle [millisecond]
频率,表示多久执行一次事件
e.g.:
adb shell monkey -p com.ulang.jjk --pct-touch 50 --pct-trackball 30 --throttle 300 2000
执行2000次的随机事件中,有50%的touch事件和30%的轨迹事件,其他事件随机比例分布,每300ms执行一次事件
-s [number]
随机种子数
指定相同的数字,执行逻辑相同,及monkey执行事件顺序比例都相同
adb shell monkey -p <package_name> -s 10 --throttle 300 -v -v -v 800
两者执行结果相同,可以生成日志文件查看,相当于就是这一次monkey的编号
adb shell monkey -p <package_name> -s 10 --throttle 300 -v -v -v 800
调试及忽略异常
- 忽略崩溃
--ignore-crashes
规避崩溃(crash) - 忽略超时
--ignore-timeouts
规避未响应(ANR) - 忽略安全异常
--ignore-security-exceptions
规避网络许可异常或者权限异常等问题 - 忽略本地崩溃
--ignore-native-crashes
规避本地系统遇到的异常崩溃情况 - 监控本地崩溃
--monitor-native-crashes
监控本地崩溃的系统代码,根据跟踪分析问题
e.g.
adb shell monkey -p <package_name> --ignore-crashes --ignore-timeouts 1000
固定加入参数就OK了
通过调试选项针对crash,anr,本地崩溃、安全异常进行调试控制,保证monkey测试的持续、完整有效
adb命令可以配合用python+appium写脚本:
import os
os.system('adb shell monkey 1000')
os.system('adb install <.apk of path>')