2014-02-05 194 views
0

所以我曾經從Jenkins中調用MonkeyRunner腳本來連接到USB Android設備並運行一些自動化測試,但是MonkeyRunner本身相當不穩定,所以我切換到了夢幻般的AndroidViewClient並移植了我的測試腳本使用這個純Python API。無法連接到Jenkins的Android設備

當獨立於shell調用時,新的Python腳本工作正常,但是目標是從Jenkins調用此腳本作爲構建後步驟。

我遇到的問題是USB設備的初始連接。以下腳本是實際測試腳本的一部分 - 這是測試USB設備是否存在並在連接到Android設備之前獲取其序列號的部分。這從ubuntu shell可以正常工作,但是從Jenkins'Execute 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的外殼的輸出爲:

INFO: Trying Connection to 3a005473...

從Jenkins的執行殼牌生成步驟

ERROR: No devices found

有趣的是,當該相同的片段從原始MonkeyRunner腳本中把它稱爲工作得很好。所以我在想MonkeyRunner會做一些我的Python腳本沒有做的初始設置?我不夠了解Python專家知道如何配置USB設備。任何幫助表示讚賞。

回答

1

好的,答案很簡單 - 如果jenkins可以使用sdk工具和AndroidViewClient路徑,它會有所幫助!

sudo -Rm u:jenkins:rwx

...固定它

相關問題