1

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 つのスレッドしか呼び出していないようです。これについて私を助けることができる人はいますか?前もって感謝します!!!

4

0 に答える 0