1. UI Automator Viewer:在Andriod_SDK安装路径下,直接点uiautomatorviewer.bat便可,能够连真机和模拟器,获取手机上各个元素的属性。node
2. ADB: Android Debug Bridge 调试桥,是一个通用命令行工具,容许你与模拟器实例或链接的Android设备进行通讯,默认端口:5037python
--adb connect 127.0.0.1:62001 #链接模拟器,第一个端口是62001,第二个是62025,第三个是62025+1,以此类推。linux
--adb devices #查看设备android
--adb shell #进入linux系统的字符交互界面web
--adb -s 127.0.0.1:62001 shell #若是开了多台模拟器,须要用这种方式shell
--exit #退出npm
--adb install #默认安装浏览器
--adb install | -r <apkName> #-r 覆盖安装,app
--adb -s 127.0.0.1:62001 install....#-s 指定 设备安装工具
--adb shell cd /data/app/ ls #查询安装的软件
--adb uninstall <软件名> #默认系统会在软件名后加-1,uninstall 的时候不要加-1才能够uninstall成功
--adb shell pm list package | grep "wadoujia" #查看设备上面安装的应用包名
--adb push c:\test.txt /sdcard # copy 文件到模拟器手机
--adb pull /sdcard/server.log e:\dan\ #从手机copy文件到电脑
--adb shell screencap /sdcard/screen.png #最好用.png,jpg可能文件会损坏
--adb kill-server #关闭adb服务
--adb start-server #开户adb 服务
--netstat -ano | findstr "5037" #若是5037端口被占用,能够用这个命令查看PID,而后用下面的命令杀掉便可
--taskkill -f -pid xxx
3. Package & Activity:
怎样获取package & activity?
a. 启动一个程序后,打开UI Automator Viewer,点device screenshot button便可得到程序的各类属性,包括package名
b. Activity,是全部程序的根本,全部程序的流程都运行在activity之中,activity能够算是开发者遇到的最频繁,也是android当中最基本的模块之一, 在android的程序中,activity通常表明手机屏幕的上屏,若是把手机比做一个浏览器,那么activity就至关于一个网页,在activity当中能够添加一些button,checkbox等控件,能够看到activity概念和网页的概念至关相似。
通常一个android应用是由多个activity组成的,这多个activity之间能够进行相互跳转,例如,按下一个button 按钮后,可能会跳转到其余的activity,与网页跳转稍微有一点不同的是activity之间的跳转有可能返回值.
activity的生命周期:即产生,运行, 销毁,,可是这其中会调用许多方法 onCreate(建立),onStart(激活), onResume(恢复),onPause(暂停), onStop(中止), onDestroy(销毁), onRestart(重启)
--aapt (Android Asset Packaging Tool)
--aapt dump badging xxxx.apk | find "launchable-activity"
Activity页面布局元素:
FrameLayout:
LinearLayout:
RelativeLayout:
AbsoluteLayout:
TableLayout:
TextView:
ImageView:
4. Monkey:程序是Android系统自带的,其启动脚本们于Android系统 /system/bin目录 的Monkey文件,其jar包位于Android系统的/system/framework, 用户主要经过 adb命令来启动Monkey的,Monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的测试事件。同时,Monkey还会对测试系统进行监测,录出现如下三种状况时会进行特殊处理:
a.如限定了Monkey运行在特定包上,当监测到试图转到其余包的操做,将对其进行阻止。
b.如应用程序崩溃或接收到任何失控异常,Monkey将记录对应的错误日志,并根据命令行参数判断是中止运行仍是继续运行。
c.若是应用程序发生了程序无响应的错误,Monkey将记录对应的错误日志,并根据命令行参数判断是中止仍是继续运行。
d.按照选定的不一样级别的反馈信息,在Monkey中还能够看到其执行过程 报告和生成的事件。
Monkey的启动步骤:
1.链接移动设备
2.链接成功后输入命令:adb shell
3. 进入/system/bin: cd /system/bin/
4. 执行monkey: monkey [options] <event-count>, e.g.: monkey 2000
强制关闭monkey:
5. Monkey 事件:
6. Monkey参数:
a.常规类参数:包括帮助参数 monkey -h 和 日志信息参数 monkey -v -v -v 200 # 一个v是0级,两个v是1级,三个v是2级, 最详细
b.事件类参数:是对随机事件进行调控,从而使其遵守设定运行,如设置各类事件的百分比,设置事件生成的使用的种子值等,频率参数主要限制事件执行的时间间隔。
--monkey -f /mnt/sdcard/test1 #执行指定脚本
--monkey -s 8888 200 # -s 能够重复执行以前的伪随机操做, 自己每次执行伪随机事件操做也会默认生成一个seed种,也能够本身设定
--monkey --throttle 3000 5 #设置间隔,若是你但愿在每个指令之间加上固定的间隔时间,能够用--throttle,后面接时间,单位为ms
--monkey -v -v --pct-touch 30 200 # 调整触摸事件百分比, 能够经过 --pct-touch参数,后面加百分比
--monkey -v -v --pct-motion 40 --pct-touch 20 200 #调整手势事件百分比用--pct-motion,后面加百分比
--monkey --pct-appswitch #调整应用启动事件的百分比, 用--pct-appswtich ,后面加百分比
--monkey --pct-rotation #调整屏幕旋转事件百分比, 后面加百分比便可。
c.约束类参数:
--monkey -p <包名> -p <包名> #-p后面接一个或多个包名
--monkey -c <main-category> <event-count> #activity 约束, 测试一个或多个类别
d. 调试类参数
--monkey --ignore-crashes <event-count> #若是但愿monkey在应用程序崩溃后继续发送事件,就用这个命令,若是不设置,遇到上述状况自动中止
实例:考研帮:
7. Appium 安装:
a. 先安装node.js (用node -v, npm -v查看是否安装成功)
b. 安装appium:能够用国内的源: npm install -g cnpm --registry=https://registry.npm.taobao.org, 而后用cnpm install -g appium 安装最新版本(cnpm install appium@1.7.2 -g安装指定版本), 而后后where appium查看安装路径, appium -v查看版本,输入appium执行.
c. 安装python
d. 安装appium desktop ,下载安装文件安装便可
e.安装appium python client: python3 -m pip install Appium-Python-Client (安装完后在python里执行from appium import webdriver,若是没有出错,表明安装成功)
f.JDK安装
g.Android sdk 安装
h.安装appium-doctor: cnpm install appium-doctor -g, 安装完后执行appium-doctor 能够检查appium环境是否有问题
d.