前面寫了幾篇基於CANoe實現的仿真測試臺架,屬於半自動化測試方案。現出一個Python實現的車聯網系統全自動化測試方案。php
一、-----------------------車聯網系統組成python
二、-----------------------自動化測試方案描述android
三、-----------------------環境安裝與配置git
四、-----------------------代碼實現與部分細節詳解github
車聯網系統的三大組成部分:api
移動端APPandroid-studio
車內ECU(TBOX,IHU,MMI)服務器
車外雲服務端網絡
在實現車內網絡仿真的基礎上,車聯網系統的全自動化測試解決方案只有一個核心問題待解決,那就是實現業務場景的控制模擬,經過自動化的手段去觸發業務,去判斷業務邏輯執行以及相應的功能點實現的正確性。app
1)、控制手機端APP,實現T業務場景的模擬(經過appium+python可實現, 或uiautomator2)
2)、車內網絡仿真,封裝接口控制第三方硬設仿真車內網絡(CANoe, valueCAN, vehicleSpy, PEAK-CAN)
3)、電源控制,程控電源; USB程控繼電器,關鍵線路電信號模擬(KL15, KL30)
4)、現網服務器(或內網自搭建服務器,自建服務器會較複雜)
5)、旁觀者(轉發服務器,上位機),監測APP, DUT, TSP Server的數據往來,提供給上層腳本判斷依據 (經過MQTT, 數據協議採用proto)
注:此處解釋下爲何會把車內網絡仿真實現得如此複雜,首先,封裝的CAN工具是爲手工測試時提供的,沿用了已有輪子。其次,此工具封裝了較多的第三方總線測試設備(valueCAN,vehicleSPY, CANoe, PEAK-CAN),也便於測試環境搭建,兼容性好。
此處略去JDK和Python的安裝配置說明,我選的Py3系列版本
1)、Android SDK安裝
咱們不須要開發App, 只實現自動化控制,僅須要安裝SDK便可。
下載地址:http://tools.android-studio.org/index.php/sdk/
下載成功解壓,配置Android SDK的環境。新建系統環境變量"ANDROID_HOME",配置解壓路徑
打開解壓後的SDK文件夾,點擊SDK Manager.exe,安裝Tools下的Android SDK Platform-tools和Android SDK Build-tools,Android SDK Tools能夠選擇是否更新
配置Path環境變量值,添加 "%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools\28.0.3", 此處我選擇安裝的28.0.3,請根據本身實際安裝的api版原本改變此值。
檢查配置是否OK, cmd輸入"adb --version",成功以下圖提示
2)、安裝appium
下載路徑:https://github.com/appium/appium-desktop/releases/tag/v1.10.0
儘可能安裝最新版,下一步無腦安裝便可
3)、安裝python第三方包
Appium-Python-Client (Python關聯Appium),必裝,下面其它包根據需求可選
pytest
HTMLReport (生成報告)
paho-mqtt (實現MQTT協議)
protobuf (實習數據交互的google協議)
uiautomator2 (可單獨經過此包控制APP)
xmlrunner (和jekins配合實現報告上傳)
allure2(可和jekins配合實現報告上傳)
此處略,詳見後面續篇~~~