我已将 Jenkins 设置为定期运行 iphone UI 自动化测试。
运行自动化的第一个测试脚本时,出于安全原因,OS X 会提示输入用户名和密码。
所以我制作了一个 perl 脚本,它从 Expect 生成命令并发送用户名和密码。
由于某种原因,发送了用户名,但没有发送密码。
密码最终会被发送,但在我的命令超时之后。
下面的代码:
my $cmdString = "instruments -t $traceTemplatePath $AppFolder -e UIASCRIPT $escapedTest " .
"-e UIARESULTSPATH Logs";
if ($isFirst == 1) {
$isFirst = 0;
$password = `cat /Users/\$USER/.password`;
# Actually spawn the command from Expect.
my $exp = Expect->spawn($cmdString)
or die "Failed to spawn command in Expect: $! \n";
#change delay if necessary
$exp->expect(30, [qr/Name .*/]);
$exp->send("\n");
$exp->expect(undef, [qr/Password/]);
$exp->send("$password\n");
}
我想要做的是在我的命令超时之前发送密码,以便它运行测试脚本。