自動化測試腳本使用多進程大致分為兩種情況。一種是 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;
文章來源于領測軟件測試網 http://www.kjueaiud.com/