【稳定性测试组成】
【通过标准】
【自动化实验室】
【稳定性测试】1
Monkey测试
使用博泰测试自动化工具开展 7x24小时Monkey测试,验证座舱系统是否存在Crash、ANR、内存泄漏等异常。
自动化脚本如下
以下视频演示了Monkey测试在音乐模块中的使用:随机点击本地收藏、我的下载、播放历史等功能。import subprocess
"""
monkey压力测试
"""
tcount = 1
for pac in packlst:
打印内容(f'当前monkey包:{pac}')
ps = subprocess.Popen(monkey_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
等待(8*60*60)
ps.kill()
p = Device(0)
p.发送adb命令("pkill monkey")
等待(20)
2
AI 遍历测试
基于博泰自动化测试工具开展AI遍历测试,该测试支持多机协同、个性化专家系统、模型复用等核心技术,验证座舱系统是否存在Crash、ANR、空指针、内存泄露等异常。
自动化脚本如下
import os
import subprocess
"""
AI 遍历测试
"""
tcount = 1
for pac in packlst:
打印内容(f'当前包:{pac}')
ps = subprocess.Popen(ai_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
等待(8*60*60)
ps.kill()
p = Device(0)
p.发送adb命令("pkill uiautomator")
等待(20)
以下视频演示了AI遍历测试在导航应用中的使用:自动选择目的地及偏好设置并开始导航的过程
3
MTBF测试
通过对用户行为数据分析,获得用户常用功能及梳理车机亮点功能,形成MTBF测试场景。针对这些场景,开展测试并记录平均无故障工作时间,该时间是衡量产品可靠性的重要指标。
以下为MTBF中的导航栏模块脚本示例
以下视频演示了点击导航栏的过程 4p = Device(0)
p.按键操作("home")
p.点击控件并判断("导航")
p.点击控件并判断("酷我音乐")
p.点击控件并判断("空调")
p.点击控件并判断("车辆")
CAN Trace测试
通过长时间回放实车CAN Trace进行测试,检查座舱系统的稳定性。
以下视频展示CAN Trace回放测试
5
系统升级测试
对系统的MPU/MCU升级开展压力测试,验证座舱系统升级的稳定性。
自动化Shell脚本如下
如下视频演示了MCU升级过程versionA="AF.00.20220410151508.rc6.6.user.f0505h"
versionB="AF.00.20220410182017.rc6.7.user.f0505h"
if [ ! -f "/data/local/mpu-version" ];then
last_mpu_version=${versionA}
current_mpu_version=${versionA}
echo $last_mpu_version > /data/local/mpu-version
touch /data/local/mpu-num
echo 1 > /data/local/mpu-num
else
last_mpu_version=`cat /data/local/mpu-version`
current_mpu_version=`getprop ro.bootimage.build.version`
fi
nummpu=$(cat /data/local/mpu-num)
if [ "$last_mpu_version" == "$current_mpu_version" ];then
echo -e "[ $(date +%H:%M:%S) ]SH:($LINENO): mpu update success"
if [ "$last_mpu_version" == "$versionA" ];then
echo --update_package=/fs/usb0/update/update-factory_$versionB.zip > /qnx/update/recovery/command || return 1
echo "$versionB" > /data/local/mpu-version || return 1
sync
let nummpu=nummpu+1
echo $nummpu > /data/local/mpu-num
sleep 1
reboot recovery
fi
if [ "$last_mpu_version" == "$versionB" ];then
echo --update_package=/fs/usb0/update/update-factory_$versionA.zip > /qnx/update/recovery/command || return 1
echo "$versionA" > /data/local/mpu-version || return 1
sync
let nummpu=nummpu+1
echo $nummpu > /data/local/mpu-num
sleep 1
reboot recovery
fi
else
echo -e "[ $(date +%H:%M:%S) ]SH:($LINENO): mpu update failure!!!"
fi
【功能压力测试】 1
开关机压力测试
车机开机过程中因为硬件上电时序和内存异常等原因会引起黑屏的问题,通过上下电和ACC ON/OFF压力测试,及时发现仪表黑屏、三屏全黑及开机后系统卡死等问题。自动化脚本如下
如下视频展示了开关机压力测试的过程 2def runTest(ftype=0, tcount=200):
继电器开(2)
等待(50)
teststr = '上下电' if ftype == 0 else 'ACCON-OFF'
for i in range(tcount):
继电器关(2)
waittime = 5 if ftype == 0 else 360 # 如果是acconoff场景需要等待休眠,不同项目休眠时间不同,按需修改
等待(waittime)
继电器开(2)
等待(60)
imgname = f'{teststr}第{i+1}次开机{获取时间字符串()}.png'
摄像头拍照(imgname)
等待(1)
result = 黑屏和adb判断(imgname, pos=[(145, 251), (418, 237), (340, 246)], rgb=(150, 150, 150))
等待(5)
if __name__ == '__main__':
runTest(0)
WiFi开关压力测试
开启关闭WiFi,判断是否能成功开启或关闭。
自动化脚本如下p = Device(0)
进入设置()
while (获取时间戳() - time1).seconds < 12 * 60 * 60:
v_flag = 图片验证("wifi关.png", 0)
if v_flag:
p.点击控件(xpath='//*[@resource-id="com.qinggan.app.setting:id/wifi_switcherView"]/android.widget.RelativeLayout[1]/android.widget.CheckBox[1]')
等待(2)
v_flag = p.控件是否存在(resourceId="com.qinggan.app.setting:id/rl_rescan")
else:
p.点击控件(xpath='//*[@resource-id="com.qinggan.app.setting:id/wifi_switcherView"]/android.widget.RelativeLayout[1]/android.widget.CheckBox[1]')
等待(2)
v_flag = p.控件是否存在(resourceId="com.qinggan.app.setting:id/rl_rescan")
tcount += 1
如下视频展示了WiFi开关的测试过程
【词条解释】
1MTBF:平均无故障工作时间
2ACC OFF:指 ACC 硬线信号为低,CRANK 时 ACC 硬线信号也为低 3ACC ON:指 ACC 硬线信号为高 4CAN:Controller Area Network 控制器局域网络 5MCU:Microcontroller Unit 微控制单元 6MPU:Microprocessor Unit 微处理器单元
原文标题:智能座舱系统稳定性测试
文章出处:【微信公众号:PATEO博泰车联网】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !