Monkey测试工具
说明:monkey是一个安卓自带的命令行工具,可以模拟用户向应用发起一定的伪随机事件。主要用于对app进行稳定性测试与压力测试。
实现:首先需要安装一个ADB工具,安装完之后,需要配置好相应的环境变量,为了避免报错,有时候也需要配置JDK的环境变量。之后直接使用ADB devices 命令可以显示出在当前操作环境上的安卓设备(可以是模拟器,也可以是真机,如果没有显示出来设备,请打开USB调试)。
注意事项:1. 真机调试时,需安装对应设备的驱动程序;2.如果设备状态为offline,则表示adb版本过低,需更新adb工具至最新版本;3。真机使用adb shell命令操作文件时需获取root权限
之后就直接使用命令来运行该命令了,如果当前环境下只有一台设备,则无需指定的端口号就可以直接运行,如果有多台设备,就需要指定设备的端口号。
命令: adb shell monkey –p(指定包名) –v(指定测试次数,后面跟测试次数) –v(生成操作日志,详细日志,可以再加参数-v)>指定日志生成路径
设备状态:
device:设备正常连接 offline:连接出现异常,设备无响应 unknown:没有连接设备
常用的adb命令:
adb kill-server , adb start-server , 结束 adb 服务, 启动 adb 服务,通常两个命令一起用
adb logcat , 打印 Android 的系统日志
adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误
adb install , 安装应用,覆盖安装是使用 -r 选项
adb uninstall , 卸载应用,后面跟的参数是应用的包名
,请区别于 apk
文件名
adb pull , 将 Android 设备上的文件或者文件夹复制到本地,如需对文件重命名,后面可直接加文件名称
adb push , 推送本地文件至 Android 设备
adb root , adb remount, 只针对类似小米开发版的手机有用,可以直接已这两个命令获取 root 权限,并挂载系统文件系统为可读写状态
adb reboot , 重启 Android 设备
bootloader , 重启设备,进入 fastboot 模式,同 adb reboot-bootloader 命令
recovery , 重启设备,进入
recovery 模式,经常刷机的同学比较熟悉这个模式
adb forward , 将 宿主机上的某个端口重定向到设备的某个端口
adb connect 远程连接 Android 设备
为什么要区分adb命令与adbshell命令:
adb 命令是 adb 这个程序自带的一些命令,而
adb shell 则是调用的 Android 系统中的命令,这些 Android 特有的命令都放在了
Android 设备的 system/bin 目录下
ADB shell命令:
可以进入安卓内核,由于安卓是基于linux开发的操作系统,所以在该模式下,可以使用绝大部分的linux命令,真机需要获取root权限。
Pm:获取android设备上的应用信息
pm list package 列出安装在设备上的应用
adb shell pm list package: 不带任何选项:列出所有的应用的包名
adb shell pm list package -s :-s:列出系统应用
adb shell pm list package -3:-3:列出第三方应用
adb shell pm list package –f:-f:列出应用包名及对应的apk名及存放位置
pm install ,
安装应用目标 apk 存放于 PC 端,请用 adb install 安装
目标 apk 存放于 Android 设备上,请用 pm install 安装
如果电脑上有多个设备:使用adb -s指定设备
使用adb install命令出现:Failure [INSTALL_FAILED_ALREADY_EXISTS],请使用参数-r覆盖安装
pm uninstall , 卸载应用,同 adb
uninstall , 后面跟的参数都是应用的包名
pm clear , 清除应用数据
pm
set-install-location , pm get-install-location , 设置应用安装位置,获取应用安装位置
am:安卓调用的一个命令库
am start , 启动一个 Activity 例如:启动相机:adb
shell am start -n com.android.camera/.Camera(命令后指定包名)
先停止目标应用,再启动:adb shell am start -S com.android.camera/.Camera
等待应用完成启动:adb shell am start -W com.android.camera/.Camera
启动默认浏览器打开一个网页:adb shell am start -a android.intent.action.VIEW -d
http://testerhome.com
启动拨号器拨打 10086:adb shell am start -a android.intent.action.CALL -d tel:10086
am instrument , 启动一个
instrumentation , 单元测试或者 Robotium 会用到
am monitor , 监控 crash 与 ANR
am force-stop , 后跟包名,结束应用
am
startservice , 启动一个服务
am broadcast
, 发送一个广播
input:这个命令可以向 Android 设备发送按键事件
发送text(不能发中文):adb shell input text test123456
input keyevent , 发送按键事件
input tap , 对屏幕发送一个触摸事件
input swipe , 滑动事件
adb shell input swipe 900 500 100 500:从右往左滑动屏幕
模拟长按事件 :adb shell
input swipe 500 500 501 501 2000
截图命令:adb shell screencap -p /sdcard/screen.png
录制命令:adb shell screenrecord sdcard/record.mp4
Getprop:查看 Android 设备的参数信息
获取设备的 sdk 版本:adb shell getprop ro.build.version.sdk
常用的linux命令:
开启ftp服务:service vsftpd
start
开启ssh服务:service sshd start
普通用户切换到超级用户:su root
logout:(注销)
uname -a:查看系统命令
echo $var-name:查看环境变量取值
unset vat-name:删除某个环境变量(该命令只是从当前用户进程中删除,不会从文件/etc/profile删除)
rz:将windows文件上传至linux 协议为ssh 端口号:22
shutdown -r now(立即关机并重启)
ifconfig:(查看Ip地址)
网络重启:(service network restart)
关闭网络:service network stop
开启网络:service
network start
图形界面到文本界面:shirt+ctrl+alt+f4
文本切换到图形:alt+f7
reboot:重启
clear:清屏
ping:检测网络的通断
查看系统进程:top
查看cpu、内存占用 :ps -aux
查看端口:netstat
-a -u -t
ls
-al (查看 目录下所有文件的详细信息)
cd(切换目录):
cd ..(返回上一层目录)
cd .(跳转至当前目录)
cd -(返回上次目录)
pwd(查看当前目录)
用户和组:
whoami(查看当前登录用户)
useradd(新建用户)
usermod(修改用户属性):
-u(修改用户Id)、 -l(修改用户名)、 -c(修改用户备注)、 -g(修改用户所属群组)
cat /etc/passwd (查看用户)
groupadd(新建群组)
groupmod(修改群组属性) :
-g(修改群组Id)、 -n(修改群组名称)
cat /etc/group(查看群组)
文件和文件夹:
vi (文本编辑器:可创建文本文件并编辑) aaa bbb:可同时打开多个文件 n:切换到下一个文件 N:切换到上一个文件
vi下的三个模式:使用vi命令后默认进入vi的命令(command mode)模式:这个模式可以使用文本复制与删除命令以及预览文件 nyy:复制n行 p粘贴 ndd:删除n行
按i(insert mode)进入vi的可写入模式、此时可以对文本进行编辑且只能按esc键退出该模式切换到命令模式下,其他的按键均视为输入的内容
在命令模式下可按“:”进入vi的底线命令模式(last line mode) 在这个命令下可以保存文件“:q”
强制退出:q! 、保存并退出:wq
、 查找内容:("/xx":从头到尾查找,n查找下一个,N返回上一个
“?xx”:从尾到头查找,n查找下一个,N返回上一个)
替换内容:s/p1/p2/g:将光标所在行的“p1”替换为“p2” 、g/p1/s//p2/g:将文件中的所有“p1”替换为"p2"
touch(创建空白文件) aaa
bbb:可同时创建多个文件
rm(删除文件) rm
-rf (强制删除文件与文件夹)
mkdir(创建文件夹) -p:创建并递归目录
如:mkdir -p kkk/jjj
rmdir(删除文件夹)
mv(重命名、剪贴)
cp(复制): -r 对目录进行复制 -a复制源文件的所有属性
find(查找):
find -name(按文件名进行查找)可指定路径进行查询 如: find -name /root
a.txt
find-size(按文件大小进行查找) 也可指定路径查询 如: find -size /root 2k
grep(字符串查找):\>
\<( 精确匹配)
-n(显示文件代码行) -i(不区分大小写)
通配符:
.表示1个或多个任意字符,可以为空格
* 表示0个或多个字符(通常配合文件名使用)
file(用来识别文件类型)
file 文件名 -b 不输出文件名称
echo(查看文件行变量取值或者把字符串输入到文件中):
\c:不换行 \t:跳格 \n:换行(linux中,必须-e选项来使转义符生效)
sort(排序命令):讲文件中的字符顺序排列起来,但不会影响源文件的内容
wc(统计命令):
-c(统计字符数) -m(统计字符数)
-l(统计行数) -w(统计字数)
exec(可执行操作):将前面命令的输出作为后面命令的操作对象 格式:-exec 命令 {}\;
cat(查看命令): -n:对所有输出进行编号 -b:与-n相似,但不显示空白行
more(分页显示文件内容) 按空格:显示下一页内容 回车键:显示下一行内容
b:显示上一页内容
head:输出文件的前几行数据
head -n 文件名
tail:输出文件的最后几行数据
tail -n 文件名 -f动态查询
chmod(修改文件权限)
rwx——r为读取权限 w为写入权限
x为可执行权限
chgrp(修改文件所属群组)
chgrp 组名 文件名
chown(修改文件拥有者)
chown 用户名 文件名
ln(为一个文件在另一个位置建立一个同步的链接:默认创建硬链接 -s创建软连接) l:符号链接文件
格式 :ln file1 file2(file2是file1的链接文件)
硬链接:删除源文件后链接文件依旧可以使用
软链接:相当于windows中的快捷方式 删除源文件后链接文件不能使用
gzip:压缩文件命令,不能压缩文件目录,不会保存源文件
-r*压缩当前目录下所有文件
-g 解压压缩包中的文件
gunzip:从压缩包中提取某个文件
tar:文件打包命令
-xvf:文件解包
-cvf:文件打包
-zxvf:解包并解压缩
-zcvf:打包并压缩
手动配置ip地址:
1、在命令行下运行setup
2、vi
/etc/sysconfig/network-scripts/ifcfg-eth0
ssh:用于远程连接电脑 工具:secureCRT,putty 端口号:22
file:识别文件类型
alias:给命令取别名 语法:
alias rm="rm -i"
export:设置环境变量
source:加载环境变量
kill -9:结束进程
diff:比较两个文件的不同
fdisk -l:列出所有分区
df -h:查看磁盘使用情况
du -h:查看指定文件的存储信息
mount:将分区挂载至设备 语法:mount
分区路径 挂载路径(/mnt/cdrom)
umount:卸载挂载设备 语法:
umount 路径(/mnt/cdrom)
程序安装命令:
分为三种:-tar、-rpm、-dpkg
-tar安装:通用安装格式
1、解包文件2、执行./comfigure准备编译
3、make命令进行编译4、make install安装应用
5、make clean 删除安装时的临时文件6、make uninsatall 卸载应用
-rpm安装:是reahat
linux提供的一种封装格式
1、查询已安装的rpm包:rpm -q 软件名称
2、安装 rpm -ivh 软件名称
3、卸载rpm -e 软件名称(无需后缀)
4、升级rpm rpm -uvh 软件名称