0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Robot Framework簡(jiǎn)介及在汽車電子測(cè)試中的應(yīng)用

北匯信息POLELINK ? 2022-08-04 18:04 ? 次閱讀

前言

汽車電子軟件扮演著越來越重要的角色,為適應(yīng)市場(chǎng)變化,車載軟件和功能的開發(fā)需要快速迭代。敏捷開發(fā)、持續(xù)測(cè)試、CI/CT/CD實(shí)現(xiàn)和DevOps等成了汽車電子行業(yè)的高頻詞,也正在幫助OEM和零部件供應(yīng)商實(shí)現(xiàn)頻繁的代碼部署和實(shí)現(xiàn)可靠軟件交付的目標(biāo)。測(cè)試自動(dòng)化是這些過程中不可或缺的一部分,因?yàn)榭梢蕴嵘郎y(cè)試效率以加速開發(fā)迭代,特別是對(duì)于重復(fù)性的任務(wù)或不需要任何人工干預(yù)的任務(wù)。

說到自動(dòng)化測(cè)試,Robot Framework作為自動(dòng)化測(cè)試領(lǐng)域的明星框架,已經(jīng)開始摩拳擦掌,躍躍欲試。今天我們一起來看下Robot Framework在汽車電子測(cè)試中,可以發(fā)揮出多大的作用。

1、Robot Framework簡(jiǎn)介

Robot Framework是一個(gè)廣受歡迎的自動(dòng)化測(cè)試框架。所謂框架,可以理解為一組準(zhǔn)則,遵循這些準(zhǔn)則可以獲取明顯的收益。自動(dòng)化測(cè)試框架就是由一個(gè)或多個(gè)自動(dòng)化測(cè)試基礎(chǔ)模塊、自動(dòng)化測(cè)試管理模塊、自動(dòng)化測(cè)試統(tǒng)計(jì)模塊等組成的工具集合。

Robot Framework是一個(gè)基于Python語(yǔ)言開發(fā)的,可擴(kuò)展的,是以關(guān)鍵字驅(qū)動(dòng)模式的自動(dòng)化測(cè)試框架。它具有以下特點(diǎn):

(1)編輯用例簡(jiǎn)單,啟用易于使用的表格語(yǔ)法,以統(tǒng)一的方式創(chuàng)建測(cè)試用例;

(2)提供從現(xiàn)有關(guān)鍵字創(chuàng)建可重復(fù)使用的更高級(jí)別關(guān)鍵字的功能;

(3)提供易于閱讀的結(jié)果報(bào)告和HTML格式的日志;

(4)提供一個(gè)簡(jiǎn)單的庫(kù)API,用于創(chuàng)建自定義測(cè)試庫(kù),可以使用Python或Java本機(jī)實(shí)現(xiàn);

(5)支持創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)的測(cè)試用例;

(6)提供標(biāo)記以分類和選擇要執(zhí)行的測(cè)試用例;

(7)可以和SVN或者GIT及Jenkins持續(xù)集成。

上文我們提到Robot Framework是以關(guān)鍵字驅(qū)動(dòng)模式的自動(dòng)化測(cè)試框架,同時(shí)支持創(chuàng)建數(shù)據(jù)驅(qū)動(dòng)的測(cè)試用例。那么關(guān)鍵字驅(qū)動(dòng)和數(shù)據(jù)驅(qū)動(dòng)分別有什么特點(diǎn)呢?

關(guān)鍵字驅(qū)動(dòng)是由關(guān)鍵字和數(shù)據(jù)組成測(cè)試用例執(zhí)行測(cè)試,測(cè)試框架的底層負(fù)責(zé)解釋關(guān)鍵字,完成指令,測(cè)試用例的編輯者只需要使用關(guān)鍵字和數(shù)據(jù)組合,即可實(shí)現(xiàn)復(fù)雜的測(cè)試邏輯。測(cè)試執(zhí)行的代碼和測(cè)試用例代碼是分離的。這種方式學(xué)習(xí)成本比較高,開發(fā)關(guān)鍵字及其相關(guān)功能的初始投資可能需要更長(zhǎng)的時(shí)間。

數(shù)據(jù)驅(qū)動(dòng)測(cè)試是從數(shù)據(jù)文件讀取輸入、輸出數(shù)據(jù),通過變量傳入測(cè)試腳本執(zhí)行測(cè)試,數(shù)據(jù)是可變的,測(cè)試設(shè)計(jì)是重復(fù)的、高度抽象的。使用這種測(cè)試方式可以減少重復(fù)勞動(dòng),測(cè)試用例易于修改和維護(hù)。但是這種方式不擅長(zhǎng)邏輯處理,一組腳本只能處理特定格式的數(shù)據(jù)。在一些特定的測(cè)試場(chǎng)景下,這種方式具有明顯優(yōu)勢(shì)。比如汽車ECU(如網(wǎng)關(guān))測(cè)試有數(shù)據(jù)轉(zhuǎn)發(fā)/路由的測(cè)試場(chǎng)景,需要測(cè)試的數(shù)據(jù)有時(shí)多達(dá)上千個(gè),我們只需創(chuàng)建一條數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù)的測(cè)試用例,從數(shù)據(jù)文件中讀取輸入、輸出數(shù)據(jù)后,遍歷所有數(shù)據(jù)即可完成測(cè)試。

2、Robot Framework整體架構(gòu)

Robot Framework是一個(gè)通用的,和具體測(cè)試工具松耦合的框架,其高度模塊化的架構(gòu)如下圖所示:

pYYBAGLrlSeAcTbiAAAiUWtUx0I546.png

測(cè)試數(shù)據(jù)(Test Data)使用非常簡(jiǎn)單、易于編輯的表格格式。Robot Framework會(huì)解析測(cè)試數(shù)據(jù),執(zhí)行測(cè)試用例,并生成日志和報(bào)告。框架本身對(duì)測(cè)試對(duì)象可以完全“一無所知”,而是通過測(cè)試庫(kù)與其交互。測(cè)試庫(kù)可能是直接使用被測(cè)應(yīng)用程序的接口,也可以使用其它底層的測(cè)試工具作為驅(qū)動(dòng)。

3、Robot Framework環(huán)境安裝

Robot Framework環(huán)境的安裝比較簡(jiǎn)單,只需兩步即可完成:

(1)安裝Python配置環(huán)境變量;

(2)打開dos窗口,輸入指令 pip install robotframework,點(diǎn)擊回車,安裝Robot Framework。

4、Robot Framework常用關(guān)鍵字

上文我們提到Robot Framework是一個(gè)關(guān)鍵字模式驅(qū)動(dòng)的自動(dòng)化測(cè)試框架,Robot Framework的測(cè)試用例由關(guān)鍵字和測(cè)試數(shù)據(jù)組成。關(guān)鍵字是用Python語(yǔ)言編寫的函數(shù),也即是一個(gè)個(gè)方法。它是為了完成一個(gè)功能來設(shè)計(jì)的,分為系統(tǒng)關(guān)鍵字和用戶關(guān)鍵字。

系統(tǒng)關(guān)鍵字包含標(biāo)準(zhǔn)庫(kù)里面的關(guān)鍵字和第三方庫(kù)里面的關(guān)鍵字,就像C/C++的庫(kù)函數(shù)或者Python的內(nèi)置函數(shù)一樣。

用戶關(guān)鍵字是根據(jù)業(yè)務(wù)需求將不同的業(yè)務(wù)封裝成一個(gè)關(guān)鍵字或者將用例執(zhí)行的步驟封裝成一個(gè)關(guān)鍵字,就像C/C++或者Python中的用戶自定義函數(shù)。

下面我們介紹幾個(gè)常見關(guān)鍵字的用途。

Convert To Integer:將給定的變量轉(zhuǎn)換成一個(gè)整數(shù)。示例:

poYBAGLrlSeAdMJTAAALEaeAGOM491.png

Import Library:導(dǎo)入擴(kuò)展庫(kù)或者自定義庫(kù)。示例:

pYYBAGLrlSeACL39AAAUSExZa4g952.png

Get Variable Value:獲取變量的值,賦給一個(gè)新的變量,如果變量不存在可以設(shè)置一個(gè)默認(rèn)值。示例:

poYBAGLrlSeAfHTwAAAUm2ynf1U684.png

Log:使用給定的級(jí)別記錄給定的信息。示例:

pYYBAGLrlSeAOYANAAAPdOgIeZw676.png

Set Variable:給變量設(shè)置值。示例:

poYBAGLrlSeAfSK1AAAk-eTqWKc468.png

Should Be Equal:Robot Framework中的斷言關(guān)鍵字,如果給定的對(duì)象不相等,就會(huì)判定失敗。示例:

poYBAGLrlSiAeDFeAAAUmYGCfmo133.png

Sleep:測(cè)試執(zhí)行等待一定時(shí)間。示例:

pYYBAGLrlSiAEqf0AAAPW95jcoA422.png

5、Robot Framework測(cè)試用例示例

說了這么多,大家肯定想趕緊看看Robot Framework是怎么使用的,現(xiàn)在我們通過一個(gè)簡(jiǎn)單的例子來說明Robot Framework是怎么執(zhí)行測(cè)試的。

這條測(cè)試用例的操作步驟如下:

(1)加載CANoe測(cè)試工程;

(2)啟動(dòng)測(cè)試;

(3)等待一定時(shí)間,確保CANoe啟動(dòng)完成;

(4)設(shè)置系統(tǒng)變量的值;

(5)等待一定時(shí)間,確保系統(tǒng)變量設(shè)置完成;

(6)獲取關(guān)聯(lián)系統(tǒng)變量的信號(hào)值;

(7)比較設(shè)置的值和讀取的值是否相同;

(8)終端輸出提示“測(cè)試用例執(zhí)行結(jié)束”。

Robot Framework編寫的測(cè)試用例如下圖一所示:

pYYBAGLrlcaAekqqAAE-hpseaHE984.png

圖一 Robot Framework測(cè)試用例示例

執(zhí)行測(cè)試用例:dos窗口中輸入robot測(cè)試用例路徑,點(diǎn)擊回車即可,這里執(zhí)行用例的邏輯是使用pip安裝Robot Framework時(shí),會(huì)在Python安裝路徑下面的Scripts文件夾生成robot.exe文件,Scripts文件夾已經(jīng)添加到系統(tǒng)路徑,因此不需要再配置robot.exe的系統(tǒng)路徑就可以直接調(diào)用。

執(zhí)行后用例后,CANoe中關(guān)聯(lián)系統(tǒng)變量的信號(hào)值設(shè)置成功,如圖二所示。

poYBAGLrldSAZxu-AADH0CjF1zs385.png

圖二 CANoe信號(hào)EngineState::OnOff值設(shè)置為1

用例執(zhí)行完成后,生成的測(cè)試報(bào)告如圖三所示。

pYYBAGLrleGARpCPAAFL28xVqPo377.png

圖三 測(cè)試用例執(zhí)行后生成的測(cè)試報(bào)告

6、Robot Framework與CANoe結(jié)合使用

相比于IT行業(yè)的軟件測(cè)試,汽車電子需要搭建硬件測(cè)試環(huán)境,測(cè)試時(shí)需要監(jiān)控和仿真很多總線信號(hào)和硬線信號(hào),CANoe作為專業(yè)的總線網(wǎng)絡(luò)開發(fā)和測(cè)試工具被眾多整車廠和供應(yīng)商的系統(tǒng)設(shè)計(jì)師、開發(fā)工程師和測(cè)試工程師所廣泛使用。配合Vector的硬件設(shè)備,如VN通信硬件接口卡及VT IO板卡,以及圖形化自動(dòng)化測(cè)試工程開發(fā)軟件vTESTstudio,可以勝任汽車電子研發(fā)測(cè)試的各項(xiàng)任務(wù)。Robot Framework和CANoe結(jié)合使用,既帶來了Robot Framework可以自動(dòng)部署測(cè)試軟件、自動(dòng)截取日志、可以生成易于閱讀的測(cè)試報(bào)告和可以靈活的選取測(cè)試用例的優(yōu)點(diǎn),也保留了Vector工具在多總線支持、網(wǎng)絡(luò)監(jiān)測(cè)和分析、系統(tǒng)仿真等方面的優(yōu)勢(shì),各取所長(zhǎng)。

CANoe是留有COM Interface的,這樣我們可以通過第三方的程序調(diào)用CANoe開放的API。調(diào)用交互的部分DEMO代碼如下圖四所示:

pYYBAGLrlfaAKI6UAAGulJTQ8Qg253.png

圖四 Python編程調(diào)用CANoe代碼

Robot Framework和CANoe結(jié)合使用一般有兩個(gè)思路:

第一種情況是把測(cè)試用例的過程主體在Robot Framework環(huán)境中編寫腳本實(shí)現(xiàn)并執(zhí)行,在執(zhí)行過程中調(diào)用CANoe提供測(cè)試數(shù)據(jù)、參數(shù)、變量的讀取和設(shè)定,這個(gè)思路適合對(duì)時(shí)間要求不敏感的測(cè)試用例。如下圖五所示用例,CanoeHandle為自定義的關(guān)鍵字庫(kù),創(chuàng)建了加載CANoe工程、啟動(dòng)測(cè)試、停止測(cè)試、獲取信號(hào)值、設(shè)置系統(tǒng)變量值、獲取系統(tǒng)變量值等關(guān)鍵字,可以使用這些關(guān)鍵字組合創(chuàng)建Robot Framework測(cè)試用例,執(zhí)行測(cè)試。

poYBAGLrlhKAbp57AADMVZjU5Fw233.png

圖五 基于Robot Framework編寫CANoe測(cè)試用例

第二種情況是測(cè)試用例整體在Vector工具鏈中開發(fā)測(cè)試工程和腳本(比如基于vTESTstudio開發(fā)圖形化測(cè)試工程或是CANoe-CAPL編寫測(cè)試腳本),并在CANoe中執(zhí)行工程和腳本。此時(shí),如圖六所示,Robot Framework作為一個(gè)測(cè)試用例管理框架來使用,CanoeHandle為自定義的關(guān)鍵字庫(kù),創(chuàng)建了加載CANoe工程、加載測(cè)試腳本、執(zhí)行測(cè)試腳本等關(guān)鍵字,可以使用Robot Framework進(jìn)行測(cè)試管理,根據(jù)實(shí)際需求刪選測(cè)試用例、自動(dòng)控制測(cè)試開始、停止等。結(jié)合Jenkins打造通用的自動(dòng)化持續(xù)集成測(cè)試平臺(tái),可以顯著提升測(cè)試效率。

pYYBAGLrliKAW9vhAADo2UedQDA690.png

圖六 基于Robot Framework管理CANoe測(cè)試工程

結(jié)束語(yǔ)

IT領(lǐng)域的開發(fā)理念和以太網(wǎng)等具體通信技術(shù)經(jīng)過優(yōu)化改造后在汽車上的應(yīng)用,為軟件定義汽車的實(shí)現(xiàn)提供了諸多方法論和技術(shù)手段上的支撐和支持。同樣,發(fā)源于IT行業(yè)的測(cè)試技術(shù)也越來越多地被應(yīng)用到汽車電子的測(cè)試中,在過去一年的項(xiàng)目中,北匯已經(jīng)將Robot Framework與CANoe等汽車行業(yè)的主流工具進(jìn)行了結(jié)合應(yīng)用,積累了一些實(shí)踐經(jīng)驗(yàn),期待與大家深入交流和探討。下期我們將帶來Robot Framework結(jié)合Jenkins的測(cè)試實(shí)踐應(yīng)用的主題,敬請(qǐng)關(guān)注。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • CANoe
    +關(guān)注

    關(guān)注

    4

    文章

    64

    瀏覽量

    8594
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    汽車電子測(cè)試必讀:高效高性價(jià)比互連方案

    隨著科技的發(fā)展,汽車朝著智能化、網(wǎng)聯(lián)化方向發(fā)展,汽車電子占整個(gè)騎車行業(yè)的比例也不斷提高,伴隨著電子化程度的升高,
    的頭像 發(fā)表于 10-17 16:58 ?92次閱讀
    <b class='flag-5'>汽車</b><b class='flag-5'>電子</b><b class='flag-5'>測(cè)試</b>必讀:高效高性價(jià)比互連方案

    汽車電子芯片推拉力測(cè)試機(jī)測(cè)試流程的幾個(gè)關(guān)鍵步驟

    現(xiàn)代汽車技術(shù)迅猛發(fā)展的今天,汽車電子產(chǎn)品的可靠性已成為確保車輛性能和乘客安全的關(guān)鍵因素。標(biāo)準(zhǔn)下的鍵合線剪切試驗(yàn),作為評(píng)估這些產(chǎn)品關(guān)鍵連接
    的頭像 發(fā)表于 08-07 18:00 ?564次閱讀
    <b class='flag-5'>汽車</b><b class='flag-5'>電子</b>芯片推拉力<b class='flag-5'>測(cè)試</b>機(jī)<b class='flag-5'>測(cè)試</b>流程的幾個(gè)關(guān)鍵步驟

    功率分析儀新能源汽車電性能測(cè)試的應(yīng)用

    01背景新能源汽車(EV)的普及對(duì)其電性能測(cè)試提出了嚴(yán)苛的要求。功率分析儀作為一種高精度電參數(shù)測(cè)量工具,廣泛應(yīng)用于新能源汽車的開發(fā)、測(cè)試和優(yōu)化過程
    的頭像 發(fā)表于 07-01 08:33 ?869次閱讀
    功率分析儀<b class='flag-5'>在</b>新能源<b class='flag-5'>汽車</b>電性能<b class='flag-5'>測(cè)試</b><b class='flag-5'>中</b>的應(yīng)用

    示波器探頭電動(dòng)汽車EV的逆變器測(cè)試的應(yīng)用

    電動(dòng)汽車(EV)的逆變器測(cè)試,示波器探頭扮演著至關(guān)重要的角色。逆變器是電動(dòng)汽車動(dòng)力系統(tǒng)的核心,負(fù)責(zé)將電池的直流電轉(zhuǎn)換為驅(qū)動(dòng)電機(jī)的交流電。
    的頭像 發(fā)表于 06-21 10:26 ?312次閱讀

    示波器射頻信號(hào)測(cè)試的應(yīng)用

    隨著無線通信技術(shù)的快速發(fā)展,射頻信號(hào)測(cè)試電子工程領(lǐng)域中的重要性日益凸顯。示波器作為電子測(cè)量領(lǐng)域的重要工具,其射頻信號(hào)
    的頭像 發(fā)表于 05-27 16:13 ?769次閱讀

    任意波形發(fā)生器汽車電子測(cè)試的應(yīng)用

    電子測(cè)試中發(fā)揮著重要作用。本文將詳細(xì)探討任意波形發(fā)生器汽車電子測(cè)試
    的頭像 發(fā)表于 05-15 15:37 ?434次閱讀

    Framework獲1800萬美元融資,將拓展電子產(chǎn)品領(lǐng)域

    自種子輪起,框架已累計(jì)獲得900萬美元(約合人民幣6525萬元)投資,主要用于FrameWork 13的研發(fā)。2022年,該公司再次獲得1800萬美元(約合人民幣1.3億元)A輪融資,用于推進(jìn)FrameWork 16項(xiàng)目。
    的頭像 發(fā)表于 04-24 15:28 ?291次閱讀

    示波器高壓探頭汽車電子的應(yīng)用方案

    引言: 汽車電子是現(xiàn)代汽車不可或缺的一部分,而示波器高壓探頭汽車
    的頭像 發(fā)表于 03-28 09:56 ?278次閱讀

    應(yīng)用分享 | 高性能電源汽車ECU地漂測(cè)試的應(yīng)用

    地漂測(cè)試汽車ECU的重要測(cè)試項(xiàng)目之一,能夠有效評(píng)估ECU的通信和控制性能。因此,ECU生產(chǎn)、整車制造、第三方檢測(cè)等機(jī)構(gòu)進(jìn)行研發(fā)設(shè)計(jì)、來
    發(fā)表于 03-11 17:29 ?991次閱讀
    應(yīng)用分享 | 高性能電源<b class='flag-5'>在</b><b class='flag-5'>汽車</b>ECU地漂<b class='flag-5'>測(cè)試</b><b class='flag-5'>中</b>的應(yīng)用

    汽車emc測(cè)試項(xiàng)目包括哪些 汽車電子emc測(cè)試標(biāo)準(zhǔn)

    汽車EMC測(cè)試項(xiàng)目是為了評(píng)估汽車電子設(shè)備電磁環(huán)境下的抗干擾能力,以確保車輛的正常運(yùn)行和安全性。以下是關(guān)于
    的頭像 發(fā)表于 01-31 14:32 ?2691次閱讀

    汽車電子EMC測(cè)試分類

    電子發(fā)燒友網(wǎng)站提供《汽車電子EMC測(cè)試分類》資料免費(fèi)下載
    發(fā)表于 12-25 10:08 ?1次下載

    汽車電子測(cè)試場(chǎng)地ALSE確認(rèn)方法--長(zhǎng)線天線法

    CISPR16-1-4的測(cè)試標(biāo)準(zhǔn)給出了我們熟知的電波暗室場(chǎng)地確認(rèn)要求NSA、Svswr,由于汽車電子
    的頭像 發(fā)表于 12-16 08:06 ?1046次閱讀
    <b class='flag-5'>汽車</b><b class='flag-5'>電子</b><b class='flag-5'>測(cè)試</b>場(chǎng)地ALSE確認(rèn)方法--長(zhǎng)線天線法

    LabVIEW使用軟件定義進(jìn)行汽車電子測(cè)試

    LabVIEW使用軟件定義進(jìn)行汽車電子測(cè)試 電子元件的邏輯和穩(wěn)健性一直都是需要評(píng)估的對(duì)象。過去,汽車僅使用幾種
    發(fā)表于 11-29 18:28

    高效的熱管理汽車電子LED照明的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《高效的熱管理汽車電子LED照明的應(yīng)用.doc》資料免費(fèi)下載
    發(fā)表于 11-15 10:23 ?4次下載
    高效的熱管理<b class='flag-5'>在</b><b class='flag-5'>汽車</b><b class='flag-5'>電子</b>LED照明<b class='flag-5'>中</b>的應(yīng)用

    framework框架流程 模塊綁定

    framework初始化流程圖如下: module對(duì)外接口 scp代碼,所有的功能都由一個(gè)個(gè)模塊提供。每個(gè)模塊以api枚舉及其結(jié)構(gòu)體的方式對(duì)外提供該模塊的功能,并在模塊通用結(jié)構(gòu)體fwk_module中提
    的頭像 發(fā)表于 11-02 17:24 ?582次閱讀
    <b class='flag-5'>framework</b>框架流程 模塊綁定