想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!

前言

开发、调试和测试工作中,大家都会发现,使用控制台命令可以有效彰显自己的专(tou)业(ge)性(lan)。


                学习Python中有不明白推荐加入交流群
                号:516107834
                群里有志同道合的小伙伴,互帮互助,
                群里有不错的视频学习教程和PDF!

在android测试过程,ADB命令可以提供很多便利性。但是,对于懒癌成疾的我们,每次需要通过terminal敲击命令,还是不够便利。如何可以进一步简化命令操作成为我们的目标。其实,大家只要编写简单的脚本,就可以节约很多冗余繁琐的手动操作,减少调试过程烦躁的心情。小编今天就结合自己遇到的实际问题,从基础开始分享python调到ADB命令的实用代码。

实例一:获取手机的设备号

场景一:电脑连接单个设备时,基本常用的adb命令执行比较方便,可以通过adb命令完成apk的安装以及日志信息的获取。但是当电脑同时连接多台手机时,就会出现异常提示信息,超过adb支持的设备数;

想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!


这个问题有两种解决方案:1、物理隔断大法,直接拔掉不用的设备连接。但是如果操作次数较多时就会出现画面:一个人像古老的接线员一样在反复插拔数据线。2、针对特定的设备号进行操作: adb -s devicesID command 。但是手动执行命令获取设备ID,然后再手动配置,还是比较繁琐。如果想用通过脚本执行adb命令,那么我们就需要过滤获取设备ID。下面小编就直接给出通过python获取连接电脑且具有具有操作权限的设备的deviceID的样例,大家可以基于该脚本再优化满足自己的需求:

想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!

 

实例二:如何获取特定进程的pid

Python可以成功获取所有连接电脑的手机设备ID后,就可以针对特定手机来执行adb命令。小编在实际开发和调试过程发现,经常需要查看手机进程信息,并通过PID对特定进程执行操作。为此,开始思考如何通过进程名获取对应的PID。下面的python样例实现通过进程名获取并返回对应的PID:

想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!

 

实例三:如何停止疯狂的monkey

开发和测试同学在调试APP时,经常会使用monkey来测试APP的稳定性,但是经常会出现这种场景:脚本运行结束了,但是monkey进程并没有结束,一直疯狂操作,着实很无奈。小编从毫无经验开始历经过三种解决方案:1、物理键强制关机后重启手机,刚开始的工作小白阶段,重启大法就是如此的万能。但是设备一多时,关机就可以按到你的手指隐隐作痛;2、通过adb命令重启手机(adb shell reboot),手指是不疼了,但是关机重启还是需要等待一定时间,心急时所有等待都会让人冒火;3、通过脚本获取monkey进程ID并杀死进程:通过python脚本,只有一个双击就可以搞定之前的一切烦恼。下面的python样例实现获取特定设备所有monkey进程ID并强制结束monkey测试:

想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!

 

实例四:如何读取日志并停止

android log可以有效的帮助程序员排查和定位问题,如果通过python实现记录log信息可以避免反复输入命令的繁琐,同时自己定义符合自己习惯的命名规则可以有效避免其他的log被覆盖的问题。在编写python脚本时,由于没有考虑到一些细节点,导致问题,这里进行简单的分享:在执行脚本几个小时后发现,获取并存储到本地的log文件大小居然有3.0G!!!排查发现是由于执行脚本,文件读写忘记关闭且手机端logcat获取也并没有停止,所以logcat 输出并没有停止,并一直写入到文件。针对这个问题尝试了很多种解决方案,最后尝试有两种方法相对有效:1、在获取到所有的log信息后通过命令重启adb server,这种方法十分有效,但是本质上还是重启大法,实现略显简陋;2、在关闭文件的同时,寻找方法直接停止logcat,这种方法更为合理些。下面的python样例实现获取特定设备日志信息并写入本地文件:

想利用python开发手机脚本吗?那么ADB的详细使用方法你必须会!

 

在最后

关于python在android调试和测试过程的使用,小编今天就介绍到这里,希望能给大家带来帮助。脚本的动力来源于日常痛点,目的是提高效率,释放双手。在日常工作中,大家遇到繁(bu)琐(shuang)的问题情况时,就可以静心思考,是否能够通过技术或者流程来优化。

猜你喜欢

转载自blog.csdn.net/qq_41841569/article/details/84893622
今日推荐