自动化测试脚本使用多进程大致分为两种情况。一种是 Test console 需要同时操作十几个设备,例如用于主机和存储互连的光纤交换机,用于光纤物理层断开测试的交换机 APCON 等。这类测试的特点是需要同时操作 10 几个或者 20 几个的测试对象,对它们的操作是配置操作,而且配置脚本都会成功,主进程只需要所有子进程执行完毕就认为所有子任务已经完成,然后可以进行后续的操作。因此采用一种较为简单的多进程编程方式。下面是针对这种情况的多进程处理的代码示例。
清单 1. 多进程处理的代码
our @cmd = ("./apcon_2052.exp 1 1 9.11.217.27 A15B15",
"./apcon_2058.exp 1 1 9.11.217.65 admin teamw0rk A05A06",
"./apcon_2052.exp 1 1 9.11.217.27 B09D09");
our $zombies = 0;
our $kid_proc_num = 0;
$SIG{CHLD} = sub { $zombies++ };
for(my $i=0; $i<@cmd; $i++) {
my $pid = fork();
if( !defined($pid) ) { exit 1; }
unless($pid) {
system "$cmd[$i]";
exit 0;
}
$kid_proc_num++;
}
while (1) {
if($zombies > 0) {
$zombies = 0;
文章来源于领测软件测试网 https://www.ltesting.net/