那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CANoe編寫CAPL測試腳本的幾點思考

jf_EksNQtU6 ? 來源:汽車通信技術 ? 2024-01-02 10:42 ? 次閱讀

01配置參數的統一性和便利性

測試腳本的開發人員,需要考慮到測試執行者測試不同控制器時的參數配置。比如不同的網絡喚醒條件、不同的網絡管理消息、不同的時間參數等等。

編寫的測試腳本給他人使用時,最好是把參數配置入口放在一個地方,比如專門的參數配置文件中:

21a0cde6-a7c4-11ee-8b88-92fbcf53809c.png

參數配置文件

再不濟可以放在CANoe的系統變量模塊中:

21b41c16-a7c4-11ee-8b88-92fbcf53809c.png

系統變量模塊

不建議放在CAPL代碼中配置測試參數:

21c655d4-a7c4-11ee-8b88-92fbcf53809c.png

CAPL變量模塊

為什么不建議放在CAPL代碼中配置參數?保證代碼的封閉和穩定,以免造成腳本執行錯誤。同時也能讓不懂代碼的測試人員執行測試。即使腳本開發人員執行測試,在代碼中配置測試參數也不是一個好的選擇。

02代碼架構的重要性

在測試腳本開發過程中,需要考慮到如何構建代碼,尤其是在一個大型的測試腳本中,實現功能眾多,邏輯復雜,如果沒有清晰的代碼架構,不僅會增加大量的冗余代碼,還會造成調試的難度變大。

比如在每次測試用例執行前,需要執行測試初始化,初始化需要完成:讀取配置文件參數、獲取測試執行時間、配置測試報告信息等。其中"讀取配置文件參數"需要獲取多個參數值,獲取多個參數值是一個重復的動作。

獲取多個參數值可以通過傳入不同的參數調用同一個函數來實現。然后把獲取多個參數值的功能用一個函數封裝,再把這個封裝的函數在初始化函數中調用。

21d85c66-a7c4-11ee-8b88-92fbcf53809c.png

代碼結構

這樣做的好處是當你在配置參數文件中新增參數,CAPL代碼中只需要在ReadIniFile_EthComTest()函數中調用ReadParameter(),傳入正確的參數即可。而且結構化的代碼層次分明、邏輯清楚、調試失敗時容易定位問題點。

03代碼語法的細節化掌握

很多人覺得學CAPL就是學CAPL提供的函數接口,當然很多人學不下去也是因為CAPL里的函數太多了,不知道哪個功能應該使用哪個函數。其實學習CAPL編程和其他語言一樣,首先要做的應該是打好基礎,系統性地學習CAPL基本語法,深入了解語法中的細節。

下面這個錯誤很多人應該遇到過:

21f36dbc-a7c4-11ee-8b88-92fbcf53809c.png

CAPL運行錯誤

這種由于沒有考慮到數組大小而造成內存溢出的問題,在CAPL編譯階段是不會出現的。

而像字符串類型的數據要如何定義內存大小、如何賦值、如何讀取,看似簡單卻是調試中最容易出問題的。

04注釋說明的必要性

在開發測試腳本的過程中,需要對代碼進行必要的注釋,有利于自己或他人后期維護。

自定義函數應該描述函數功能、行參說明、返回值含義等。一些重要的環節也應該對代碼進行單獨注釋,以幫助后期維護的邏輯梳理。

222bf15a-a7c4-11ee-8b88-92fbcf53809c.png

注釋說明

05腳本的高可用性

域集中式的整車架構中,多種ECU和控制器并存,對測試腳本的可用性帶來挑戰。尤其考慮到整車廠,編寫的測試腳本不能只是一錘子買賣,只能用來測試一個控制器,換一個件就出現各種奇怪的問題,這肯定是不行的!

拿CAN通信測試來說,有的控制器是本地喚醒、有的控制器是遠程喚醒;有的控制器需要E2E校驗,有的不需要;有的控制器的DTC是CAN消息觸發,但是以太網通道讀取。要考慮的因素太多,不只是要對整車網絡架構有所了解,對所有控制器功能差異有所掌握,還要思考如何把這些差異做到腳本中,讓同一個腳本能夠跑通所有控制器。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16448

    瀏覽量

    179463
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62977
  • 腳本
    +關注

    關注

    1

    文章

    392

    瀏覽量

    14938
  • CANoe
    +關注

    關注

    4

    文章

    66

    瀏覽量

    8713

原文標題:CANoe編寫CAPL測試腳本的幾點思考

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CAPL介紹-腳本編輯和常用基本事件#CANoe#CAPL#腳本

    編程語言
    北匯信息POLELINK
    發布于 :2023年01月06日 09:06:50

    CANoe:網絡和ECU開發、測試和分析的專業工具

    CANoe的主要應用案例之一就是ECU和網絡測試。例如:驗證單個開發階段,檢查原型,回歸測試和合格測試。為了使得測試任務簡單易行,
    發表于 10-09 17:42

    Vector-CANoe 軟件中文資料,CPAL語言,軟件使用方法等

    本帖最后由 追風逐浪 于 2019-3-12 14:29 編輯 Vector-CANoe 軟件中文資料,CPAL語言,軟件使用方法等CANoe.LIN基礎培訓 CANoe快速入門 CAP
    發表于 03-12 14:20

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發表于 01-11 16:50 ?4次下載

    詳細介紹下如何解析ODX數據庫

    針對涉及診斷功能類(如DTC等)測試的項目,實現過程大致為兩步:先通過CANoe-CAPL完成通用的診斷功能測試腳本的開發;
    的頭像 發表于 02-17 10:27 ?1227次閱讀

    什么是CAPL編程?

    與Vspy的"C Code Interface"一樣;在CANoe的使用中,一樣提供了我們進行二次編程開發的工具——”CAPL Browser”。
    的頭像 發表于 06-18 10:13 ?2831次閱讀
    什么是<b class='flag-5'>CAPL</b>編程?

    使用Python訪問CANoe COM接口實踐

    本文介紹CANoe COM基本構成、常用COM對象以及Python腳本調用CANoe COM的方法。
    的頭像 發表于 07-27 16:16 ?3379次閱讀
    使用Python訪問<b class='flag-5'>CANoe</b> COM接口實踐

    淺談CANoe實現SOA仿真測試

    本文介紹怎么通過我們CANoe工具去實現SOA的相關功能。CANoe Communication Setup功能為實現SOA模型的交互和模型測試提供了全新的接口。用戶可以通過CANoe
    的頭像 發表于 08-01 14:17 ?1840次閱讀
    淺談<b class='flag-5'>CANoe</b>實現SOA仿真<b class='flag-5'>測試</b>

    CAPL編程語言快速入門

    CAPL是由Vector公司開發的類似于C語言的面向過程編程語言,是CANoe和CANalyzer中可用的編程語言。CAPL中程序塊的執行由事件控制,在專用的編譯器中開發和編譯,這樣可以訪問數據庫中
    的頭像 發表于 09-17 16:11 ?2826次閱讀
    <b class='flag-5'>CAPL</b>編程語言快速入門

    新功能發布 | TSMaster新增CANoe自動化控制模塊,歡迎下載體驗!

    前言今天介紹TSMaster的新功能—CANoe自動化模塊。該模塊的功能是通過激勵CANoe內部的系統變量,配合運行在CANoe中的CAPL腳本
    的頭像 發表于 12-05 15:18 ?1578次閱讀
    新功能發布 | TSMaster新增<b class='flag-5'>CANoe</b>自動化控制模塊,歡迎下載體驗!

    ?CAPL在診斷中的應用,你值得了解!

    作者|胖胖磊小編|吃不飽CANoe主要用于汽車總線的開發并廣泛被汽車電子工程師們使用。它具有強大的開發、分析、仿真、診斷、測試等功能。一提到CANoe大家往往都會想到CAPL,在使用
    的頭像 發表于 09-07 08:27 ?1102次閱讀
    ?<b class='flag-5'>CAPL</b>在診斷中的應用,你值得了解!

    編寫一個點名器腳本

    目的:編寫一個腳本,可以將準別好的名字合集的.txt傳入腳本,然后每次隨機顯示一個人的姓名
    的頭像 發表于 11-06 12:41 ?620次閱讀
    <b class='flag-5'>編寫</b>一個點名器<b class='flag-5'>腳本</b>

    Python與CANoe/CANoe4SW

    Python作為功能強大的編程語言,在智能汽車研發和測試中應用廣泛,如數據處理、測試自動化、測試腳本開發,甚至直接將Python應用運行在車輛上。C
    的頭像 發表于 11-16 08:25 ?2389次閱讀
    Python與<b class='flag-5'>CANoe</b>/<b class='flag-5'>CANoe</b>4SW

    CAPL腳本使用介紹

    CAPL中也有類似于C語言中的回調函數的機制,如檢測報文周期和錯誤幀的函數中就可以使用,當周期超界或者總線出現錯誤幀就會自動調用回調函數執行一些操作
    的頭像 發表于 04-01 11:23 ?2409次閱讀

    Vector推出一套基于Visual Studio Code的免費插件

    在汽車軟件開發過程中,除使用MATLAB開發算法外,專業開發者也偏向使用Visual Studio Code來開發代碼,其中軟件測試用例的編寫是確保系統穩定性和可靠性的重要環節。傳統的CAPL
    的頭像 發表于 11-24 14:15 ?625次閱讀
    Vector推出一套基于Visual Studio Code的免費插件
    太和县| 百家乐趋势方向| 威尼斯人娱乐平台代理| 沙龙百家乐官网怎申请| 百家乐视频游戏视频| 888达人| 实战百家乐官网十大取胜原因百分百战胜百家乐官网不买币不吹牛只你能做到按我说的.百家乐官网基本规则 | 百家乐娱乐城体育| 盈丰娱乐城| 黄金城百家乐官网手机版| 大发888娱乐场and| bet365高尔夫娱乐场| 新锦江百家乐官网的玩法技巧和规则| 大发888 dafa888| 百家乐官网开线| 威尼斯人娱乐城轮盘| 八大胜百家乐官网娱乐城| 百家乐丽| 蓝盾百家乐官网网址| 大发888bet娱乐场下载| 缅甸百家乐官网玩假吗| 路劲太阳城怎么样| 百博百家乐官网的玩法技巧和规则| 大发888游戏充值| 免水百家乐官网的玩法技巧和规则 | 百家乐官网21点| 百家乐翻天电影| 现金百家乐官网下载| 大发888bet娱乐场下载| 百家乐怎么才会赢| 百家乐官网正确的打法| 百家乐皇室百家乐| 百家乐官网技巧-百家乐官网开户指定代理网址 | 百家乐官网蓝盾有赢钱的吗| 大发888娱乐城在线存款| 百家乐官网娱乐城博彩通博彩网| 鄯善县| 百家乐电投网址| 邯郸百家乐官网园怎么样| 168棋牌游戏| 至尊百家乐官网娱乐场|