这是一个慢速应用程序的示例代码。 (想象一下Linux的启动)这是应该控制的DUT。
#linux.py
import time
print('Loading kernel ......')
time.sleep(0.5)
print('Loading foo [ OK ]')
time.sleep(0.5)
print('Loading bar [ OK ]')
time.sleep(0.5)
input('login> ')
我想通过pexpect python脚本进行控制,如下所示。
# controller.py
import pexpect
import sys
pybin = sys.executable
command = pybin + ' linux.py'
p = pexpect.spawn(command)
p.expect('> ',timeout = 5)
print(p.before.decode(),end='')
print(p.match.group(0).decode())
p.sendline('')
可以,但是在完全启动之前,我无法获得“ Linux.py's” 引导的控制台输出。我的意思是,登录提示之前我没有得到反馈。想象一下,启动过程中出现错误。上面的脚本会因超时异常而失败。
我的目标
要监视子进程并在等待提示时打印其输出。怎么办?