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类的继承实例详解
Mar 30 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
Python函数返回不定数量的值方法
Jan 22 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
python提取xml里面的链接源码详解
Oct 15 Python
jupyter实现重新加载模块
Apr 16 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
Mar 03 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
php实现cookie加密的方法
2015/03/10 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
layui table 获取分页 limit的方法
2019/09/20 Javascript
详解vue或uni-app的跨域问题解决方案
2020/02/21 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
Python 列表反转显示的四种方法
2020/11/16 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
党员创先争优承诺书
2014/03/26 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书