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

        ?

        基于ECU-TEST的ECU診斷工具API接口自動(dòng)化測(cè)試應(yīng)用

        2020-06-04 04:01:00邵金萍
        汽車電器 2020年5期
        關(guān)鍵詞:語言

        邵金萍

        (濰柴動(dòng)力股份有限公司,山東 濰坊 261061)

        隨著計(jì)算機(jī)、電子等學(xué)科領(lǐng)域在汽車上的廣泛應(yīng)用,汽車電控系統(tǒng)日益復(fù)雜成為必然趨勢(shì),電子模塊的增加導(dǎo)致汽車故障診斷的難度也越來越大。ECU診斷工具在國內(nèi)得到了迅速發(fā)展和普及。

        為確保診斷工具的可靠性,針對(duì)其API接口測(cè)試的工作凸顯重要性。傳統(tǒng)的手動(dòng)API接口測(cè)試效率低下、覆蓋度低,且品質(zhì)得不到保證[1]。作者所用ECU診斷工具同時(shí)存在項(xiàng)目版本眾多、適配的ECU平臺(tái)多樣化、開發(fā)及測(cè)試周期短等問題[2]。因此基于Python腳本語言開發(fā)了一套ECU診斷工具的API接口自動(dòng)調(diào)用方法,滿足診斷工具跨ECU平臺(tái)的功能和性能測(cè)試要求,在人力不足及接口工作量大的情況下,通過合理設(shè)計(jì)Python腳本和ECU診斷邏輯測(cè)試用例更準(zhǔn)確高效地完成對(duì)診斷工具的開發(fā)測(cè)試工作[3-9]。

        1 基于.NET框架的API接口命令調(diào)用實(shí)現(xiàn)

        Visual Studio是目前流行的Windows平臺(tái)應(yīng)用程序開發(fā)平臺(tái),其中包含的.NET框架是一個(gè)多語言 (C++語言、C#語言、VB語言、J#語言等)組件開發(fā)和執(zhí)行環(huán)境[10]。從層次結(jié)構(gòu)上看,.NET框架包括3個(gè)主要組成部分:公共語言運(yùn)行庫(CLR:Common Language Runtime)、服務(wù)框架 (Service Framework)和上層的兩類應(yīng)用模板——傳統(tǒng)的Windows應(yīng)用程序模板 (Win Forms)和基于ASP.NET的面向Web的網(wǎng)絡(luò)應(yīng)用程序模板 (Web Forms和Web Service)[11-13]。

        公共語言運(yùn)行庫 (CLR)是一個(gè)運(yùn)行時(shí)環(huán)境,提供內(nèi)存管理、線程管理、代碼執(zhí)行、代碼安全驗(yàn)證、編譯及其他系統(tǒng)服務(wù)。

        服務(wù)框架位于CLR之上,提供了一套開發(fā)人員希望在標(biāo)準(zhǔn)語言庫中存在的基本類庫,包括集合、輸入/輸出、字符串及數(shù)據(jù)類。使用這些可重用類型集合,大大提高了開發(fā)效率。

        基于.NET框架的API接口命令調(diào)用前需提前連接和ECU通信的硬件接口設(shè)備,將本文中的ECU診斷工具API命令所在的.dll文件添加到基于Visual Studio 2015 C#Win Forms程序的引用文件集中,運(yùn)行編寫好的Win Forms程序返回正確的測(cè)試結(jié)果,以獲取故障碼信息為例,如圖1所示,為下一步Python腳本調(diào)用提供依據(jù)。

        編譯時(shí)目標(biāo)平臺(tái)選擇Any CPU是將程序集編譯為在任意平臺(tái)上運(yùn)行,也就是在32位Windows上按照32位運(yùn)行,在64位Windows上按照64位運(yùn)行。本文的ECU診斷工具API命令所在的.dll文件為32位,因此勾選了“首選32位 (P)”選項(xiàng)。編譯配置界面如圖2所示。

        圖1 基于Visual Studio的API命令編譯運(yùn)行圖

        圖2 編譯配置界面圖

        2 Python環(huán)境搭建

        Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,其語法更接近自然語言,通俗易懂且具有豐富和強(qiáng)大的庫[10,14-15]。

        本文中用到32位的Python3.7.4以及它的兩個(gè)庫——pythonnet和tblib。pythonnet庫是python與C#的交互模塊,tblib庫是實(shí)現(xiàn)其他程序?qū)ython運(yùn)行結(jié)果可追溯調(diào)用的模塊庫。

        ECU診斷工具的.dll文件為32位,因此選擇32位的Python軟件。Python3默認(rèn)采用UTF-8編碼,解決了Python2的默認(rèn)編碼是ASCII帶來的編程過程中經(jīng)常遇到編碼報(bào)錯(cuò)問題。

        pythonnet庫常用的命令有:

        import sys

        sys.path.append (r‘…’) #加載dll文件夾路徑;

        import clr#導(dǎo)入公共運(yùn)行時(shí)環(huán)境;

        clr.AddReference(‘…’)#加載dll文件;

        from…import*#導(dǎo)入命名空間;

        本ECU診斷工具API命令返回結(jié)果中分別將C#的list和datatable數(shù)據(jù)類型轉(zhuǎn)換成Python的list和dictionary。以獲取故障碼信息為例,圖3是Python調(diào)用dll文件的API命令成功的結(jié)果展示。

        3 ECU診斷工具調(diào)用腳本開發(fā)及調(diào)試

        ECU-TEST是一款支持多平臺(tái)的ECU自動(dòng)測(cè)試軟件,具有二次開發(fā)功能強(qiáng)大、操作簡(jiǎn)單等優(yōu)點(diǎn)。其不僅支持dSPACE ControlDeskNG、 ETASLabCar、 NIVeristand、CarSim、 MatLabSimulink、 AVLPUMA、 D2TMorphee等HILMILSIL仿真平臺(tái)和臺(tái)架,而且支持INCA、CANape、CANoe、CANalyzer等ECU標(biāo)定診斷工具。要實(shí)現(xiàn)對(duì)ECU診斷工具API命令的自動(dòng)測(cè)試需要將其返回結(jié)果和INCA中的測(cè)試結(jié)果在ECU-TEST中做比較,三者關(guān)系如圖4所示。本章要完成的工作是ECU-TEST對(duì)ECU診斷工具的調(diào)用。

        根據(jù)dll文件開發(fā)的Python腳本和包含API命令的dll文件需要同ECU診斷工具運(yùn)行涉及到的其他dll文件放在同一個(gè)文件路徑下。腳本調(diào)用流程如圖5所示。

        4 ECU診斷工具API接口自動(dòng)測(cè)試用例演示

        ECU-TEST調(diào)用ECU診斷工具測(cè)試調(diào)試完成后,連接INCA進(jìn)行診斷工具功能的自動(dòng)測(cè)試用例設(shè)計(jì),以獲取故障碼信息的API命令自動(dòng)測(cè)試為例,說明如圖6所示。

        Python根據(jù)某個(gè)元素讀Excel的腳本屬于測(cè)試用例二次開發(fā)內(nèi)容,腳本實(shí)現(xiàn)設(shè)計(jì)如下所示:

        import os

        import pandas as pd

        def ReadExcelDTCM (FilePath,F(xiàn)ileName,SheetName,DFCName):

        AbsoluteFilePath=os.path.join (FilePath,F(xiàn)ileName)

        df=pd.read_excel(AbsoluteFilePath,SheetName,header=0)

        圖3 Python調(diào)用API命令運(yùn)行結(jié)果圖

        圖4 測(cè)試工具關(guān)系圖

        圖5 腳本調(diào)用流程圖

        DFCRow=''

        for indexs in df.index:

        for i in range (len (df.loc [indexs] .values)):

        if (df.loc [indexs] .values [i] ==DFCName):

        print ('RowNo:',indexs+1,'ColumnNo:',i+1)

        圖6 API命令自動(dòng)測(cè)試用例流程圖

        print (df.loc [indexs] .values [DTCM所在列號(hào)])

        DFCRow=df.loc [indexs] .values[DTCM所在列號(hào)]

        return DFCRow

        ECU-TEST對(duì)上述診斷工具的功能測(cè)試進(jìn)行的測(cè)試用例編寫步驟如圖7所示。

        5 結(jié)論

        本論文提供了一種使用Python腳本語言實(shí)現(xiàn)了基于.dll文件的API命令調(diào)用的解決問題思路,穩(wěn)定實(shí)現(xiàn)了對(duì)開發(fā)升級(jí)中的ECU診斷工具進(jìn)行接口功能的自動(dòng)化測(cè)試和版本用例移植,提高了測(cè)試效率和準(zhǔn)確性。

        圖7 ECU-TEST自動(dòng)測(cè)試用例編寫圖

        猜你喜歡
        語言
        詩之新,以語言創(chuàng)造為基
        中華詩詞(2023年8期)2023-02-06 08:51:28
        語言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語言描寫搖曳多姿
        多向度交往對(duì)語言磨蝕的補(bǔ)正之道
        累積動(dòng)態(tài)分析下的同聲傳譯語言壓縮
        日常語言與播音語言
        新聞傳播(2016年10期)2016-09-26 12:15:04
        語言技能退化與語言瀕危
        我有我語言
        論語言的“得體”
        Only Words慎用你的語言
        熟女人妻一区二区三区| 国产品精品久久久久中文| 在线人成免费视频69国产| av潮喷大喷水系列无码| 成熟丰满熟妇高潮xxxxx| 屁屁影院一区二区三区| 国产乱人伦偷精品视频免| 国产精品激情综合久久| 久久综合激激的五月天| 亚洲一区二区三区资源| 亚洲国产日韩一区二区三区四区 | 人人妻人人澡人人爽人人精品| 一区二区三区国产在线网站视频| 国产 在线播放无码不卡| 久久精品国产亚洲av成人无人区 | 成年女人永久免费看片| 中文字幕少妇AV| 无码中文字幕专区一二三| 亚洲欧美v国产蜜芽tv| 高清不卡av一区二区| 曰韩少妇内射免费播放| 欧美多人片高潮野外做片黑人| 精品久久久久成人码免费动漫| 免费观看黄网站在线播放| 久久国产成人精品国产成人亚洲| 日韩亚洲中文图片小说| 蜜臀av国内精品久久久人妻| 国产精品自拍视频在线| 国产91精品高潮白浆喷水| 国产精品日本一区二区在线播放| 亚洲人成无码网站在线观看| 国产成人av一区二区三区在线| 激情人妻在线视频| 天堂av在线免费播放| 青青草视频在线观看精品在线| 日韩一区二区三区无码影院| 亚洲精品无码不卡在线播放he| 日本一区二区不卡视频 | 亚洲免费不卡av网站| 日本在线一区二区免费| 亚洲综合精品亚洲国产成人|