appium+python adb常用命令分享


Posted in Python onMarch 06, 2020

前言:

在appium中adb命令的使用必不可少,做android测试嘛,adb命令肯定肯定是每天都要用的啦,所以今天给特地写个博客吧!

这里就不介绍adb是什么以及怎么安装adb了,因为这些东西网上一搜一大把!没必要重写。

对于这些常用的adb命令网上也都有介绍,我这里其实就是简单汇总吧。

一、检查设备

前提:安卓设备开启开发者模式,开启usb调试

1.如何检查手机(或模拟器)是连上电脑的,在cmd输入:

appium+python adb常用命令分享

二、安装app

第一步:先下载apk文件包到电脑

第二步:cmd端口输入adb install 后把apk直接拖进来就ok

出现success就代表ok了

三、卸载app

1.在cmd输入以下指令,可以删除app

>adb uninstall 包名

(这里是app的包名,不是文件名,包名用前面的aapt工具查看,输入aapt dump badging +apk可以看到包名)

2.以淘宝为例,淘宝的包名是:com.taobao.taobao

appium+python adb常用命令分享

出现success代表OK了

四:杀掉adb进程:

adb kill-server

五:重启adb服务

adb start-server

六:重启安卓设备

adb reboot

七:进入shell模式:

注:android的系统是基于linux系统开发的,adb shell就是进入shell模式

adb shell

appium+python adb常用命令分享

八:查看文件详情和进入文件夹操作

进入shell模式后 :cd sdcard

appium+python adb常用命令分享

九:列出当前文件夹下目录

在某一文件夹下:ls -a

appium+python adb常用命令分享

十:退出shell模式

直接输入 exit

appium+python adb常用命令分享

十 一:从手机下载文件到本地

找到需要导入的文件路径后,先exit退出shell,再执行

命令: adb pull [手机路径] [电脑路径]

注意:手机路径是左斜杠/ 电脑路径是右斜杠 (不能直接导电脑根目录,得指定一个已经存在的文件夹)

appium+python adb常用命令分享

如上图所示,代表导入本地成功

appium+python adb常用命令分享

2.想导出文件夹下的全部内容,就不用指定文件名称了,到文件夹这一层目录就行,如/sdcard/DCIM/Camera/Screenshots D:Testapk

appium+python adb常用命令分享

十 二 :把电脑的文件导入手机,跟上面操作刚好相反

.把电脑的文件导入手机,跟上面操作刚好相反

命令: adb push [电脑路径] [手机路径]

如果想在手机上创建一个文件夹,可以进shell模式,用mkdir创建

如下:我在sd根目录创建了一个haha的文件夹

appium+python adb常用命令分享

下面将文件导入手机:

前提还是需要先退出shell模式

实现如下:

appium+python adb常用命令分享

检查哈haha文件夹下是否成功:

appium+python adb常用命令分享

如图所示,已经导入手机成功!

总结:在cmd命令中使用的命令格式与shell模式中的格式有所不同,因为cmd中使windows系统,而在shell中是linux系统所以有所区别。比如在cmd中返回上层文件夹命令是:cd.. (cd加两个点),但是在shell中返回上层文件夹就用linux命令了: cd - (注意 cd和-中间有空格!)。所以总结来说在shell模式下要用linux命令来实现。昨天写到第十二个时下班了,今天继续!

十三:logcat输出日志

做app测试,遇到异常情况,查看日志是必不可少的,日志如何输出到手机sdcard和电脑的目录呢?这就需要用logcat输出日志了

以下操作是基于windows平台的操作:adb logcat | find

linux平台的操作可以把find改成grep: adb logcat | grep

windows上的dos里面是没grep指令的

1.把日志存入电脑的某个目录,如d:\Testapk

appium+python adb常用命令分享

2. 使用find过滤包名

如果直接用adb logcat抓日志的话,会把系统的一些其他无关紧要的都抓出来,如果只想抓取被测app的日志,那就根据包名过滤

命令:adb logcat | find "com.mld.Lantin" >d:\Testapk\22.txt

appium+python adb常用命令分享

appium+python adb常用命令分享

3.结束logcat

1.结束logcat抓包,可以用ctr+c快捷键结束, 这个是通过手工的快捷键操作完成

4.logcat其它功能

1.cmd输入adb logcat -help可以查看其它功能

命令:adb logcat -help

C:\Users\admin>adb logcat -help
Unrecognized Option h
Usage: logcat [options] [filterspecs]
**选项**:
-- "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
 
-- "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
 
-- "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
 
-- "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
 
-- "-v"选项 : 设置日志的输出格式, 注意只能设置一项;
 
-- "-c"选项 : 清空所有的日志缓存信息;
 
-- "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
 
-- "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
 
-- "-g"选项 : 查看日志缓冲区信息;
 
-- "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
 
-- "-B"选项 : 以二进制形式输出日志;
 
**过滤项格式** : <tag>[:priority] , 标签:日志等级, 默认的日志过滤项是 " *:I " ;
 
-- V : Verbose (明细);
 
-- D : Debug (调试);
 
-- I : Info (信息);
 
-- W : Warn (警告);
 
-- E : Error (错误);
 
-- F : Fatal (严重错误);
 
-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);
 
'*' by itself means '*:D' and <tag> by itself means <tag>:V.
If no '*' filterspec or -s on command line, all filter defaults to '*:V'.
eg: '*:S <tag>' prints only <tag>, '<tag>:S' suppresses all <tag> log messages.
 
If not specified on the command line, filterspec is set from ANDROID_LOG_TAGS.
 
If not specified with -v on command line, format is set from ANDROID_PRINTF_LOG
or defaults to "threadtime"

注:需要用到logcat的时候看看这张表的help内容应该就知道怎么用了,很全!这里就不逐一去写了,自己需要用,自己参照上图!

以上这篇appium+python adb常用命令分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断字符串是否纯数字的方法
Nov 19 Python
python生成随机mac地址的方法
Mar 16 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python基于回溯法子集树模板解决全排列问题示例
Sep 07 Python
Python File readlines() 使用方法
Mar 19 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
Python request操作步骤及代码实例
Apr 13 Python
python自定义函数def的应用详解
Jun 03 Python
python numpy中setdiff1d的用法说明
Apr 22 Python
Python+appium框架原生代码实现App自动化测试详解
Mar 06 #Python
python使用paramiko实现ssh的功能详解
Mar 06 #Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 #Python
Python object类中的特殊方法代码讲解
Mar 06 #Python
python+Selenium自动化测试——输入,点击操作
Mar 06 #Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 #Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 #Python
You might like
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现控制台进度条功能
2016/01/04 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
python 数据的清理行为实例详解
2017/07/12 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
python 修改本地网络配置的方法
2019/08/14 Python
python用requests实现http请求代码实例
2019/10/31 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
大学生毕业自我评价范文分享
2013/11/11 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
中职生求职信
2014/07/01 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android