移动端测试相关

远程使用 STF 平台真机问题汇总

2021-11-01  本文已影响0人  思念_似水流年

一、无法通过 adb connect 连接使用远程真机

报错信息如下:

Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error
occurred while processing the command. Original error: Error getting device API
level. Original error: Error executing adbExec. Original error: 'Command 'D:\\so
ftware\\AndroidSDK\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s 172.
26.131.185\:7413 shell getprop ro.build.version.sdk' exited with code 1'; Stderr
: 'error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.

问题原因: 未添加 adbkey
该台连接设备未授权 adb 服务,需要在 STF 平台增加自己电脑对应的 adbKey。
在 STF 平台增加你的 adbKey之后,就可以随时通过 adb connect 连接使用 STF 的设备了。

添加方式:

  1. 打开 STF 云真机平台的 Settings 页面,点击 Keys Tab,点击 ADB Keys 右侧的添加按钮,输入自己电脑上对应的 adbkey 和设备名称,添加成功即可;


    image.png
  2. 未通过第一种方式添加,当使用 adb connect 方式调用到真机时,云真机平台也会弹出一个添加窗口,该窗口显示请求设备名称(通常显示默认的unknown)及设备对应的 adbkey,询问是否添加,点击添加即可。


    image.png

二、Appium 连接不上任何设备

报错信息如下:

Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error
occurred while processing the command. Original error: Error getting device API
level. Original error: Could not find a connected Android device.
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17
:03'
System info: host: 'B011603', ip: '192.168.56.1', os.name: 'Windows 7', os.arch:
 'amd64', os.version: '6.1', java.version: '1.8.0_181'
Driver info: driver.version: AndroidDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while pro
cessing the command. Original error: Error getting device API level. Original er
ror: Could not find a connected Android device.

出错信息表示未连接上任何 Android 设备。
排查问题步骤如下:

先检查是否本机的 adb 服务是否有异常

远程连接手机是通过 adb connect 命令连接云真机上的远程调试连接,若连接不上,需要检查一下是否本机的 adb 服务异常。
检查方式:

  1. 在云真机平台上选择一个可用的设备,点击 Use 使用该设备


    image.png
  2. 打开设备的 Control 页面,复制 Remote Debug 链接


    image.png
  3. 打开一个 cmd 窗口,粘贴该命令,检查命令结果
C:\Users\Ken>adb connect 172.26.131.185:7405
adb server version (36) doesn't match this client (41); killing...
* daemon started successfully
failed to authenticate to 172.26.131.185:7405

C:\Users\Ken>adb devices
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached

检查发现 adb connect 无法连接上设备,提示版本不匹配。
先不急着更新或降版本,继续检查 adb 服务。

  1. 检查 adb 服务使用的 5037 端口是否被占用
C:\Users\Ken>netstat -ano | findstr "5037"
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       9460
  TCP    127.0.0.1:5037         127.0.0.1:55432        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55433        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55448        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55449        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55463        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55464        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55478        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55479        TIME_WAIT       0
  TCP    127.0.0.1:5037         127.0.0.1:55494        TIME_WAIT       0

结果表明,确实是有应用占用了 5037 端口

  1. 查看占用端口的服务
C:\Users\Ken>tasklist | findstr "9460"
nox_adb.exe                   9460 Console                    2      7,296 K

发现是夜神模拟器占用了该端口,杀掉该应用。

  1. 重新连接远程调试
C:\Users\Ken>adb connect 172.26.131.185:7405
failed to authenticate to 172.26.131.185:7405

C:\Users\Ken>adb devices
List of devices attached
172.26.131.185:7405     device


C:\Users\Ken>adb disconnect 172.26.131.185:7405
disconnected 172.26.131.185:7405

发现可以连接成功了,出现 failed to 提示时,可以忽视,可能是版本问题导致,但 adb devices 命令显示仍然是可以连接上设备的。
注意:测试完毕,记得使用 adb disconnect 命令断开连接。

  1. 测试完毕,在云真机平台断开设备,方便后续真机使用。


    image.png
上一篇 下一篇

猜你喜欢

热点阅读