2012-04-07 30 views
2

我想在数十个嵌入式Linux单元上运行测试脚本;在制造过程中,认证证书都是一样的。如何在单个控制台上对20多个网站进行测试?

测试大约一个小时,但我希望每个单元连续循环(在周末说)并报告当前的测试迭代(以每个单元为基础)。

我在想可能是要走的路(它肯定会帮助ssh登录),但在线文档是......呃......有点太分散了,看起来是一个简单的练习。

我被困在试图确定如何spawn我的嵌入式测试并行。在BASH中,我会使用&运算符将进程置于后台,但进入认证是一项挑战。

我应该使用expect还是坚持使用BASH脚本?


我做了什么:

使用的expect剧本我放在DUT上的SSH认证文件。在运行其余的bash脚本之前,DUT只有一个RAM文件系统来处理这个问题。然后,一个简单的BASH for循环在for循环中发出一个ssh命令来运行测试并将该会话放在后台线程上。 Comme ca:

for i in <IP devices to test> ; 
    do 
     ssh [email protected]$i "echo - \"IP Address: $i :\" ; test-script" & 
    done 

瞧!

+0

你的测试脚本驻留在单元上,并希望ssh进入这些单元并运行这些脚本? – dhchen 2012-04-07 15:22:59

+0

@dhchen是的。脚本在单位上;我用SSH运行它们。 – Jamie 2012-04-07 15:29:39

回答

2

安装SSH公钥认证(例如:http://www.petefreitag.com/item/532.cfm)与空白公钥密码,那么你可以使用SSH,而无需输入任何授权凭证运行这些脚本,所以你可以写的bash脚本,而无需用户干预来执行它们

+0

也会爱,但SSH密钥会随着每个软件负载而变化;这是不实际的原因之一。另一个是,一旦脚本被写入,它将与制造共享。软件/脚本的用户不是技术人员,要求他们设置公钥认证,以便进行go/nogo测试,从而确保制造过程的顺利进行。 – Jamie 2012-04-07 16:06:05

+1

然后,也许你可以试着在这些单元上用'nc'设置一个shell('nc -l -p port -v -e/bin/bash'或者类似的东西)并且把脚本回显到单元('echo -n “tests.sh \ n”| nc unis.ip.addr port') – dhchen 2012-04-07 16:19:18

+0

也不是一个实际的答案(我必须登录才能设置nc会话,更不用说它不在嵌入式系统上),但是+1把nc放在我的工具箱里。多么漂亮的小程序。 – Jamie 2012-04-07 16:35:44

相关问题