APP测试之使用ADB可能遇到的错误及解决办法

大家好,我是coco小锦鲤
都说节后综合症
版本提测欲断魂
在之前我们介绍了APP测试
But,使用ADB可能遇到很多坑
你每出错一步
就距离顺利完成测试
差一条尼罗河
以下有六条尼罗河
你上岸还是不上岸?

错误一

在cmd中执行“adb ”,提示:adb不是内部或外部命令,也不是可运行的程序。

这意味着没有配置好adb环境。
解决办法:

1、如果是win10系统的环境变量配置打开path,

添加如下:

%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

(注意要先点击新建再分别在两行创建,并且不需要分号)

2、如果是win7系统打开path,

添加如下:

%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

(直接粘贴到path变量值后面即可)

错误二

在cmd中执行“adb shell”,提示:error: device not found(没有设备信息)

意思是没有发现设备。
解决方法:

1、如果用手机设备测试,请用USB数据线与电脑连接,同时安装好手机驱动(比如91助手、豌豆荚);
2、如果采用模拟器测试,应该先启动eclipse,然后设置好模拟器,并进入模拟器测试状态。

错误三

执行“adb shell”,提示:error: more than one device and emulator.

第一种情况:确实用多个设备或者模拟器

错误说明是有一个以上的设备和仿真器,这是因为启用了模拟器,同时也将手机通过USB线连接到了电脑,所以这里存在两个设备。这种情况下,需要指定连接某一个设备或者模拟器。

问题定位及解决办法:

1、获取模拟器或设备列表

命令:adb devices

2、指定device来执行adb shell

命令:adb -s devicename shell

在多个device的时候,执行adb命令一般都需要用参数-s指定device。

如卸载emulator-5554上的包com.soft.camera,命令如下:

adb -s emulator-5554 uninstall com.soft.camera

通过monkey测试:

adb -s emulator-5554 shell monkey -v -p com.tencent.WeChat 500

第二种情况:确实有一个设备或者模拟器

之所以显示有多个,是因为此设备用过两次,使用命令 adb devices 会看到这个设备有两种状:offline 和 device,有以下两种解决办法:

1、重启adb.exe服务

一般办法:在命令窗口输入 adb start-server 重新启动adb.exe服务;

2、终极方法,结束adb进程

如果上述方法不可以,终极方法:打开任务栏,选择“进程”选项卡,找到adb.exe进程,结束之,重新启动就OK啦(或者在命令窗口输入命令 adb kill-server )。

错误四

执行“adb devices”,显示设备:unauthorized(未授权).

原因:是因为在安卓端,尚未允许计算机对设备进行调试。

解决办法:

1、手动点亮手机屏幕,会有相应的授权提示,在提示上,勾选“一律允许”,并点击确定即可。

2、在手机屏幕上确认之后,再次输入指令:adb devices ,即可成功连接设备。

错误五

在cmd中输入:adb -s HT21JV204550 shell monkey -v -p com.tencent.WeChat 500

,在手机上通过monkey测试出现:No activities found to run, monkey aborted.

意思是:没有找到要运行的activities,monkey中止。

解决措施:

1、通过模拟环境测试,Eclipse设置如下:
在这里插入图片描述

2、通过手机测试,应该将“Target”选项卡中由原来的“Automatic”项改为“Manual”,如下图所示:
在这里插入图片描述

3、然后选择“Target”选项卡的前面一个选项卡“Android”,点击下面的“Run”,执行Run后结果如下:
在这里插入图片描述

4、点击OK,程序会将APK写入手机,这时就可以在cmd中输入命令:adb -s HT21JV204550 shell monkey -v -p com.tencent.WeChat 500 ,通过在真实手机环境下进行测试了。

错误六

显示:adb端口被占用.
在这里插入图片描述

解决办法:
1、使用netstat -ano | findstr 5037查看5037端口对应的进程号(因为5037是adb的默认端口号);

2、taskkill /f /pid 进程号即可杀死,如下图所示,杀死PID为9516的进程:

在这里插入图片描述

本文章首发于微信公众号:【ITester软件测试小栈】,欢迎大家关注,第一时间获取最新文章和资源。(包括但不限于Jmeter、Selenium、Python、数据库、Linux、网络、Github、APP测试、专项测试等)
在这里插入图片描述

日供一卒,功不唐捐,这不是一个非正常更新的ITester软件测试小栈,不定期分享软件测试相关,包括功能、接口、自动化、性能、专项、测试开发,简历指点,面试助攻,群而不党,和而不同,如趋同,且同行。

Q群:701841415
也开了微信交流群
有兴趣的喵们
可以私撩coco(wx:Cc2015123)把你拖进去

posted @ 2019-10-08 19:01  ITester软件测试小栈  阅读(1183)  评论(0编辑  收藏  举报