美文网首页
Android工厂测试(开源推荐)

Android工厂测试(开源推荐)

作者: 爱因私谈 | 来源:发表于2022-08-28 15:39 被阅读0次

    Android-FactoryTest

    工厂测试APP(FactoryTest)用于整机生产测试,验证整机各项功能是否正常。包含:信息、WiFi、蓝牙、以太网、移动网络、定时开关机、看门狗、串口、人体感应、加速度、显示、触摸、喇叭、麦克风、麦克风阵列、按键、摄像头、背光、电池、光感、温湿度、USB、sdcard、GPIO、韦根等测试。根据不同产品支持配置功能组合,个别项还支持参数配置,能够充分适配各种产品形态。测试完成支持测试结果导出为文件,可做为日后分析依据。


    配置

    为了能够灵活适配各种产品,该APP支持通过配置文件来配置功能组合和各项测试参数。具体配置方法如下:

    1. 创建配置文件(factory_test_config.json)。
    2. 参考下面文本,编写配置文件:
    [
      {"key": "info", "param": ""},
      {"key": "wifi", "param": "{'ssid': 'test', 'rssi': -30}"},
      {"key": "bt", "param": ""},
      {"key": "eth", "param": ""},
      {"key": "mobile", "param": ""},
      {"key": "timingboot", "param": ""},
      {"key": "watchdog", "param": ""},
      {"key": "uart", "param": "[{'device':'/dev/ttyS1', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS3', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS4', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}]"},
      {"key": "human", "param": ""},
      {"key": "acc", "param": ""},
      {"key": "display", "param": ""},
      {"key": "touch", "param": ""},
      {"key": "spk", "param": ""},
      {"key": "mic", "param": ""},
      {"key": "micarray", "param": "{'card':0, 'device': 1, 'channels': 4, 'rate':16000, 'bits':16, 'period_size':1024, 'period_cnt':3, 'play_channel':0}"},
      {"key": "key", "param": "[{'name':'BACK', 'code': 4, 'state': 0}, {'name':'MENU', 'code': 82, 'state': 0}, {'name':'MUTE', 'code': 164, 'state': 0}, {'name':'VOL+', 'code': 24, 'state': 0}, {'name':'VOL-', 'code': 25, 'state': 0}]"},
      {"key": "camera", "param": ""},
      {"key": "backlight", "param": ""},
      {"key": "battery", "param": ""},
      {"key": "light", "param": ""},
      {"key": "temp", "param": ""},
      {"key": "usb", "param": ""},
      {"key": "sd", "param": ""},
      {"key": "gpio", "param": ""},
      {"key": "wiegand", "param": "{'write': {'format': 26, 'value': 7825015}, 'read': {'format': 26, 'value': 0}}"},
      {"key": "nd01", "param": "{'i2c': 1, 'calibrate': true}"},
      {"key": "pwm", "param": "[{'name': '红色LED', 'pwm': 0, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '绿色LED', 'pwm': 1, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '蓝色LED', 'pwm': 2, 'period': 10000, 'duty': 1000, 'state': 0}]"},
      {"key": "led", "param": "[{'name': '红', 'device': 'led_r', 'brightness': 1000, 'state': 0}, {'name': '绿', 'device': 'led_g', 'brightness': 1000, 'state': 0}, {'name': '蓝', 'device': 'led_b', 'brightness': 1000, 'state': 0}]"}
    ]
    
    1. 将配置文件内置到固件vendor根目录下,完成配置。

    配置文件格式说明

    配置文件整体由一个Json数组包含若干Json项,每一个Json项格式如下:

    {"key": "测试项关键字", "param": "参数"}
    
    • key:测试项关键字(:必须为以上模板中支持的关键字)。
    • param:参数(:个别测试项需要带参数,无参数项使用空字符串)。
    key(关键字)说明
    • info:设备信息测试。
    • wifi:WiFi测试。
    • bt:蓝牙测试。
    • eth:以太网测试。
    • mobile:移动网络(3G/4G/5G)测试。
    • timingboot:定时开关机测试。
    • watchdog:看门狗测试。
    • uart:串口测试。
    • human:人体感应测试。
    • acc:加速度传感器测试。
    • display:显示屏测试。
    • touch:触摸屏测试。
    • spk:喇叭测试。
    • mic:麦克风测试。
    • micarray:麦克风阵列(多麦)测试。
    • key:按键测试。
    • camera:摄像头测试。
    • backlight:背光测试。
    • battery:电池测试。
    • light:光感测试。
    • temp:温湿度传感器测试。
    • usb:usb测试。
    • sd:sdcard测试。
    • gpio:gpio测试。
    • wiegand:韦根接口测试。
    • nd01:物距传感器测试。
    • pwm:pwm器件测试。
    • led:led灯测试。
    WiFi参数说明
    {'ssid': 'test', 'rssi': -30}
    
    • ssid:测试WiFi热点名。
    • rssi:测试WiFi热点信号强度阈值(:设备搜索到该WiFi热点且信号强度大于此阈值则测试通过)。

    WiFi测试项也可不带参数,不带参数则不判定信号强度,仅仅扫描附近WiFi热点。

    串口参数说明
    [{'device':'/dev/ttyS1', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS3', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}, {'device':'/dev/ttyS4', 'baud': 9600, 'send': '7A7A', 'receive': '7A7A', 'state': 0}]
    
    • device:串口设备文件路径。
    • baud:波特率。
    • send:向串口TX发送的hex数据。
    • receive:串口RX应该收到的hex数据(:如果向串口发送完指定数据后,超时时间内未能接收到此数据则测试失败)。
    • state:状态(默认填0)。
    麦克风阵列参数说明
    {'card':0, 'device': 1, 'channels': 4, 'rate':16000, 'bits':16, 'period_size':1024, 'period_cnt':3, 'play_channel':0}
    
    • card:声卡ID。
    • device:设备ID。
    • channels:总录音通道数(一共录制几通道数据)。
    • rate:采样率(8000、16000、44100等)。
    • bits:PCM数据格式(8bit、16bit、24bit、32bit)。
    • period_size:一次采样的帧数。
    • period_cnt:一共采样几次。
    • play_channel:播放通道(使用哪个通道数据用于播放)。
    按键参数说明
    [{'name':'BACK', 'code': 4, 'state': 0}, {'name':'MENU', 'code': 82, 'state': 0}, {'name':'MUTE', 'code': 164, 'state': 0}, {'name':'VOL+', 'code': 24, 'state': 0}, {'name':'VOL-', 'code': 25, 'state': 0}]
    
    • name:按键名。
    • code:键值。
    • state:状态(默认填0)。
    韦根参数说明
    {'write': {'format': 26, 'value': 7825015}, 'read': {'format': 26, 'value': 0}}
    
    • write:韦根写(:不支持韦根写时删除此项配置)。
    • read:韦根读(:不支持韦根读时删除此项配置)。
    • format:格式(26:韦根26,34:韦根34)。
    • value:待写入韦根外设的数据(:韦根读配置中此项默认填0)。
    物距参数说明
    {'i2c': 1, 'calibrate': true}
    
    • i2c:I2C总线ID。
    • calibrate:是否需要标定(true:需要标定,false:不需要标定)。
    PWM参数说明
    [{'name': '红色LED', 'pwm': 0, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '绿色LED', 'pwm': 1, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '蓝色LED', 'pwm': 2, 'period': 10000, 'duty': 1000, 'state': 0}]
    
    • name:器件名称(最好配置为器件名,比如:红色LED、绿色LED、蓝色LED等)。
    • pwm:PWM ID(表示CPU的第几路PWM)。
    • period:PWM频率(单位:Hz)。
    • duty:占空比(测试时期望输出的占空比)。
    • state:状态(默认填0)。
    LED参数说明
    [{'name': '红', 'device': 'led_r', 'brightness': 1000, 'state': 0}, {'name': '绿', 'device': 'led_g', 'brightness': 1000, 'state': 0}, {'name': '蓝', 'device': 'led_b', 'brightness': 1000, 'state': 0}]
    
    • name:LED名称(比如:红、绿、蓝等)。
    • device:对应“/sys/class/leds/”路径下的设备名。
    • brightness:点亮LED后的亮度值(PWM的占空比)。
    • state:状态(默认填0)。

    预览




    测试结果

    全项测试完成后会导出测试结果至本地文件(sdcard/factorytest/result.txt),内容如下:

    测试结果(2022-03-02 13:31:43)
    
    信息: 通过
    WiFi: 通过
    蓝牙: 通过
    以太网: 通过
    移动网络: 失败
    定时开关机: 失败
    看门狗: 失败
    串口: 失败
    人体感应: 失败
    加速度: 失败
    显示: 通过
    触摸: 通过
    喇叭: 通过
    麦克风: 通过
    麦克风阵列: 通过
    按键: 失败
    摄像头: 通过
    背光: 通过
    电池: 通过
    光感: 通过
    温湿度: 通过
    USB: 通过
    sdcard: 通过
    GPIO: 通过
    韦根: 通过
    PWM:通过
    LED:通过
    
    共计 25 项
    通过 18 项
    失败 7 项
    忽略 0 项
    

    相关文章

      网友评论

          本文标题:Android工厂测试(开源推荐)

          本文链接:https://www.haomeiwen.com/subject/zvzhnrtx.html