这几天在搭建pycharm + appium + 夜神模拟器 环境,完成一个测试入门案例,发现启动appium服务器时会一直报Killing adb server on port 5037,pycharm一直报连接不到安卓设备,在网上找了很多资料,说法有很多:
网上大部分说的有俩种情况:
第一种:5037端口被占用,需要netstat ano|findstr "5037" , 然后在去任务管理器去把进程杀死,但是实际上在cmd下面根本找不到其他程序用了5037端口。
第二种Android SDK的adb版本和夜神模拟器bin目录下的adb.exe和nox_adb.exe版本不一样,这个一开始我就有替换到。但是依然报错,非常的苦恼,终于找到了解决方法,中间有看到另外一份作者的,对她的进行了一些补充才解决了这个问题,后面我会著名是哪位作者,整个正确过程如下:
1、第一步,将Android SDK安装目录的platform-tools文件夹下adb.exe文件复制一份出来,复制到夜神模拟器的安装目录bin目录下覆盖里面的nox_adb.exe,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe。
(可能会遇到这样的情况:夜神模拟器安装目录的bin目录下本来就有一个adb.exe文件还有一个nox_adb.exe文件,这个时候我的操作是,先将Android SDK里面的adb.exe文件复制到桌面一份进行重命名,改成nox_adb.exe,然后再将这个文件粘贴到夜神模拟器安装目录bin目录里进行覆盖原有的nox_adb.exe文件,【这时我又遇到了不能讲文件移动至此目录下的提示,解决办法:打开任务管理器,杀掉nox_adb.exe后台进程立刻进行刚才的复制改名成nox_adb.exe的文件覆盖夜神模拟器安装目录bin目录里夜神模拟器安装目录bin目录里,哈,ok了】)。
2.
2.在cmd命令里查看adb和nox_adb版本是否一致
正常的应该和上面一样,但我在cmd里面执行命令只有adb的正常显示出版本,nox_adb显示没有此命令之类的,后面我就思考到我没有在高级系统设置环境变量的Path里没有给出nox_adb的路径,会不会是因为这个才找不到它,后来我就在Path中加上nox_adb的路径,并且我发现系统好像自定义了Android的接口为55,而不是5037,我又把接口改为5037,如图所示:
adb和nox_adb都要配置到Path环境变量里。然后就可以查出在cmd中nox_adb的版本啦,再进行后续的adb connect 127.0.0.1:62001和adb devices命令,再重新启动appium服务器就可以啦(前提是配置好下面的,在Appium的左上角Fire里的New Session Windwo里面,如下图)
其中,
platformName为Android(因为是Android模拟器),
platformVersion为7.1.2(在模拟器的设置中的关于平板电脑中可以看到Android版本),
deviceName为127.0.0.1:62001是模拟器的Ip地址+端口。
最后滴运行成功结果图(appium+pycharm),呜呜呜终于能睡个好觉了。