AutomationDesk測試腳本撰寫方式
與語言介紹
AutomationDesk 支援多種撰寫測試腳本的方式:從圖形化控制流 sequence、訊號式測試範本,到內嵌 Python、COM 自動化 API,以及在即時平台上執行的 Real-Time Testing。本頁逐一介紹並說明所用語言。
AutomationDesk 以圖形化編輯器描述 control-flow-based 與 signal-based 的自動化任務,並可用可擴充的程式庫與 Python 深度擴充;其功能建構於 Test Automation Model(TAM)之上,並提供 COM API 供外部程式遠端控制。以下彙整五種撰寫測試腳本的方式,並介紹所用語言。內容整理自 dSPACE 原廠 AutomationDesk 手冊(RLS2024-B)。
1. 五種撰寫方式總覽
① 圖形化控制流 Sequence
以 automation blocks + data objects 組成控制流,免寫程式碼。
② Signal-Based Testing
以範本(template)與訊號描述設定標準化測試場景。
③ 內嵌 Python(Exec / 自訂程式庫)
於 Exec block 或自訂程式庫以 Python 擴充。
④ AutomationDesk COM API
外部程式(Python / C#)經 COM 遠端控制 AutomationDesk。
⑤ Real-Time Testing(平台上的 Python)
測試腳本以 Python 在即時平台上執行,達成硬即時的測試時序。
2. 方式一:圖形化控制流 Sequence
最基本、免寫程式碼的方式:在 Sequence Builder 以 automation blocks 表達測試演算法的控制流,並以 data objects 參數化。
- Basic Elements標準程式元素,如
Serial、For、IfThenElse、Sleep等(於 Home ribbon 的 Insert 加入)。 - Data Objects專案特定變數(integer、float、string、array…),可被 block 以「值」或「參考」參數化。
- 內建結果與報告執行後可指定報告參數並產生格式化報告。
3. 方式二:Signal-Based Testing
Signal-Based Testing 程式庫提供預定義的 sequence/block 範本,將測試場景視為「以輸入訊號刺激、以輸出訊號擷取反應,並與參考訊號比較」。測試主要透過訊號描述設定,內含結果評估與報告,適合標準化、資料驅動的測試。
4. 方式三:內嵌 Python(Exec block / 自訂程式庫)
需要更彈性的邏輯時,可在 sequence 內以 Python 撰寫:
- Exec block由要執行的 Python 腳本指定;可動態新增 data objects 到其介面。以 Python Editor 編輯。
_AD_別名Python 腳本中可經_AD_別名存取 data object 的值,串接圖形化元素與程式碼。- 自訂程式庫可在 library 中整合 Python 模組與套件,建立可重用的 block/subsequence/sequence 範本。各 Access 程式庫也以此形式提供對應 Python 模組(如
audmodeldeskaccess、audmotiondeskaccess)。
# Exec block 內的 Python 範例(經 Access 程式庫模組)
import audmodeldeskaccess
MyVehicleMass = audmodeldeskaccess.GetScalarParameter(
"VehicleDynamics.VEHICLE_MASS_AND_ADDITIONAL_LOADS.Const_m_Vehicle")
5. 方式四:AutomationDesk COM API(TAM)
AutomationDesk 提供 COM-based API,可建立 COM server 讓外部客戶端遠端控制 AutomationDesk 的測試自動化物件模型(TAM)——例如建立專案、加入 sequence/data object、執行並取得結果。
與語言無關
COM 支援跨應用/跨語言溝通,客戶端可用任何 COM 相容語言實作;原廠範例提供 Python 與 C# 兩種版本。
範例位置
<Documents>\API\Scripting_Python\*.py 與 <Documents>\API\Csharp\*.cs(CreateProject、ExecuteProject、MainLibrary…)。
| 工作 | Python 範例 | C# 範例 |
|---|---|---|
| 建立/結構化專案 | CreateProject.py | CreateProject.cs |
| 建立自訂程式庫 | CreateCustomLibrary.py | CustomLib.cs |
| 執行專案 | ExecuteProject.py | ExecuteProject.cs |
| 停止執行(StopEvent) | ExecuteProject_StopEvent.py | StopExecution.cs |
| 評估 / MATLAB 存取 | Evaluation.py · MATLABAccess.py | — |
亦提供 TAMAutomation.py 作為 Python wrapper;API 章節另含「Translating Code Into Other Programming Languages」,說明如何轉譯為其他語言。
6. 方式五:Real-Time Testing(平台上的 Python)
Real-Time Testing(RTT)讓測試腳本以 Python 直接在即時平台上執行,達成硬即時的測試時序(不受主機 PC 與通訊延遲影響)。AutomationDesk 以 Real-Time Testing 程式庫自動化 RTT 專案:產生 BCG(byte code generator)檔、初始化、執行與卸離(detach)。範例位於 <Documents>\RealTimeTesting。
7. 腳本語言介紹
Python(主要腳本語言)
AutomationDesk 隨 dSPACE 安裝內附 Python 直譯器,API 參考與程式碼範例皆以 Python 撰寫,可立即使用。用於 Exec block、自訂程式庫、COM API 客戶端與 RTT。
- 可用 PythonWin 開發(Start → Programs → Python 3.9 → PythonWin)。
- Real-Time Testing:平台端支援 Python 3.11、主機端支援 Python 3.12;使用 RTT 的 dSPACE 軟體須與其 Python 版本相符。
- 版本因元件而異;舊的即時模型/BCG 檔須以當前 RTT 版本重新編譯以升級 Python。
C# / 任何 COM 相容語言(API 客戶端)
COM API 可由任何 COM 相容語言的客戶端使用;原廠除 Python 外另提供 C# 範例(<Documents>\API\Csharp\)。適合整合進既有的 .NET 或其他自動化框架。
圖形化 Sequence(非文字語言)
以 automation blocks 與 data objects 表達控制流的視覺化「語言」,無需文字程式碼即可建立、參數化與執行測試,並可與 Python 混用。
8. 方式比較與選用建議
| 方式 | 語言 | 執行位置 | 適用 |
|---|---|---|---|
| 圖形化 Sequence | Blocks(視覺化) | 主機 / 經 block 存取平台 | 一般控制流測試、易讀易維護 |
| Signal-Based Testing | 範本 + 訊號描述 | 主機 / 平台 | 標準化、資料驅動的訊號測試 |
| 內嵌 Python | Python | 主機(sequence 內) | 彈性邏輯、演算法、擴充 |
| COM API(TAM) | Python / C# / COM 語言 | 外部客戶端 | 批次自動化、CI 整合、外部框架 |
| Real-Time Testing | Python(平台) | 即時平台 | 需硬即時時序的測試 |
延伸閱讀:AutomationDesk 範例詳細說明。
原始文件出處(dSPACE RLS2024-B)
| 文件 | 檔名 |
|---|---|
| AutomationDesk Automation(COM API / TAM、Python 與 C# 範例) | AutomationDeskAutomation.pdf |
| AutomationDesk Basic Practices(Exec block、Python 整合、blocks) | AutomationDeskBasicPractices.pdf |
| AutomationDesk Tutorial / Introduction and Overview(控制流/訊號式測試) | AutomationDeskTutorial.pdf · …IntroductionAndOverview.pdf |
| AutomationDesk Accessing Real-Time Testing(平台 Python 版本) | AutomationDeskAccessingRealTimeTesting.pdf |
路徑前綴:C:\Users\Public\Acolada\Cobrili\HelpSetStorage\dSPACEPDF\RLS2024-B\en\