expect 自动化测试使用

1. spawn 的作用域,仅在当前代码块有效。


举例来说,如果在一个函数foo 中使用spawn 命令,在foo 函数之外,则无法使用send 命令往此进程发送数据,因此spawn 必须在send 的最外层。



2. 可以使用expect -re 对于命令输出进行检查


命令输出使用expect -re 匹配,然后再使用expect_out(index, string) 获取匹配的内容,其中index 表示第几个括号,从1开始计数。

注意表示数字的正则表达式是\\d


命令输出总内容 = “上一个命令的输出”  +  “当前的提示符”



3. 写文件时,不写入缓存,直接写到文件


如果仅使用puts $file $string,它会等到此文件被关闭后才写入,因此可以在puts 后面使用flush 命令,即flush $file,如此可以直接写入到文件。

当写入的文件需要很长时间时,此功能非常有用,可以在文件没有写完全时进行查看



4. tips


tcl 中的sleep 命令居然是after,后面的参数是毫秒,郁闷


send 命令有时会在尾部多添加一段字符串,具体原因未知,调试了快两天才发现这个问题。明明仅仅发送了576字节,但程序收到了873字节内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值