androld debug bright 安卓调试桥
作用:
1.运行设备的shell 命令
在模拟器上进入某些目录,删除某些文件,创建目录
2.管理模拟器和真机设备
3.计算机和设备之间的数据上传和下载
4.本地的Apk包安装到模拟器或者安卓设备
1.adb version (dos)查看使用版本
2. adb devices
查看当前运行的设备列表 为空,代表没有运行的设备
如果显示:list of devices attached 附加设备列表
3.adb connect 127.0.0.1:62001
连接夜神模拟器,不同的模拟器有默认的端口号
逍遥的是:21503
4. adb install +apk包名称
5.adb install -r +apk包名称 再次安装,覆盖,重新安装apk包
android assert packaging tool
安卓资产打包工具
作
1.查看apk包名
2.查看acivity名称
命令:aapt dump badging +apk文件名称
查看apk包名和acivity
****3.adb uninstall +apk包名称 ()
删除应用
4.adb shell 进入adb shell 交互页面,可以执行shell命令
exit 退出shell交互页面****
5. pm list package -3 查看非系统设备的apk包名信息
注意点:必须要进入shell的交互页面,执行命令
6.怎么把本地的文件,保存到sdcard 目录下
推送 push
adb + push 本地路径 +sdcard
7.拉取设备上的文件,到本地
拉去pull
adb pull 设备上文件的路径+本地路径
sdcard/as
把sdcard中的as 拉取到D下的BBB…目录
注意点:设备中分隔符左斜杠。
8. adb logcat 查看设备运行日志
9. adb logcat>e:\bb\logcat.txt
日志重定向到本地文件
结束导出,ctrl C
10.adb reboot 重启设备
11.adb start-server 启动adb服务
12.adb kill-server 关闭服务
会断开连接,需要启动和重连
13.adb shell screencap /sdcard/screen.png 截屏
desired_caps 渴望的参数
appium服务端连接移动设备,移动设备必须要告诉appium基本的参数
比如说:系统 未完
desired_caps 渴望的参数
appium服务端连接移动设备,移动设备必须要告诉appium基本的参数
比如说:系统 未完
platformName 设备系统名称
#android or los
platformversion 设备系统版本,安卓系统
devicesname 移动设备名称
APPpackage :apk的包名
appactivity :activity
unicodekeyboard :True #隐藏设备自带的键盘输入法
resetkeyboard:True
#重置设备自带输入法
1.启动 appium 服务端
勾选override session选项
2,pycharm。py文件中,引入appium库
from appium import webdriver
3.desired_caps 移动设备参数
4.webdriver.Remote 远程连接appium服务端
1.adb kill-server
2.adb start-server
3.adb connect 127.0.0.1:62001
4.adb devices
#coding=utf8
from appium import webdriver
desired_caps={
“platformName”:“Android”, #系统名称
“platformVersion”:“4.4.2”,#系统版本
“deviceName”:“OPPO R11”,#设备型号
“appPackage”:“com.baidu.netdisk”, #apk包名
“appActivity”:“com.baidu.netdisk.ui.Navigate”,#activity
“unicodeKeyboard”:True,
“resetKeyboard”:True
}
webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’,desired_caps)
D:\SDK\tools uiautomatorviewer.bat(最好用的)
monkeyrunner.bat
uiautomatorviewer.bat 是最好用最强大的,支持不同的安卓版本
它与appium看日志的有冲突,使用时要暂停appium
app自动化页面元素定位
我们会使用定位工具 uiautomatorviewer
去dump (转储)一个当前页面
id定位 resource-id
driver.find_element_by_id(‘com.tencent.mm:id/ji’)
name定位
text
driver.find_element_by_name(‘例如:陈晨’)
content-desc 定位
driver.find_element_by_accessibility_id(content-desc)
xpath定位
没有id 没有name,content-desc ,再考虑class定位。
driver.find_element_by_xpath(//android.widget.LinearLayout[@]/)
xpath和class经常组合使用
屏幕尺寸
size=driver.get_window_size()
屏幕滑动
1.向右滑动
python启动脚本如下:
from appium import webdriver
desired_caps = {}
desired_caps[‘platformName’] = ‘Android’
desired_caps[‘platformVersion’] = ‘4.4’
#desired_caps[‘app’] = os.path.abspath(’/Users/a58/Downloads/zhuanzhuan_market_923.apk’)
desired_caps[‘appPackage’] = ‘com.wuba.zhuanzhuan’
desired_caps[‘appActivity’] = ‘.presentation.view.activity.LaunchActivity’
wd = webdriver.Remote(‘http://127.0.0.1:4723/wd/hub’, 。desired_caps)
说明:
1.appium通过webdriver.Remote()传递appium的server地址和启动的client信息desired_caps
2.server的格式“http://serverip地址:4723/wd/hub”
3.desired_caps是一个字典格式,包含platformName等
各项介绍如下:
|platformName
|你要测试的手机操作系统|iOS
, Android
, 或 FirefoxOS
|
|platformVersion
|手机操作系统版本|例如: 7.1
, 4.4
|
|appPackage
| 你想运行的Android应用的包名|比如com.example.android.myApp
, com.android.settings
|
|appActivity
| 你要从你的应用包中启动的 Android Activity 名称。它通常需要在前面添加 .
(如:使用.MainActivity
而不是 MainActivity
) |MainActivity
, .Settings
|
|app
|.ipa
or .apk
文件所在的本地绝对路径或者远程路径,也可以是一个包括两者之一的.zip
。 Appium会先尝试安装路径对应的应用在适当的真机或模拟器上。针对Android系统,如果你指定app-package
和app-activity
(具体见下面)的话,那么就可以不指定app
。 会与 browserName
冲突 |比如/abs/path/to/my.apk
或http://myapp.com/app.ipa
|
4.Android机上如果安装了要测试的app,可以通过appPackage和appActivity指定要启动的app界面,而不需要app
如果指定了app(apk安装目录),则不用指定appPackage和appActivity。每次都会去重新安装一遍
5. 通过[adb devices]来判断真机是否连接到电脑上了(我用的是真机,一定要用数据线连接到电脑上)