目錄
0 引言
1 XML簡介
2 通過XML調用CAPL腳本
0 引言
? ? ? ? 紀念一下今天這個特殊日子,四年出現一次的29號。
? ? ? ? 在CANoe中做自動化測試常用的編程方法有CAPL和XML兩種,二者各有各的特色,對于CAPL來說新手肯定是更熟悉一些,因為說到在CANoe Test Module中寫腳本那基本80%用的都是CAPL,但它的缺點也很明顯就是不靈活,測試case的控制總體是通過MainTest()來實現的,當工程運行起來后沒有辦法自由轉換測試用例。
void MainTest()
{tWakeUp_200 = 5;tSleep = 6000;testWaitForTimeout(2000);//等待系統變量的響應;testModuleTitle(" NM Automation Test");testGroupBegin("NM Test","");BSM_To_RMS(); //測試用例1RMS_To_RSS(); //測試用例2testGroupEnd();
}
所有的測試用例都被集成在了CAPL測試文件中不能自由選擇:
而使用XML的方法就很好的克服這些缺點,每個case都是獨立的個體,可以自由的去選擇想要測試的測試用例,這與在VT中生成的case相類似。但XML對新手基本來說是一種陌生的語法,專門使用XML去編寫case也會占用不少的時間成本去學習。因此本文重在講解一種融合了XML的靈活性和CAPL的易上手性相結合的方法來幫助新手提升測試效率,并且了解兩種語言的魅力。
1 XML簡介
幫助文檔中對XML的介紹如下,感興趣的朋友可以自行閱讀:
????????當要從現有數據生成大量測試用例時,在XML中使用文本模塊是特別方便的。由于XML文件基本上包含測試參數,因此生成器必須簡單地將現有數據轉換為所需的XML形式。
????????一個XML測試模塊由:任意數量的測試用例組成,這些測試用例可以分組在測試組中。測試用例按照在XML文件中定義的順序進行處理。單個測試用例可以從執行對話框的執行中排除。每個測試用例通常由單獨的測試和控制功能組成。一旦測試/控制功能失敗或違反約束/條件,被執行的測試用例就會終止,并在測試報告中被標記為失敗。測試模塊本身不會中止;測試只是繼續進行下一個測試用例。
2 通過XML調用CAPL腳本
使用XML和CAPL相結合的方法進行測試:
1.創建XML節點得到XML文件:
2.在XML文件中輸入如下代碼:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?><testmodule title="123" version="V1.0"><!--variants > <variant name="All" > </variant> <variant name="Auto" > </variant><variant name="SemiAuto" > </variant><variant name="NA"> </variant></variants--><testgroup title="123"> <capltestcase name="MotorMovePoweroff" //name 雙引號里的內容要與testcase的名字相一致 title="MotorMovePoweroff"> </capltestcase><capltestcase name="PowerSlowUpDown" title="PowerSlowUpDown"> </capltestcase><capltestcase name="PowerandSleepMode" title="PowerandSleepMode"> </capltestcase><capltestcase name="PowerSlowUpDown" title="PowerSlowUpDown"> </capltestcase><capltestcase name="EcuStandby" title="EcuStandby"> </capltestcase><capltestcase name="PowerSlowUpDown" title="PowerSlowUpDown"> </capltestcase><capltestcase name="PowerSlowUpDown" title="PowerSlowUpDown"> </capltestcase><capltestcase name="StressTest_EOLselflearning" title="StressTest_EOLselflearning"> </capltestcase> <capltestcase name="HighVoltageMotorMove" title="HighVoltageMotorMove11"> </capltestcase><capltestcase name="LowVoltageMotorMove" title="LowVoltageMotorMove"> </capltestcase> <capltestcase name="ZeroGravityToDefaultPositionAndRetract" title="ZeroGravityToDefaultPositionAndRetract"> </capltestcase><capltestcase name="ZeroGravityToDefaultPositionBeinterruptedAndRetract" title="ZeroGravityToDefaultPositionBeinterruptedAndRetract"> </capltestcase> <capltestcase name="ZeroGravityToSEMI_DefaultPositionAndRetract" title="ZeroGravityToSEMI_DefaultPositionAndRetract"> </capltestcase> <capltestcase name="ZeroGravityUnfoldMemory" title="ZeroGravityUnfoldMemory"> </capltestcase> </testgroup></testmodule>
?3 在XML節點中導入我們所需的CAPL文件:
4.完成如下圖所示:
?
TIPs:
a. 需要注意的時導入XML中的CAPL腳本內不能含有?MainTest()
b.在XML文件中capltestcase ?name=“A”,A必須和CAPL腳本中的測試用例的名稱相一致