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 通過下列步驟來實現自動測試:
- 搜索測試目錄下的所有測試用例,并創建用例列表文件 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 |
- 找到測試平臺相應的 make 文件(和源文件在同一個目錄下),按照列表文件構建每個測試用例。
- 運行每個測試用例。
- 記錄測試結果。在 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. 自動測試框架

延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/