亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Andriod IVI系統(tǒng)穩(wěn)定性測試方案研究與自動化測試工具設(shè)計(jì)及實(shí)現(xiàn)

        2024-01-23 08:35:50
        無線互聯(lián)科技 2023年21期
        關(guān)鍵詞:測試工具日志應(yīng)用程序

        劉 萌

        (南京特殊教育師范學(xué)院, 江蘇 南京 210038)

        0 引言

        隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,Andriod系統(tǒng)在市場終端應(yīng)用中呈現(xiàn)迅速擴(kuò)張的趨勢,如今的車載娛樂終端也大多基于Android操作系統(tǒng),人機(jī)交互界面更美觀,功能也日益復(fù)雜,這也導(dǎo)致了系統(tǒng)安全性和穩(wěn)定性問題日益增多,在產(chǎn)品開發(fā)生命周期中不得不投入更多的時間和人力資源到測試環(huán)節(jié)中。車載娛樂終端產(chǎn)品一旦產(chǎn)生穩(wěn)定性問題,不僅后期維護(hù)和糾正成本極高,還會給駕駛?cè)藛T帶來潛在的安全威脅。為解決上述問題,本文對Monkey及UIAutomator2兩種Andriod自動化測試工具進(jìn)行了研究,制定了隨機(jī)和定制功能路徑兩種場景的自動化穩(wěn)定性測試方案,并設(shè)計(jì)實(shí)現(xiàn)了基于Python二次開發(fā)的Monkey隨機(jī)場景自動化測試工具和基于Python + Pytest +UIAutomator2的定制功能路徑場景自動化測試工具。

        1 基于Monkey的自動化隨機(jī)測試

        Monkey是Android系統(tǒng)自帶的一款基于命令行的自動化測試工具,主要用于測試Android應(yīng)用程序及系統(tǒng)的穩(wěn)定性和魯棒性。Monkey通過向系統(tǒng)發(fā)送隨機(jī)事件流來模擬用戶操作。Monkey簡單易用,對于發(fā)現(xiàn)應(yīng)用程序和系統(tǒng)的應(yīng)用程序無響應(yīng)(Application Not Response,ANR)、Crash等異常具有顯著的效果。

        1.1 Monkey測試方案及工具框架設(shè)計(jì)

        1.1.1 運(yùn)行方式設(shè)計(jì)

        Monkey測試的運(yùn)行可以分為離線和在線兩種運(yùn)行模式。

        在離線模式下,需要將Monkey命令參數(shù)編寫成shell腳本推送到被測設(shè)備上,本地執(zhí)行。這種模式對測試人員編程能力有一定要求,一旦測試步驟或參數(shù)需要更改,shell腳本就需要修改,而且在測試過程中,腳本無法實(shí)時識別到異常,不會去實(shí)時捕獲日志,只能在測試結(jié)束后人工分析Monkey測試日志,找出問題及時間點(diǎn),再去查找對應(yīng)時間點(diǎn)的日志。如果問題出現(xiàn)的時間點(diǎn)較早,很可能日志已被覆蓋掉,導(dǎo)致無法分析問題,像bugreport、dumpsys等實(shí)時性要求極高的日志,在測試結(jié)束后再抓取基本已經(jīng)失去時效。另外,離線模式下Monkey測試本身產(chǎn)生的日志只能本地化存儲,占據(jù)被測系統(tǒng)的存儲空間,從而影響被測系統(tǒng)性能,干擾測試結(jié)果。

        在線測試模式在測試過程中需要保持PC與被測設(shè)備的Android調(diào)試橋(Android Debug Bridge,ADB)連通,Python程序運(yùn)行于PC上,腳本實(shí)時翻譯實(shí)時下發(fā)。本文設(shè)計(jì)的Monkey測試工具采用在線運(yùn)行方式。Monkey命令通過Python程序下發(fā),所有Monkey日志重定向到本地PC,避免占用被測設(shè)備的存儲空間。在測試過程中,Python程序還會另起線程實(shí)時讀取并分析Monkey日志,一旦識別到異常就立即抓取系統(tǒng)全日志。這種方法一方面節(jié)省了人工分析問題的時間,一方面確保了日志的實(shí)時性和完整性。

        1.1.2 測試模式設(shè)計(jì)

        Monke測試工具提供了3種測試模式:單包、多包組合和系統(tǒng)級測試模式。

        單包模式只對一個應(yīng)用程序進(jìn)行測試,通常應(yīng)用于產(chǎn)品開發(fā)前期、應(yīng)用程序逐個上線的階段。不同的功能模塊用戶的操作習(xí)慣不同。因此,該模式需要根據(jù)實(shí)際操作場景設(shè)置不同的事件百分比。

        多包組合模式同時針對多個應(yīng)用進(jìn)行并行測試,通常會選取用戶使用頻率最高的幾個應(yīng)用隨機(jī)組合,測試過程必需涉及應(yīng)用間的切換。

        系統(tǒng)級測試模式不限定被測應(yīng)用范圍,對所有應(yīng)用程序和系統(tǒng)組件進(jìn)行并行測試,實(shí)現(xiàn)全功能聯(lián)動。該模式主要應(yīng)用于產(chǎn)品開發(fā)后期階段的驗(yàn)收。

        1.1.3 測試參數(shù)設(shè)計(jì)

        Monkey測試參數(shù)主要分為3類:基本配置參數(shù)、事件類型參數(shù)和調(diào)試參數(shù)。

        本方案中Monkey測試的目的有兩種:項(xiàng)目早期階段的問題發(fā)現(xiàn)測試(測試過程中忽略異常繼續(xù)執(zhí)行,以盡可能發(fā)現(xiàn)更多問題)和項(xiàng)目后期階段的驗(yàn)收測試(測試過程中不忽略異常,出現(xiàn)異常即停止執(zhí)行,并將驗(yàn)收結(jié)果判定為不通過)。不同測試階段參數(shù)制定如下。

        (1)基本配置參數(shù)設(shè)計(jì)。

        級別(-v)設(shè)為最高-v-v-v,以輸出盡可能詳細(xì)的日志。

        隨機(jī)種子值(-s)默認(rèn)為0,每輪測試更換一個隨機(jī)值,代表從不同的起點(diǎn)開始新一輪的測試。

        動作時間間隔(--throttle)在產(chǎn)品初期階段設(shè)為1 s,后期平臺功能穩(wěn)定后設(shè)定為300 ms。

        在-p參數(shù)后指定測試包可以實(shí)現(xiàn)上述3種測試模式。每輪測試的操作次數(shù)Count參數(shù)由計(jì)劃測試時長決定,計(jì)算公式為:Count=測試時長(ms)/--throttle。

        (2)事件類型參數(shù)設(shè)計(jì)。

        操作事件類型的百分比值根據(jù)不同被測模塊的功能區(qū)別設(shè)定,百分比總和不超過100%。

        (3)調(diào)試參數(shù)設(shè)計(jì)。

        在問題發(fā)現(xiàn)測試階段,將異常和超時參數(shù)設(shè)置為ignore;在驗(yàn)收測試階段,不設(shè)置此類參數(shù)。Monkey命令示例:adb shell monkey-p xxx-p xxx-s 0--throttle 300--pct-touch 40--pct-motion 20--pct-syskeys 10--pct-anyevent 10--pct-appswitch 10--pct-flip 5--pct-pinchzoom 5--ignore-crashes--ignore-timeouts--ignore-security-exceptions--ignore-native-carshes-v-v-v 5000

        1.1.4 運(yùn)行過程設(shè)計(jì)

        數(shù)據(jù)交換接口通常采用xml格式來實(shí)現(xiàn)。本工具中用戶配置接口即設(shè)計(jì)為一個xml文件,其中包含了Monkey測試參數(shù)、測試模式、被測系統(tǒng)的日志路徑、檢測門限值等參數(shù)。用戶只需在此文件中填寫參數(shù)值即可實(shí)現(xiàn)不同測試方案的更改。主程序在執(zhí)行測試時會首先解析該xml文件,讀取用戶設(shè)置的參數(shù)。執(zhí)行流程如圖1所示。

        圖1 Monkey測試工具執(zhí)行流程

        1.2 工具運(yùn)行效果分析

        在產(chǎn)品開發(fā)前期階段,系統(tǒng)還不穩(wěn)定,Monkey工具發(fā)現(xiàn)了較多黑屏、凍屏、死機(jī)等重大問題。在產(chǎn)品開發(fā)中后期階段,系統(tǒng)趨于穩(wěn)定,Monkey測試可以持續(xù)運(yùn)行較長時間,更全面地發(fā)現(xiàn)了ANR、Crash等異常。工具在日志抓取方面做到了實(shí)時、全面,能夠滿足開發(fā)分析的需求。

        2 基于Python+Pytest+UIAutomator2的自動化測試工具

        Python是全球最受歡迎的編程語言之一[1],擁有豐富的測試框架和工具[2],如Robot Framework、Pytest、Unitest等,而Pytest是最受歡迎和最具影響力的一個。UIAutomator2是Android UI自動化測試的開源工具之一,可以對任意應(yīng)用程序的任意一個控件屬性進(jìn)行任意操作,開發(fā)者們推出的Python-UIAutomator2提供了Python接口,支持Python編程。

        Python-UIAutomator2的運(yùn)行主要涉及兩個部分:Python客戶端和被測設(shè)備。UIAutomator2的運(yùn)行環(huán)境需要進(jìn)行以下配置:(1)被測設(shè)備端打開開發(fā)者選項(xiàng),以ADB方式連接PC。在PC的CMD窗口執(zhí)行adb devices,查看設(shè)備是否成功連接。(2)PC端安裝Python 3.x;安裝UIAutomator2,在CMD窗口執(zhí)行pip install UIAutomator2;安裝WEditor。(3)在PC端CMD窗口執(zhí)行Python-UIAutomator2 init,安裝被測設(shè)備端的HTTP RPC服務(wù)apk、atx-agent等。這些是UIAutomator2運(yùn)行的必要工具。

        2.1 基于UIAutmator2的自動化測試方案設(shè)計(jì)

        Monkey工具對于智能車載娛樂系統(tǒng)而言,無法涉及與車上其他電子控制單元(Electronic Control Unit,ECU)的控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)[3]通信車載協(xié)議測試。為解決這個問題,本文引入了定制功能路徑的測試方案。定制功能路徑測試具有以下優(yōu)點(diǎn):(1)測試步驟根據(jù)用戶實(shí)際操作設(shè)計(jì),測試場景更接近用戶行為。(2)支持個性化定制,可以根據(jù)不同功能模塊的特點(diǎn),定制個性化的測試步驟。(3)支持壓力測試:可以通過設(shè)置Pytest裝飾器的參數(shù)值重復(fù)執(zhí)行指定腳本,以檢查系統(tǒng)的穩(wěn)定性。

        定制功能路徑測試的目的有2個:功能驗(yàn)證和性能驗(yàn)證。前者重點(diǎn)關(guān)注系統(tǒng)在執(zhí)行一般用戶操作(如點(diǎn)擊、按鍵、滑動等)后的系統(tǒng)反應(yīng)是否正確。后者主要通過反復(fù)執(zhí)行某一類型的操作,如藍(lán)牙、Wi-Fi的開關(guān)/斷連、系統(tǒng)軟重啟、休眠/喚醒等,來檢查系統(tǒng)功能和狀態(tài)在重復(fù)壓力或長期運(yùn)行下是否穩(wěn)定。這種測試對于發(fā)現(xiàn)系統(tǒng)內(nèi)存泄漏以及穩(wěn)健性相關(guān)的問題非常有效。

        定制功能路徑測試分為常規(guī)操作類、Can信號交互類和性能測試等場景。常規(guī)操作類測試涵蓋了用戶常見的操作行為。Can信號交互類測試則關(guān)注系統(tǒng)在與其他ECU通信時系統(tǒng)狀態(tài)及反饋是否正確。性能測試則是通過大量操作后,測量系統(tǒng)的關(guān)鍵性能指標(biāo),如冷啟動/熱啟動時長和開機(jī)時序等,對系統(tǒng)進(jìn)行全面的性能評估,以確保產(chǎn)品滿足出廠及市場標(biāo)準(zhǔn)。定制功能路徑測試具體場景設(shè)計(jì)如下:(1)單App全功能鏈路驗(yàn)證,主要用于驗(yàn)證單個應(yīng)用程序的基本功能。(2)多App全功能鏈路交互驗(yàn)證,主要用于驗(yàn)證多個應(yīng)用程序之間交互是否正常。(3)典型單場景操作,如開關(guān)反復(fù)開閉、休眠喚醒等,主要用于驗(yàn)證系統(tǒng)關(guān)鍵功能是否穩(wěn)定。(4)性能測試,冷/熱重啟、休眠喚醒等場景重復(fù)執(zhí)行百遍后,驗(yàn)證啟動時序、統(tǒng)計(jì)平均開機(jī)時長。(5)場景復(fù)現(xiàn),針對一些較難復(fù)現(xiàn)的bug開發(fā)特定的測試腳本嘗試復(fù)現(xiàn),出具復(fù)現(xiàn)概率報(bào)告或壓力測試報(bào)告。

        2.2 自動化測試工具設(shè)計(jì)

        (1)界面元素獲取工具。

        本文使用WEditor來定位元素,WEditor基于Python,能提供輔助編寫腳本和調(diào)試代碼的功能,可以通過瀏覽器輕松打開,簡單易用。WEditor可方便獲取到元素的Xpath屬性(Xpath是元素的絕對唯一屬性)。

        (2)測試腳本工程架構(gòu)。

        基于UIAutmator2的自動化測試工具框架及整體運(yùn)行流程設(shè)計(jì)如圖2所示。

        圖2 UIAutomator2自動化測試工具框架及流程

        ① Main.py為測試引擎,主要完成測試報(bào)告的創(chuàng)建、測試套件配置參數(shù)的獲取、各種路參數(shù)徑的獲取、測試命令下發(fā)等。

        ② Config路徑下存放test_cfg.py和xpath_cfg.py。前者用于存儲測試套件的配置參數(shù),如測試環(huán)境、用例、數(shù)據(jù)等。后者用于存儲測試用例用到的參數(shù),如XPath值、Can信號值等。

        ③ TestCases路徑下存放所有測試腳本文件,每個功能模塊對應(yīng)一個.py文件,每個測試用例對應(yīng)一個函數(shù),用例運(yùn)行策略由Pytest裝飾器參數(shù)值指定。

        ④ util.py是一個集合了所有公共函數(shù)的Python文件,如環(huán)境恢復(fù)、xml文件解析、用戶操作、Can信號收發(fā)、Log抓取、系統(tǒng)狀態(tài)檢查等。

        ⑤ TestReports路徑下存放測試報(bào)告,每輪測試都會創(chuàng)建一個新的網(wǎng)頁版測試報(bào)告。測試報(bào)告中可以包含測試結(jié)果、執(zhí)行時間、測試用例的通過或失敗狀態(tài)等信息。

        (3)Can 信號收發(fā)工具使用開發(fā)。

        本文工具針對Pcan測試儀開發(fā)Python腳本,通過對PCanBasic.dll進(jìn)行二次開發(fā)來實(shí)現(xiàn)。PCan Basic.dll的原生函數(shù)有:Initialize(初始化一個PCan設(shè)備的PCan通道)、Uninitialize(取消初始化)、GetStatus(獲取當(dāng)前PCan通道的Bus狀態(tài))、Read(從消息接收隊(duì)列中讀取Can消息及其時間戳)、Write(發(fā)送Can消息)等函數(shù),對上述源碼進(jìn)行Python二次封裝,編寫更易于測試人員使用、更符合項(xiàng)目需求的公共方法(如Send()、Receive()、Check())等,匯集到PCanBasic.py文件,測試用例中導(dǎo)入PCanBasic.py即可使用封裝的函數(shù)。

        2.3 工具運(yùn)行效果分析

        在產(chǎn)品開發(fā)的中后期階段,系統(tǒng)已逐步趨于穩(wěn)定,每次軟件發(fā)布版本后使用自動化腳本即可完成大部分基礎(chǔ)功能驗(yàn)證,無需人工再次輪詢測試用例,極大地節(jié)省了人力和時間成本。此外,在壓力和性能測試方面,該工具獲取的數(shù)據(jù)比手動測試更為科學(xué)準(zhǔn)確,幫助了產(chǎn)品團(tuán)隊(duì)迅速準(zhǔn)確地了解產(chǎn)品的性能,為產(chǎn)品的優(yōu)化和改進(jìn)提供了堅(jiān)實(shí)的依據(jù)。UIAutomator2自動化測試工具在保證產(chǎn)品質(zhì)量、提高測試效率以及節(jié)省時間和人力成本等方面都發(fā)揮了人工測試不可替代的作用。

        3 結(jié)語

        本文通過對智能Andriod車機(jī)系統(tǒng)穩(wěn)定性測試方案及Monkey和UIAutomator2自動化測試工具的研究,設(shè)計(jì)并實(shí)現(xiàn)了2種自動化穩(wěn)定性測試工具。這些工具在實(shí)際項(xiàng)目中切實(shí)提高了工作效率和產(chǎn)品質(zhì)量。隨著車聯(lián)網(wǎng)和智能網(wǎng)聯(lián)產(chǎn)品的不斷發(fā)展,IVI娛樂系統(tǒng)的穩(wěn)定性測試將越來越受到重視,類似的自動化測試工具將發(fā)揮更為廣泛和重要的作用,對于推動車載智能產(chǎn)品的發(fā)展有著重要的意義。

        猜你喜歡
        測試工具日志應(yīng)用程序
        邊緣智力兒童及其智力測試工具的研究進(jìn)展
        一名老黨員的工作日志
        華人時刊(2021年13期)2021-11-27 09:19:02
        扶貧日志
        心聲歌刊(2020年4期)2020-09-07 06:37:14
        刪除Win10中自帶的應(yīng)用程序
        Http并發(fā)連接測試工具
        游學(xué)日志
        福祿克推出先進(jìn)的連接式測試工具系統(tǒng)
        一種基于粗集和SVM的Web日志挖掘模型
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        三星電子將開設(shè)應(yīng)用程序下載商店
        亚洲成人激情在线影院| 中文字幕乱码免费视频| 国产啪精品视频网给免丝袜| 挑战亚洲美女视频网站| av成人一区二区三区| 亚洲av日韩aⅴ无码色老头| 久久久精品人妻一区亚美研究所| 国产美女精品AⅤ在线老女人| 午夜免费观看一区二区三区| 无码gogo大胆啪啪艺术| 3d动漫精品啪啪一区二区下载| 亚州毛色毛片免费观看| 精品国产一区二区三区a | 亚洲一区二区三区偷拍自拍| 精品粉嫩av一区二区三区| 免费1级做爰片1000部视频| 日韩在线不卡免费视频| 伊人久久大香线蕉综合av| 日本亚洲国产精品久久| 国产真实夫妇交换视频| 国产桃色在线成免费视频| 91精品亚洲熟妇少妇| 亚洲无线一二三四区手机| 最新亚洲av日韩av二区| 日韩精品视频免费福利在线观看| 国产亚洲精品视频一区二区三区| 亚洲第一se情网站| 午夜a福利| 懂色av一区二区三区网久久| 国产乱人对白| 在线观看免费午夜大片| 91蜜桃国产成人精品区在线| 一本色道久久婷婷日韩| 免费无码又爽又刺激聊天app| 国产精品原创永久在线观看| 日本一区二区三区四区啪啪啪| 色综合久久88色综合天天| 伊人久久大香线蕉在观看| 国产一区二区不卡av| 18禁黄网站禁片免费观看女女| 波多野结衣中文字幕在线视频|