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中的实现
May 04 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
python 上下文管理器使用方法小结
Oct 10 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
python如何制作缩略图
Apr 30 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
Python 实现平台类游戏添加跳跃功能
Mar 27 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
python中的被动信息搜集
Apr 29 Python
python面向对象版学生信息管理系统
Jun 24 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
JavaScript简介
2015/02/15 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
什么是python的必选参数
2020/06/21 Python
python中random模块详解
2021/03/01 Python
深入浅析HTML5中的article和section的区别
2018/05/15 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
幼儿园中秋节活动方案2013
2014/01/29 职场文书
《老王》教学反思
2014/02/23 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书