999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

安卓車機(jī)車控功能自動(dòng)化測試研究

2024-09-25 00:00:00葉志偉詹燈輝翁華江
汽車電器 2024年9期

【摘 要】文章首先分析安卓車機(jī)的車控功能測試的特點(diǎn),繼而提出一種基于Python的自動(dòng)化測試方法。該方法采用數(shù)據(jù)驅(qū)動(dòng)測試的思路,通過調(diào)用Python-can庫、CANTools庫和UiAutomator2庫,實(shí)現(xiàn)CAN信號(hào)與車機(jī)HMI界面的交互測試。該方法靈活性高,簡單易用,可以較大地提高車機(jī)測試的效率。

【關(guān)鍵詞】自動(dòng)化測試;安卓系統(tǒng);Python;車控功能;數(shù)據(jù)驅(qū)動(dòng)測試

中圖分類號(hào):U463.6 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-8639( 2024 )09-0070-02

Research on Automation Test for Vehicle-control Function of Android Head Unit

YE Zhiwei,ZHAN Denghui,WENG Huajiang

(Guangzhou Automobile Group Co.,Ltd.,Automobile Engineering Institute,Guangzhou 511434,China)

【Abstract】The characteristics of vehicle-control function test for Android head unit is analyzed firstly,then an automation test method based on Python is carried out. Data driven test methodology is adopted,and interaction test for CAN signals and HMI of head unit is achieved by utilizing Python-can library,cantools library and UiAutomator2 library. The method proposed by this article is highly flexible and easy to use,which can highly improve the test efficiency for head units.

【Key words】automation test;Android system;Python;vehicle-control function;data driven test

1 引言

當(dāng)前越來越多的車控功能的開關(guān)集成在車機(jī),使其與車輛周邊節(jié)點(diǎn)的交互越來越多,而這些交互目前大多數(shù)以CAN報(bào)文為載體,因此CAN信號(hào)與車機(jī)HMI之間的交互測試是信息娛樂系統(tǒng)測試的一項(xiàng)重要內(nèi)容。目前基本采用手工點(diǎn)擊屏幕以及模擬發(fā)送CAN信號(hào)來測試,效率較低且較難檢出偶發(fā)問題。

由于測試安卓車機(jī)的車控功能時(shí),既要進(jìn)行HMI操作(如點(diǎn)擊、滑動(dòng)),又要與CAN總線信號(hào)進(jìn)行交互,因此單純使用CANoe等總線工具或者Appium等UI測試工具都較難滿足完整鏈路的自動(dòng)化測試需求[1]。為解決該問題,本文提出一種基于Python的自動(dòng)化測試方法。

2 自動(dòng)化測試方案

本文提出的自動(dòng)化測試方案基于數(shù)據(jù)驅(qū)動(dòng)測試的思路[2],將所有待測車控軟開關(guān)的名稱、收發(fā)報(bào)文、定位方法、判斷方法等信息整理成測試數(shù)據(jù)表。然后使用Python語言編寫腳本,讀取該數(shù)據(jù)表,并且調(diào)用UiAutomator2庫(結(jié)合ADB工具)進(jìn)行HMI操作[3],調(diào)用Python-can庫和CANTools庫進(jìn)行CAN信號(hào)收發(fā),從而實(shí)現(xiàn)完整鏈路的車控功能自動(dòng)化測試。圖1是該方案中自動(dòng)化測試腳本框架,圖2是某款車機(jī)中部分車身附件軟開關(guān)的測試數(shù)據(jù)表。

圖1所示的自動(dòng)化測試腳本框架中,DBC導(dǎo)入模塊用于加載DBC數(shù)據(jù)庫,便于后續(xù)解析和構(gòu)造報(bào)文;測試用例導(dǎo)入模塊用于讀取測試數(shù)據(jù)表;用例解析模塊逐行讀取測試用例中的內(nèi)容,將其轉(zhuǎn)換成腳本中的變量,以供其他模塊調(diào)用;測試執(zhí)行模塊用來設(shè)定測試參數(shù)(如循環(huán)次數(shù)、間隔時(shí)間等),調(diào)度其他模塊完成報(bào)文數(shù)據(jù)構(gòu)造、收發(fā)報(bào)文、UI操作、數(shù)據(jù)獲取和結(jié)果判斷等整個(gè)測試流程;CANTools庫用于解析DBC數(shù)據(jù)庫,將數(shù)據(jù)庫中所有報(bào)文和信號(hào)都轉(zhuǎn)成腳本中的變量,構(gòu)造出完整的報(bào)文數(shù)據(jù);數(shù)據(jù)獲取模塊用來獲取總線上的數(shù)據(jù);UiAutomator2庫實(shí)現(xiàn)車機(jī)UI元素的操作和分析,如點(diǎn)擊、滑動(dòng)、長按,以及讀取控件狀態(tài)等;Python-can庫則用于調(diào)用CAN工具接口,完成總線初始化和參數(shù)設(shè)定,以及根據(jù)測試需求完成相應(yīng)報(bào)文的收發(fā)。

3 自動(dòng)化測試腳本開發(fā)

利用本文提出的方法開發(fā)安卓車機(jī)車控功能自動(dòng)化測試腳本的一般流程如圖3所示。

首先使用UiAutoma-torviewer工具(Android SDK自帶工具)進(jìn)行UI界面元素解析,獲取要測試的UI元素的控件信息和狀態(tài)信息,如resourceID、description、text、isChec-ked等[4],然后將這些信息填入到測試數(shù)據(jù)表中,以供腳本調(diào)用。

然后根據(jù)測試需求編寫各個(gè)業(yè)務(wù)模塊的代碼,實(shí)現(xiàn)用例讀取和解析、報(bào)文構(gòu)造、發(fā)送報(bào)文、HMI操作、讀取狀態(tài)信息、結(jié)果輸出等功能。

圖4是UiAutomator2庫中常用的UI元素定位方法示例代碼。定位設(shè)備中某個(gè)元素的方法非常簡單,只要直接將控件信息作為參數(shù)傳給該設(shè)備即可,如description、text、resourceID、className這些都是可以支持的控件信息。值得注意的是,圖4中的第10行是復(fù)合定位方法,在UiAutomator2中復(fù)合定位采用的是“鏈?zhǔn)健狈椒ǎ磳⒍鄠€(gè)定位條件串聯(lián)起來,使用“.”運(yùn)算符連接即可。

圖5是UiAutomator2庫中常用的UI操作方法示例代碼。如短按、長按、滑動(dòng)屏幕等常規(guī)操作都有API可以直接調(diào)用。

圖6是針對(duì)“車速上鎖”軟開關(guān)的完整鏈路(模擬點(diǎn)擊軟開關(guān)→接收主機(jī)外發(fā)報(bào)文→模擬車身節(jié)點(diǎn)發(fā)出報(bào)文)的測試腳本示例代碼。通過UiAutomator2庫連接車機(jī)并模擬點(diǎn)擊按鈕,然后通過Python-can庫接收車機(jī)發(fā)出的報(bào)文,然后通過CANTools庫修改信號(hào)數(shù)值,并且構(gòu)造報(bào)文,最后通過Python-can調(diào)用VSPY接口將報(bào)文發(fā)送到總線上。

上述代碼是針對(duì)單個(gè)車控功能的示例,實(shí)際上需要測試的不止一個(gè)車控功能,因此本文提出的測試方案采取模塊化設(shè)計(jì)腳本,將所有待測點(diǎn)的信息整合到一個(gè)測試數(shù)據(jù)表中,只要讀取和解析數(shù)據(jù)表,調(diào)用腳本中各業(yè)務(wù)模塊即可實(shí)現(xiàn)車機(jī)車控功能的完整鏈路自動(dòng)化測試。

最后經(jīng)過一系列的測試驗(yàn)證,確認(rèn)其滿足所有測試需求后即可發(fā)布腳本。

4 總結(jié)

本文對(duì)安卓車機(jī)車控功能的自動(dòng)化測試進(jìn)行了研究,提出了一種基于Python的自動(dòng)化測試方法。該方法采用了數(shù)據(jù)驅(qū)動(dòng)測試的思路,測試數(shù)據(jù)表中的每一行數(shù)據(jù)即為一條測試用例,因此主程序只要編寫一次,以后就只維護(hù)測試數(shù)據(jù)表即可更新測試用例。由于Python-can庫支持多種CAN工具的調(diào)用,而且基于Python的技術(shù)手段能更好地利用Python自身豐富的生態(tài)[5],以完成過去傳統(tǒng)技術(shù)很難完成的測試任務(wù),例如單純使用CAPL無法實(shí)現(xiàn)安卓車機(jī)的HMI操作。因此本文提出的方法靈活性高,簡單易用,可以較大地提高安卓車機(jī)車控功能測試的效率,還為Python在車機(jī)其他功能的自動(dòng)化測試方法也提供了重要的參考價(jià)值。

參考文獻(xiàn):

[1] 翟偉良. IVI自動(dòng)化測試平臺(tái)設(shè)計(jì)與開發(fā)[D]. 濟(jì)南:山東大學(xué),2021.

[2] 夏克付,章曉勤. 基于Selenium自動(dòng)化測試框架的數(shù)據(jù)驅(qū)動(dòng)技術(shù)研究及應(yīng)用[J]. 齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2019 ,35(6):18-22.

[3] 徐芳. 移動(dòng)應(yīng)用軟件自動(dòng)化測試技術(shù)初探[J]. 電子技術(shù)與軟件工程,2015(18):63-65.

[4] 黃建文. 移動(dòng)應(yīng)用自動(dòng)化測試系統(tǒng)的研究與設(shè)計(jì)[D]. 長沙:湖南大學(xué),2017.

[5] 華劍南. Python 語言在自動(dòng)化測試系統(tǒng)中的應(yīng)用[J]. 電子技術(shù)與軟件工程,2017(8):252-253.

(編輯 楊凱麟)

作者簡介 葉志偉(1988—),男,碩士,主要從事汽車電子電器系統(tǒng)測試驗(yàn)證工作。

主站蜘蛛池模板: 国产极品粉嫩小泬免费看| 国产福利一区二区在线观看| 女同国产精品一区二区| 福利视频99| 国产亚洲精品97在线观看| 热99re99首页精品亚洲五月天| 国产高清无码第一十页在线观看| 日本一区二区三区精品AⅤ| 国产自在线拍| 亚洲AV无码乱码在线观看代蜜桃| 99热这里都是国产精品| 综合色区亚洲熟妇在线| 日韩国产黄色网站| 97se综合| 亚洲成人www| 精品国产91爱| 国产三级视频网站| 亚洲精品日产精品乱码不卡| 国产97公开成人免费视频| 久久婷婷色综合老司机| 国产日韩欧美在线视频免费观看| 欧美在线精品一区二区三区| 欧美不卡视频在线| 国产精品亚洲五月天高清| 日本精品αv中文字幕| 91国内在线观看| 青青草原国产av福利网站| 亚洲AⅤ波多系列中文字幕| 少妇人妻无码首页| 久草视频福利在线观看| 青青青视频免费一区二区| AV网站中文| 国产99在线| 免费在线看黄网址| 欧美97色| 日韩黄色精品| 最新日韩AV网址在线观看| 欧美啪啪一区| 午夜啪啪网| 国产乱子伦手机在线| 久久99国产综合精品1| 无码在线激情片| 日本日韩欧美| 国产精品美女免费视频大全| 波多野结衣第一页| 国产国产人免费视频成18| 99久久精品国产麻豆婷婷| 国产成人精品视频一区二区电影| 97se亚洲综合在线韩国专区福利| 亚洲视频三级| 亚洲成人一区二区三区| 国产特级毛片aaaaaaa高清| 免费国产无遮挡又黄又爽| 日本一本在线视频| 精品国产一区二区三区在线观看| 国产区福利小视频在线观看尤物| 亚洲精品福利视频| 国产综合亚洲欧洲区精品无码| 97一区二区在线播放| 九色91在线视频| 国产成人精品第一区二区| 国产女人在线视频| 久久久久国产一级毛片高清板| 国产精品久久久免费视频| 国产激情无码一区二区免费| 精品国产福利在线| 97国产在线观看| 久久精品国产精品一区二区| 亚洲第一区欧美国产综合| 日韩高清欧美| a色毛片免费视频| 亚洲热线99精品视频| 天天操天天噜| 欧美翘臀一区二区三区| 婷婷色丁香综合激情| 一本色道久久88亚洲综合| 亚洲视频免费在线看| 久无码久无码av无码| 欧美另类精品一区二区三区| 黄色在线网| 亚洲第一页在线观看| 欧美三级不卡在线观看视频|