AUTOMATIONDESK · SCRIPTING

AutomationDesk測試腳本撰寫方式
與語言介紹

AutomationDesk 支援多種撰寫測試腳本的方式:從圖形化控制流 sequence、訊號式測試範本,到內嵌 Python、COM 自動化 API,以及在即時平台上執行的 Real-Time Testing。本頁逐一介紹並說明所用語言。

圖形化 Sequence Python(Exec) COM API(TAM) 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.pyCreateProject.cs
建立自訂程式庫CreateCustomLibrary.pyCustomLib.cs
執行專案ExecuteProject.pyExecuteProject.cs
停止執行(StopEvent)ExecuteProject_StopEvent.pyStopExecution.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. 方式比較與選用建議

方式語言執行位置適用
圖形化 SequenceBlocks(視覺化)主機 / 經 block 存取平台一般控制流測試、易讀易維護
Signal-Based Testing範本 + 訊號描述主機 / 平台標準化、資料驅動的訊號測試
內嵌 PythonPython主機(sequence 內)彈性邏輯、演算法、擴充
COM API(TAM)Python / C# / COM 語言外部客戶端批次自動化、CI 整合、外部框架
Real-Time TestingPython(平台)即時平台需硬即時時序的測試

延伸閱讀: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\