monkeyrunner を使用してアプリをテストし、xmpp サーバーに接続するときに問題が発生しました。ログインボタンをクリックすると、xmpp サーバーへの接続が試行されます。
#press login button
print "press login button"
easy_device.touch(By.id('id/loginlogin'),MonkeyDevice.DOWN_AND_UP)
xmpp サーバーに正常に接続すると、テキストビューに「成功」が表示されます。それ以外の場合は「失敗」が表示されます。このテキストビューからテキストを取得し、テキストビューが xmpp 接続結果を取得するまでログを収集します。
targetText = 'success'
running = True;
while running:
getText = easy_device.getText(By.id('id/gridviewTitle')).encode('utf-8')
print getText
if getText.find('success') < 0:
print 'not find success'
MonkeyRunner.sleep(6)
else:
print 'find success'
running = False
else:
print 'While loop over'
私はログを取得します:
def log(fn, device):
msg = device.shell('logcat -v time -d')
f_log = open(fn, 'at')
if msg is None:
msg = 'None'
f_log.write(msg.encode('utf-8'))
f_log.close()
device.shell('logcat -c')
print 'Write logs'
log(logcatname, device) # Write logs
monkeyrunner スクリプトを実行している間、Eclipse からの logcat もチェックします。接続スレッドが中断されていることがわかりました。monkeyrunner スクリプトの実行が終了した後も、xmpp サーバーへの接続が続行されます。ここにEclipseからのログがあります:
09-09 16:59:24.954: I/Androidpn_ServiceManager(20901): serviceThread.start
09-09 16:59:24.957: I/Androidpn_ServiceManager(20901): serviceThread.run
09-09 16:59:25.082: D/Androidpn_NotificationService(20901): onStart()...
09-09 16:59:49.428: D/Androidpn_NotificationService(21155): onCreate()...
09-09 16:59:49.494: D/Androidpn_NotificationService(21155): deviceId=860898020057333
09-09 16:59:49.510: D/Androidpn_NotificationService(21155): onStart()...
NotificationService strat が約 25 秒経過した後、このスレッドは monokeyrunner スクリプトが終了した後も実行を続けます。これにより、接続のログを取得できません。結果をチェックする前に MonkeyRunner.sleep(30) を増やしてみましたが、助けにはならず、monkeyrunner は現在 1 つのスレッドしか呼び出していないようです。これについて私を助けることができる人はいますか?前もって感謝します!!!