51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2442|回复: 2
打印 上一主题 下一主题

对Linux 之 WC命令进行测试【要求实现自动化测试】

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-2 21:40:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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命令:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-3-3 10:21
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2009-6-3 13:08:58 | 只看该作者
    写的不错,思路清晰,学习了
    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
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2009-6-5 13:34:23 | 只看该作者
    多谢指出
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 10:39 , Processed in 0.073523 second(s), 32 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表