Android工廠測(cè)試(開源推薦)

Android-FactoryTest

工廠測(cè)試APP(FactoryTest)用于整機(jī)生產(chǎn)測(cè)試究恤,驗(yàn)證整機(jī)各項(xiàng)功能是否正常吹散。包含:信息梧却、WiFi岛都、藍(lán)牙帚湘、以太網(wǎng)贱呐、移動(dòng)網(wǎng)絡(luò)舱呻、定時(shí)開關(guān)機(jī)勤家、看門狗、串口掠手、人體感應(yīng)憾朴、加速度、顯示喷鸽、觸摸众雷、喇叭、麥克風(fēng)、麥克風(fēng)陣列砾省、按鍵鸡岗、攝像頭、背光编兄、電池轩性、光感、溫濕度狠鸳、USB揣苏、sdcard、GPIO件舵、韋根等測(cè)試卸察。根據(jù)不同產(chǎn)品支持配置功能組合,個(gè)別項(xiàng)還支持參數(shù)配置铅祸,能夠充分適配各種產(chǎn)品形態(tài)坑质。測(cè)試完成支持測(cè)試結(jié)果導(dǎo)出為文件,可做為日后分析依據(jù)临梗。


配置

為了能夠靈活適配各種產(chǎn)品涡扼,該APP支持通過(guò)配置文件來(lái)配置功能組合和各項(xiàng)測(cè)試參數(shù)。具體配置方法如下:

  1. 創(chuàng)建配置文件(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': '藍(lán)色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': '藍(lán)', 'device': 'led_b', 'brightness': 1000, 'state': 0}]"}
]
  1. 將配置文件內(nèi)置到固件vendor根目錄下,完成配置茫经。

配置文件格式說(shuō)明

配置文件整體由一個(gè)Json數(shù)組包含若干Json項(xiàng)巷波,每一個(gè)Json項(xiàng)格式如下:

{"key": "測(cè)試項(xiàng)關(guān)鍵字", "param": "參數(shù)"}
  • key:測(cè)試項(xiàng)關(guān)鍵字(:必須為以上模板中支持的關(guān)鍵字)。
  • param:參數(shù)(:個(gè)別測(cè)試項(xiàng)需要帶參數(shù)卸伞,無(wú)參數(shù)項(xiàng)使用空字符串)抹镊。
key(關(guān)鍵字)說(shuō)明
  • info:設(shè)備信息測(cè)試。
  • wifi:WiFi測(cè)試荤傲。
  • bt:藍(lán)牙測(cè)試垮耳。
  • eth:以太網(wǎng)測(cè)試。
  • mobile:移動(dòng)網(wǎng)絡(luò)(3G/4G/5G)測(cè)試遂黍。
  • timingboot:定時(shí)開關(guān)機(jī)測(cè)試终佛。
  • watchdog:看門狗測(cè)試。
  • uart:串口測(cè)試雾家。
  • human:人體感應(yīng)測(cè)試铃彰。
  • acc:加速度傳感器測(cè)試。
  • display:顯示屏測(cè)試芯咧。
  • touch:觸摸屏測(cè)試牙捉。
  • spk:喇叭測(cè)試竹揍。
  • mic:麥克風(fēng)測(cè)試。
  • micarray:麥克風(fēng)陣列(多麥)測(cè)試邪铲。
  • key:按鍵測(cè)試芬位。
  • camera:攝像頭測(cè)試。
  • backlight:背光測(cè)試带到。
  • battery:電池測(cè)試昧碉。
  • light:光感測(cè)試。
  • temp:溫濕度傳感器測(cè)試揽惹。
  • usb:usb測(cè)試被饿。
  • sd:sdcard測(cè)試。
  • gpio:gpio測(cè)試永丝。
  • wiegand:韋根接口測(cè)試锹漱。
  • nd01:物距傳感器測(cè)試箭养。
  • pwm:pwm器件測(cè)試慕嚷。
  • led:led燈測(cè)試。
WiFi參數(shù)說(shuō)明
{'ssid': 'test', 'rssi': -30}
  • ssid:測(cè)試WiFi熱點(diǎn)名毕泌。
  • rssi:測(cè)試WiFi熱點(diǎn)信號(hào)強(qiáng)度閾值(:設(shè)備搜索到該WiFi熱點(diǎn)且信號(hào)強(qiáng)度大于此閾值則測(cè)試通過(guò))喝检。

WiFi測(cè)試項(xiàng)也可不帶參數(shù),不帶參數(shù)則不判定信號(hào)強(qiáng)度撼泛,僅僅掃描附近WiFi熱點(diǎn)挠说。

串口參數(shù)說(shuō)明
[{'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:串口設(shè)備文件路徑。
  • baud:波特率愿题。
  • send:向串口TX發(fā)送的hex數(shù)據(jù)损俭。
  • receive:串口RX應(yīng)該收到的hex數(shù)據(jù)(:如果向串口發(fā)送完指定數(shù)據(jù)后,超時(shí)時(shí)間內(nèi)未能接收到此數(shù)據(jù)則測(cè)試失敗)潘酗。
  • state:狀態(tài)(默認(rèn)填0)杆兵。
麥克風(fēng)陣列參數(shù)說(shuō)明
{'card':0, 'device': 1, 'channels': 4, 'rate':16000, 'bits':16, 'period_size':1024, 'period_cnt':3, 'play_channel':0}
  • card:聲卡ID。
  • device:設(shè)備ID仔夺。
  • channels:總錄音通道數(shù)(一共錄制幾通道數(shù)據(jù))琐脏。
  • rate:采樣率(8000、16000缸兔、44100等)日裙。
  • bits:PCM數(shù)據(jù)格式(8bit、16bit惰蜜、24bit昂拂、32bit)。
  • period_size:一次采樣的幀數(shù)抛猖。
  • period_cnt:一共采樣幾次格侯。
  • play_channel:播放通道(使用哪個(gè)通道數(shù)據(jù)用于播放)路克。
按鍵參數(shù)說(shuō)明
[{'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:狀態(tài)(默認(rèn)填0)精算。
韋根參數(shù)說(shuō)明
{'write': {'format': 26, 'value': 7825015}, 'read': {'format': 26, 'value': 0}}
  • write:韋根寫(:不支持韋根寫時(shí)刪除此項(xiàng)配置)。
  • read:韋根讀(:不支持韋根讀時(shí)刪除此項(xiàng)配置)碎连。
  • format:格式(26:韋根26灰羽,34:韋根34)。
  • value:待寫入韋根外設(shè)的數(shù)據(jù)(:韋根讀配置中此項(xiàng)默認(rèn)填0)鱼辙。
物距參數(shù)說(shuō)明
{'i2c': 1, 'calibrate': true}
  • i2c:I2C總線ID廉嚼。
  • calibrate:是否需要標(biāo)定(true:需要標(biāo)定,false:不需要標(biāo)定)倒戏。
PWM參數(shù)說(shuō)明
[{'name': '紅色LED', 'pwm': 0, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '綠色LED', 'pwm': 1, 'period': 10000, 'duty': 1000, 'state': 0}, {'name': '藍(lán)色LED', 'pwm': 2, 'period': 10000, 'duty': 1000, 'state': 0}]
  • name:器件名稱(最好配置為器件名怠噪,比如:紅色LED、綠色LED杜跷、藍(lán)色LED等)傍念。
  • pwm:PWM ID(表示CPU的第幾路PWM)。
  • period:PWM頻率(單位:Hz)葛闷。
  • duty:占空比(測(cè)試時(shí)期望輸出的占空比)憋槐。
  • state:狀態(tài)(默認(rèn)填0)。
LED參數(shù)說(shuō)明
[{'name': '紅', 'device': 'led_r', 'brightness': 1000, 'state': 0}, {'name': '綠', 'device': 'led_g', 'brightness': 1000, 'state': 0}, {'name': '藍(lán)', 'device': 'led_b', 'brightness': 1000, 'state': 0}]
  • name:LED名稱(比如:紅淑趾、綠阳仔、藍(lán)等)。
  • device:對(duì)應(yīng)“/sys/class/leds/”路徑下的設(shè)備名扣泊。
  • brightness:點(diǎn)亮LED后的亮度值(PWM的占空比)近范。
  • state:狀態(tài)(默認(rèn)填0)。

預(yù)覽




測(cè)試結(jié)果

全項(xiàng)測(cè)試完成后會(huì)導(dǎo)出測(cè)試結(jié)果至本地文件(sdcard/factorytest/result.txt)延蟹,內(nèi)容如下:

測(cè)試結(jié)果(2022-03-02 13:31:43)

信息: 通過(guò)
WiFi: 通過(guò)
藍(lán)牙: 通過(guò)
以太網(wǎng): 通過(guò)
移動(dòng)網(wǎng)絡(luò): 失敗
定時(shí)開關(guān)機(jī): 失敗
看門狗: 失敗
串口: 失敗
人體感應(yīng): 失敗
加速度: 失敗
顯示: 通過(guò)
觸摸: 通過(guò)
喇叭: 通過(guò)
麥克風(fēng): 通過(guò)
麥克風(fēng)陣列: 通過(guò)
按鍵: 失敗
攝像頭: 通過(guò)
背光: 通過(guò)
電池: 通過(guò)
光感: 通過(guò)
溫濕度: 通過(guò)
USB: 通過(guò)
sdcard: 通過(guò)
GPIO: 通過(guò)
韋根: 通過(guò)
PWM:通過(guò)
LED:通過(guò)

共計(jì) 25 項(xiàng)
通過(guò) 18 項(xiàng)
失敗 7 項(xiàng)
忽略 0 項(xiàng)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末评矩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子等孵,更是在濱河造成了極大的恐慌稚照,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俯萌,死亡現(xiàn)場(chǎng)離奇詭異果录,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)咐熙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門弱恒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人棋恼,你說(shuō)我怎么就攤上這事返弹⌒庥瘢” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵义起,是天一觀的道長(zhǎng)拉背。 經(jīng)常有香客問我,道長(zhǎng)默终,這世上最難降的妖魔是什么椅棺? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮齐蔽,結(jié)果婚禮上两疚,老公的妹妹穿的比我還像新娘。我一直安慰自己含滴,他們只是感情好诱渤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谈况,像睡著了一般勺美。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸦做,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天励烦,我揣著相機(jī)與錄音谓着,去河邊找鬼泼诱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赊锚,可吹牛的內(nèi)容都是我干的治筒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼舷蒲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耸袜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起牲平,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堤框,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纵柿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈抓,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年昂儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沟使。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渊跋,死狀恐怖腊嗡,靈堂內(nèi)的尸體忽然破棺而出着倾,到底是詐尸還是另有隱情,我是刑警寧澤燕少,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布卡者,位于F島的核電站,受9級(jí)特大地震影響客们,放射性物質(zhì)發(fā)生泄漏虎眨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一镶摘、第九天 我趴在偏房一處隱蔽的房頂上張望嗽桩。 院中可真熱鬧,春花似錦凄敢、人聲如沸碌冶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扑庞。三九已至,卻和暖如春拒逮,著一層夾襖步出監(jiān)牢的瞬間罐氨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工滩援, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栅隐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓玩徊,卻偏偏與公主長(zhǎng)得像租悄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恩袱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容