无法从Jenkins连接到Android设备

无法从Jenkins连接到Android设备,android,python,jenkins,androidviewclient,Android,Python,Jenkins,Androidviewclient,因此,我过去常常从Jenkins内部调用MonkeyRunner脚本,以连接到USB Android设备并运行一些自动化测试,但是MonkeyRunner本身相当不稳定,因此我切换到奇妙的AndroidViewClient,并将测试脚本移植到这个纯Python API上 新的Python脚本在独立于shell调用时工作良好,但是目标是从Jenkins处调用此脚本作为后期构建步骤 我遇到的问题是与USB Android设备的初始连接。下面的脚本是实际测试脚本的一个片段-这是测试USB设备是否存在并

因此,我过去常常从Jenkins内部调用MonkeyRunner脚本,以连接到USB Android设备并运行一些自动化测试,但是MonkeyRunner本身相当不稳定,因此我切换到奇妙的AndroidViewClient,并将测试脚本移植到这个纯Python API上

新的Python脚本在独立于shell调用时工作良好,但是目标是从Jenkins处调用此脚本作为后期构建步骤

我遇到的问题是与USB Android设备的初始连接。下面的脚本是实际测试脚本的一个片段-这是测试USB设备是否存在并在连接到Android设备之前获取其序列号的部分。这在ubuntu shell中运行良好,但是从Jenkins的“执行shell”调用时无法连接

#! /usr/bin/env python

# Import Class Files

import re
import sys
import os
import time
import commands
import signal
import subprocess
import codecs

ubuntuHome = os.getenv('HOME')
sdkRootDefault = ubuntuHome + '/dev_env/ADT/sdk'
sdkRoot = os.getenv('ANDROID_SDK_ROOT',sdkRootDefault)
platformTools = sdkRoot + '/platform-tools'

# Find the attached devices
adbcmd = platformTools + "/./adb devices |grep -v attached |grep device |head -n 1 | cut  -f1"
p = subprocess.Popen(adbcmd, shell=True, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
serialnoIn = (p.stdout.readline()).strip()

# No devices found then exit
if len(serialnoIn) == 0 or serialnoIn is None:
    print ("ERROR: No devices found")
    sys.exit(1)

print "INFO: Trying Connection to " + serialnoIn + "..." 
Ubuntu Shell的输出是:

信息:正在尝试连接到3a005473

来自Jenkins的“执行Shell”构建步骤

错误:找不到任何设备


有趣的是,当从原始MonkeyRunner脚本中调用相同的代码段时,它工作得很好。所以我想MonkeyRunner做一些我的Python脚本没有做的初始设置?我不是一个足够的Python专家,不知道如何配置USB设备。非常感谢您的帮助。

好的,答案非常简单-如果jenkins能够利用sdk工具和AndroidViewClient路径,这会有所帮助

sudo-rmu:jenkins:rwx

…修好了