expect安装去测试

Posted anruy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了expect安装去测试相关的知识,希望对你有一定的参考价值。

1.下载expect和tcl

下载地址:http://download.csdn.net/download/tobyaries/5754943

2.安装expect

tar -zxvf tcl8.4.11-src.tar.gz 
tar -zxvf expect-5.43.0.tar.gz 
cd tcl8.4.11/unix
 ./configure
make && make install

cd expect-5.43

./configure --with-tcl=/usr/local/lib/ --with-tclinclude=/data/software/tcl8.4.11

make && make install

3.脚本测试

 

[plain] view plain copy
 
 print?技术分享技术分享
  1. #!/usr/bin/expect -f  
  2.   
  3.   
  4. set timeout 30  
  5. set name [lindex $argv 0]  
  6. set pw [lindex $argv 1]  
  7. log_user 0  
  8. spawn passwd $name  
  9. for {set i 1} {$i < 3} {incr i} {  
  10.     expect "*password:" {send "$pw\r"}  
  11. }  
  12. expect "*successfully"  
  13.     send_user "Password updated successfully\n"  
  14. expect eof  



 

 

[解析]

  很简单的程序,首先把第一个参数赋值给变量name作为用户名,把第二个参数赋值给pw作为密码。然后关闭标准输出,就是类似shell的 "> /dev/null",然后spawn开启子进程运行passwd程序,因为会重复输入2次密码,所以这里我们用到了TCL语法的for循环,执行2次密码输入。最后匹配到successfully字样的就输出修改成功,然后退出脚本。

以上是关于expect安装去测试的主要内容,如果未能解决你的问题,请参考以下文章

测试框架Mocha与断言expect

防止Jasmine测试expect()在JS完成执行之前解决

基于 Vue 测试套件引入 Mocha + Expect 测试 Vue 组件

pytest 是不是有类似谷歌测试的非致命 EXPECT_* 行为?

Junit - 期望异常测试(Expected Test)

在 WebdriverIO 中,为啥 `expect` 行需要在其前面加上 `await` 才能正确测试某些内容?