使用monkeyrunner测试我的应用程序连接xmpp服务器时遇到问题。 单击登录按钮后,将尝试连接xmpp服务器。
#press login button
print "press login button"
easy_device.touch(By.id('id/loginlogin'),MonkeyDevice.DOWN_AND_UP)
如果成功连接到xmpp服务器,textview将显示“success”,或者显示“failed”。 我想从textview获取文本格式然后收集日志,直到textview获得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脚本时,我也检查了logcat形式的Eclipse。 我发现连接线程被挂起,并且在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大约25s之后,这个线程在monokeyrunner脚本完成后继续运行。 这导致我无法获取连接日志。 我试图在检查结果表格textview之前增加MonkeyRunner.sleep(30),但没有帮助,似乎monkeyrunner此刻只调用一个线程。 有谁可以帮我这个吗?在此先感谢!!!