これが私がする必要があることです。モンキーランナーを使用してテストする必要がある2つのデバイスがあります。Pythonとmonkeyrunnerを使用した自動テストです。2台のデバイスで同時にテストを実行したいので、スレッドを使用することを考えました。
これがコードです
スレッドのインポート
import datetime import os、sys
com.android.monkeyrunnerからConfigParserをインポートします
日時からMonkeyRunner、MonkeyDevice、MonkeyImageをインポートします
java.netから日時をインポートするhashlibをインポートする
com.ziclix.python.sqlからSocketExceptionをインポートします
zxJDBCをインポートする
def UseThread(data1、data2、data3、devID、Code、ScreenshotRef、logFile):
device = MonkeyRunner.waitForConnection(10, devID) 'threaded code' 'initialization'
file = open(os.path.dirname(os.path.realpath(file))+'\ Samples.txt'、'r')while 1:
一方1:line = file.readline()
if not line: print 'Done!' break else: line val=line.split('\t') data1 = val[0] data2 = val[1] data3 = val[2] threads = [] for Code in cp.options('p'): devID = cp.get('product',Code).strip() ScreenshotRef = cp.get('source','ScreenshotRef') + '\\' + prodCode.upper() logFile = outputFolder + '\\' + prodCode.upper() + '\\logs.txt' t=threading.Thread(target=UseThread,args=(data1, data2, data3, devID, prodCode, ScreenshotRef, logFile)) threads.append(t) t.start() for i in range(0,len(threads)): threads[i].join()
問題はこれです。whileループが1回の実行を終了し、2回目の実行に進むと、monkeyrunnerが接続を待機しているときに、コードがその部分でハングします。正確には、これは停止する部分です
デバイス=MonkeyRunner.waitForConnection(10、devID)
メッセージには「Monkeycommandwake」と表示されます。
接続を確立する行の前に何かを印刷しようとしたため、問題はスレッドではなく接続に関係していると思います。
すでに接続しているのに接続に問題がありますか?最初に前の接続を閉じる必要がありますか?