我在 Linux 上有一个 C++ 项目,它实现了一个网络应用程序。我通过 CLI 在不同的计算机上手动运行测试,测试相互连接并发送数据。测试完成后,他们会打印一些统计数据。
我想自动化我的测试,我需要一个脚本或框架,可以在不同的计算机上远程运行我的测试,可以控制它,并且可以收集测试输出。
是否有一个测试框架可以满足我的需要,或者我应该通过 Perl 或 Shell 实现它还是......?
我在 Linux 上有一个 C++ 项目,它实现了一个网络应用程序。我通过 CLI 在不同的计算机上手动运行测试,测试相互连接并发送数据。测试完成后,他们会打印一些统计数据。
我想自动化我的测试,我需要一个脚本或框架,可以在不同的计算机上远程运行我的测试,可以控制它,并且可以收集测试输出。
是否有一个测试框架可以满足我的需要,或者我应该通过 Perl 或 Shell 实现它还是......?
由于这个问题没有答案,我现在使用 bash 脚本通过 ssh 远程运行我的测试。它看起来类似于
remote_wait()
{
host=$1
shift
ssh $host "for pid in \"$@\"; do while kill -0 \$pid; do sleep 1; done; done"
}
run_remote()
{
host=$1
shift
app=$1
shift
scp $app $host:/tmp/test_receiver 1>&2 || exit 1
ssh ${host} "{ $remote_app $@ >$app_log 2>&1 & }; echo \$! "
}
echo Starting receiver...
receiver_pid=`run_remote $userhost $1`
echo Starting sender...
./sender &
sender_pid=$!
wait $sender_pid
remote_wait $userhost $receiver_pid