• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

了解 Lotus C API 工具箱的自动测试框架

发布: 2009-5-30 11:31 | 作者: Niu Ya Wen | 来源: 测试时代采编 | 查看: 171次 | 进入软件测试论坛讨论

领测软件测试网

Wrk 文件夹是 wrksuite 的总目录。其中有三个主要的子文件夹 central、common 和 notes。

  • central 文件夹。这个文件夹包含自动测试脚本 tapi.ksh、kshell 脚本以及其他需要的文件。tapi.ksh 是自动测试框架的核心,控制着所有测试用例的 build/run 和日志记录。下一节我们将详细讨论。
  • common 文件夹。这个文件夹包含所有 wrksuite 测试用例的公用文件。
  • notes 文件夹。包含所有的 Lotus C API 工具箱自动测试用例。用户可以向这个文件夹增加新的用例。




回页首


自动测试框架

Lotus C API 工具箱包括 700 多个测试用例,并且随着 Lotus Notes 和 Domino 新版本的推出不断增加。逐个进行测试是不可能的,于是我们设计和开发了一个自动测试框架以提高效率。该框架包含所有的自动测试用例,测试人员可以方便地向这个框架增加新的用例。

自动测试框架如图 3 所示。进行集中控制的是一个 kshell 脚本,称为 tapi.ksh。您仅需启动脚本 tapi.ksh,然后等待测试结果。tapi.ksh 通过下列步骤来实现自动测试:

  1. 搜索测试目录下的所有测试用例,并创建用例列表文件 tapi.lst。测试目录包括 notes(测试所有用例)或者它的子目录(测试部分用例)。清单 1 显示了 tapi.ksh 的部分代码,用于搜索测试用例和创建列表文件。

清单 1. tapi.ksh,搜索测试用例和创建列表文件
 if [ "$Included" = '' ] ; then $ECHO "Searching for tests." find . -type d -print | grep $grepsw '[/\\][Uu][Ii]' > $tt else $ECHO "Running tests from $Included" cp $Included $tt fi sort $tt > $caselist if [ "$Exclude" != '' ] ; then   $ECHO "Tests in $Exclude will not be run"   sort $Exclude | comm -23 $caselist - > $tt   mv $tt $caselist fi    rm -f $tt

  1. 找到测试平台相应的 make 文件(和源文件在同一个目录下),按照列表文件构建每个测试用例。
  2. 运行每个测试用例。
  3. 记录测试结果。在 test 目录下生成两个主要的日志文件。一个是 suite.log,记录了所有用例的运行状态。另一个是 failed.log,记录所有失败的用例。清单 2 显示了用于构建和执行用例记录测试结果的 tapi.ksh 代码。

清单 2. tapi.ksf,构建和运行测试用例并记录其状态
while [ $(cat $caselist | wc -l) -gt 0 ]do	i = $(head -n 1 $caselist)	case_path = "$suite_path/$i"	cd $case_path	case_log = "$case_path/$c_log"	if [ -f $MAKEFILE ] ; then    $ECHO "$i...\c" | tee -a $log   total=`expr $total + 1`       if [ "$TARGET" = '' ]; then    status = $?      if [ $status -ne 0 ] ; then      $ECHO "...BUILD failed" | tee -a $log      $ECHO "$i......BUILD failed" >> $f_log        if [ -f $k_log ] ; then        pr -t -o 5 $k_log | tee -a $log | tee -a $f_log          i          buildfailures = `expr $buildfailures + 1`          else            $ECHO "...BUILD ok\c" | tee -a $log            rm -f $case_log            $Make -f $MAKEFILE TEST > $case_log  2>&1            Status = $?              if [ $status -ne 0 ] ; then           $ECHO "...TEST failed" | tee -a $log           $ECHO "$i......BUILD ok...TEST failed" >> $f_log           if [ -f $k_log ] ; then             pr -t -o 5 $k_log | tee -a $log | tee -a $f_log             fi               testfailures = `expr $testfailures + 1`           else             $ECHO "...TEST passed" | tee -a $log             $Make -f $MAKEFILE CLEAN > $case_log  2>&1             Status = $?             if [ $status -ne 0 ] ; then               ECHO "...CLEAN failed" | tee -a $log               else               rm -f $case_log               fi               if [ -f $k_log ] ; then               $ECHO "$i......BUILD ok...TEST passed" >> $f_log               pr -t -o 5 $k_log | tee -a $log | tee -a $f_log                 fi                 fi               fi           else           $Make -f $MAKEFILE $TARGET > $case_log  2>&1           status=$?           if [ $status -ne 0 ] ; then             ECHO "...$TARGET failed" | tee -a $log           else           ECHO "...$TARGET ok" | tee -a $log             rm -f $case_log           fi        fi	fi	tail -n $(($(cat $caselist | wc -l) - 1)) $caselist > 	tapi.tmp	mv tapi.tmp $caselistdone

使用这个框架进行自动测试,测试人员只需要将目录修改为 test 目录执行 tapi.ksh 脚本即可。所有测试用例都会自动运行,测试结果记录到日志文件中。测试人员可以检查日志文件中的运行结果并决定如何处理。


图 3. 自动测试框架
自动测试框架 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

42/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网