51Testing软件测试论坛
标题:
对Linux 之 WC命令进行测试【要求实现自动化测试】
[打印本页]
作者:
liufeng
时间:
2009-6-2 21:40
标题:
对Linux 之 WC命令进行测试【要求实现自动化测试】
wc命令是linux中自带命令,这里,我们假设这个命令是开发人员实现的一个程序。
这个程序在执行时,有如下四种执行情况
wc –c 文件或者目录
wc –C 文件或者目录
wc --help 文件或者目录
wc --version 文件或者目录
********************************************
【解决答案】
前期准备:
mv /etc/inittab /root/inittab.bak
cd /root
wc -c inittab>Case_001.res
wc -C inittab 2>Case_002.res
wc --help inittab>Case_003.res
wc --version inittab>Case_004.res
这样我们就准备了预期结果
*******************
准备要读取的测试用例文件TestCase.file
Case_ID Option directory
Case_001 -c /root/inittab.bak
Case_002 -C /root/inittab.bak
Case_003 --help /root/inittab.bak
Case_004 --version /root/inittab.bak
**************************************
编写的测试脚本如下:
【main.sh】
1 #!/bin/sh
2 . ./myGetResult.sh
3 . ./myCallCmd.sh
4 tc_file=$1
5 [ -s $tc_file ]
6 if [ $? -eq 0 ];then
7 lineNO=0
8 while read case_id option directory
9 do
10 lineNO=`expr $lineNO + 1`
11 if [ "$lineNO" -gt 1 ];then
12 CallCmd $case_id $option $directory;
13 ret=$?
14 if [ $ret -eq 0 ];then
15 GetResult $case_id 0
16 else
17 GetResult $case_id 1
18 fi
19 else
20 continue
21 fi
22 done<$tc_file
23 else
24 echo "The file you enter is empty!"
25 exit 1
26 fi
【myCallCmd】
1 #!/bin/sh
2 CallCmd()
3 {
4 case_id=$1
5 ption=$2
6 directory=$3
7 wc $option $directory>$case_id.out 2>$case_id.err
8 return $?
9 }
【myGetResult】
1 #!/bin/sh
2 GetResult()
3 {
4 case_id=$1
5 isnormal=$2
6 if [ $isnormal -eq 0 ];then
7 diff $case_id.out $case_id.res
8 else
9 diff $case_id.err $case_id.res
10 fi
11 ret=$?
12 if [ $ret -eq 0 ];then
13 echo "$1---->pass"
14 else
15 echo "$1---->fail"
16 fi
17 }
*******************************
执行结果./main.sh TestCase.file
Case_001---->pass
Case_002---->pass
Case_003---->pass
Case_004---->pass
因为我们准备的预期结果是正确的,
而且实际结果也是正确的[因为开发的WC是正确的]
所以都pass。
注意diff命令:
作者:
june.diny
时间:
2009-6-3 13:08
写的不错,思路清晰,学习了
main.sh 中14-18行 可以直接写成GetResult $case_id $ret
14 if [ $ret -eq 0 ];then
15 GetResult $case_id 0
16 else
17 GetResult $case_id 1
18 fi
作者:
liufeng
时间:
2009-6-5 13:34
多谢指出
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2