專利名稱:一種基于Bash shell腳本板件功能測(cè)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種板件功能測(cè)試方法,尤其涉及一種基于Bash shell腳本板件功能測(cè)試方法。
背景技術(shù):
現(xiàn)代板件生產(chǎn)已進(jìn)入大規(guī)模時(shí)代,因此需要對(duì)板件出廠的各功能模塊進(jìn)行出廠測(cè)試。板件功能測(cè)試是軟件開發(fā)的一個(gè)關(guān)鍵部分。功能測(cè)試是開發(fā)周期的一個(gè)階段,在這個(gè)階段中將測(cè)試軟件應(yīng)用程序以確保軟件的函數(shù)如預(yù)期的那樣,同時(shí)能正確處理代碼中錯(cuò)誤。此項(xiàng)工作通常在單個(gè)模塊的單元測(cè)試結(jié)束之后,在負(fù)載重壓條件下整個(gè)產(chǎn)品的系統(tǒng)測(cè)試之前進(jìn)行的。市場(chǎng)上有許多測(cè)試工具提供了有助于功能測(cè)試的功能。然而,首先要獲取它們,然后再安裝、配置,這將占用大量寶貴的時(shí)間和精力。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就是一種基于shell腳本板件出廠自動(dòng)化測(cè)試方法,克
服現(xiàn)有板件技術(shù)中的自動(dòng)化測(cè)試問題。使用該方法可以靈活進(jìn)行控制Bash shell要執(zhí)行
的命令以及能實(shí)時(shí)顯示輸出結(jié)果到控制臺(tái)。 本發(fā)明為實(shí)現(xiàn)上述目的,采用如下技術(shù)方案 本發(fā)明一種基于Bash shell腳本板件功能測(cè)試方法,其特征在于所述方法如下
步驟一 建立臨時(shí)文件夾,并下載臨時(shí)文件tmp. tar. bz2和li皿x. tar. bz2,該文件下載后自動(dòng)裝入/tmp目錄中; 步驟二 網(wǎng)卡測(cè)試,解壓縮臨時(shí)文件tmp. tar. bz2,生成tmp文件并拷貝命名為tmporigial ;執(zhí)行Tftp上傳tmp文件至計(jì)算機(jī)命令,執(zhí)行刪除tmp文件命令;執(zhí)行tftp下載上一次上傳到PC機(jī)端的tmp文件命令,拷貝此時(shí)下載的tmp文件并命名為tmpcopy ;比較tmporigial文件和tmpcopy文件命令當(dāng)返回碼為0,則網(wǎng)卡測(cè)試成功,否則網(wǎng)卡測(cè)試失??; 步驟三rtc測(cè)試,執(zhí)行可執(zhí)行程序rtcwrite命令,寫入當(dāng)前時(shí)間年、月、日;執(zhí)行可執(zhí)行程序rtcread命令,讀出當(dāng)前時(shí)間;執(zhí)行比較寫入時(shí)間和讀出時(shí)間的命令當(dāng)返回碼為0,則rtc測(cè)試成功,否則rtc對(duì)比失敗; 步驟四EEPR0M測(cè)試,在EEPROM地址范圍內(nèi),選擇正確的EEPROM地址范圍,執(zhí)行可執(zhí)行程序EEPROM中的write命令,循環(huán)對(duì)這段地址寫入某個(gè)固定值;然后執(zhí)行可執(zhí)行程序EEPROM中read命令,循環(huán)從上次選定的EEPROM地址范圍內(nèi)讀出各個(gè)值;從超級(jí)終端界面截取EEPROM中write命令的各地址對(duì)應(yīng)寫入值和read命令各地址對(duì)應(yīng)的讀出值,并執(zhí)行對(duì)應(yīng)地址的寫入值和讀出值的循環(huán)比較當(dāng)返回碼為0,則EEPR0M測(cè)試成功,否則EEPROM對(duì)比失??; 步驟五GPIO測(cè)試,執(zhí)行可執(zhí)行程序GPI0命令,循環(huán)點(diǎn)亮GPI0 口連接的對(duì)應(yīng)的LED燈,從而測(cè)試GPIO 口是否完好;
步驟六SDRAM測(cè)試,執(zhí)行創(chuàng)建memtest-work/original目錄命令;執(zhí)行解包命令 將linux. tar. gz2包解壓到該目錄下,隨后執(zhí)行解壓壓縮包while腳本循環(huán)命令,循環(huán)N 次,每次循環(huán)建立memtestiork/^j目錄,并執(zhí)行解包命令將linux. tar. gz2包解壓到該目 錄下;下一步執(zhí)行解壓壓縮包while腳本循環(huán)命令,將memtestiork/original目錄以及該 目錄下子目錄中所有內(nèi)容依次與memtestiork/S j目錄以及該目錄下子目錄中所有內(nèi)容 進(jìn)行比較,循環(huán)N次當(dāng)返回碼為O,則SDRAM測(cè)試成功,否則SDRAM測(cè)試失敗。
Bash可以免除背景技術(shù)中提及的獲取、安裝、配置過程從而可以加快測(cè)試的進(jìn)程。 對(duì)于已經(jīng)裝入Linux系統(tǒng)bash shell腳本,通過執(zhí)行命令來執(zhí)行Linux應(yīng)用程序的功能測(cè) 試從而達(dá)到完成板件的功能穩(wěn)定性測(cè)試。本發(fā)明使用Bash she ll腳本進(jìn)行功能測(cè)試的優(yōu) 點(diǎn)在于l)Bash shell腳本已在Linux系統(tǒng)中安裝和配置了,不需要重新安裝。2)Li皿x提 供的文本編輯器可以創(chuàng)建和修改Bash shell腳本。不需要再為創(chuàng)建測(cè)試程序而獲取專門 的工具。3)Bash shell提供了大量的編程構(gòu)造用于開發(fā)從非常簡(jiǎn)單到中等復(fù)雜的腳本。
圖l是網(wǎng)卡測(cè)試流程圖。
圖2是rtc測(cè)試流程圖。
圖3是EEPROM測(cè)試流程圖。
圖4是SDRAM測(cè)試流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明 如圖1所示,步驟一、配置PCB板件一網(wǎng)卡ip,地址,建立臨時(shí)文件夾,并下載臨時(shí) 文件tmp. tar. bz2和linux. tar. bz2,該文件下載后自動(dòng)裝入/tmp目錄中。捕獲下載臨時(shí) 文件命令返回碼,并判斷是否為0,如果為是說明下載成功,反之可確定網(wǎng)卡網(wǎng)絡(luò)傳輸失敗。
步驟二、網(wǎng)卡功能測(cè)試執(zhí)行解壓縮臨時(shí)文件tmp. tar. bz2命令,生成tmp文件并 拷貝命名為tmporigial ;執(zhí)行tftp上傳tmp至PC機(jī)命令,同時(shí)捕獲上傳臨時(shí)文件命令返 回碼;執(zhí)行刪除tmp文件命令;執(zhí)行tftp下載上一次上傳到PC機(jī)端的tmp文件命令,同 時(shí)捕獲下載臨時(shí)文件命令返回碼;拷貝此時(shí)下載的tmp文件并命名為tmpcopy ;執(zhí)行比較 tmporigial文件和tmpcopy文件命令,同時(shí)捕獲下載臨時(shí)文件命令返回碼。
所以以上命令返回碼如果都為0則表示網(wǎng)卡功能測(cè)試結(jié)果穩(wěn)定,如果以上命令返 回碼只要有一個(gè)非0說明網(wǎng)卡功能測(cè)試結(jié)果不穩(wěn)定。 如圖3所示,步驟三、rtc測(cè)試執(zhí)行可執(zhí)行程序rtcwrite命令,寫入當(dāng)前時(shí)間年、 月、日,同時(shí)捕獲上傳臨時(shí)文件命令返回碼以測(cè)試rtc是否可寫;執(zhí)行可執(zhí)行程序rtcread 命令,讀出當(dāng)前時(shí)間,同時(shí)捕獲上傳臨時(shí)文件命令返回碼以測(cè)試rtc是否可讀;執(zhí)行比較寫 入時(shí)間和讀出時(shí)間的命令,同時(shí)捕獲下載臨時(shí)文件命令返回碼。 如圖2所示,步驟四、EEPR0M測(cè)試在EEPROM地址范圍內(nèi),選擇正確的EEPROM地址 范圍,執(zhí)行可執(zhí)行程序EEPROM中的write命令,循環(huán)對(duì)這段地址寫入某個(gè)固定值,每次寫入 命令都要捕獲該命令返回碼以測(cè)試EEPROM是否可寫;然后執(zhí)行可執(zhí)行程序EEPROM中read 命令,循環(huán)從上次選定的EEPROM地址范圍內(nèi)讀出各個(gè)值,同時(shí)捕獲每次讀命令返回碼以測(cè)
4試rtc是否可讀;從超級(jí)終端界面截取EEPROM中write命令的各地址對(duì)應(yīng)寫入值和read 命令各地址對(duì)應(yīng)的讀出值,并執(zhí)行對(duì)應(yīng)地址的寫入值和讀出值的循環(huán)比較,同時(shí)捕獲每次 比較命令的返回碼,從而確定EEPROM設(shè)備的好壞和EEPROM讀寫是否保持一致性。
步驟五GPIO測(cè)試執(zhí)行可執(zhí)行程序GPIO命令,循環(huán)點(diǎn)亮GPIO 口連接的對(duì)應(yīng)的 LED燈,同時(shí)捕獲該命令返回碼,從而測(cè)試GPIO 口是否完好。 如圖4所示,步驟六SDRAM測(cè)試執(zhí)行創(chuàng)建memtestiork/original目錄命令; 執(zhí)行解包命令將li皿x. tar. gz2包解壓到該目錄下,同時(shí)捕獲該命令返回碼。隨后執(zhí)行 解壓壓縮包while腳本循環(huán)命令,循環(huán)次數(shù)可以根據(jù)SDRAM大小自己限定,每次循環(huán)建立 memtestiork/$j目錄,并執(zhí)行解包命令將li皿x. tar. gz2包解壓到該目錄下,同時(shí)捕獲該 命令返回碼。下一步執(zhí)行解壓壓縮包while腳本循環(huán)命令,將memtest-work/original目 錄以及該目錄下子目錄中所有內(nèi)容依次與memtestiork/Sj目錄以及該目錄下子目錄中 所有內(nèi)容進(jìn)行比較,每次比較命令結(jié)束后捕獲該命令返回碼。 步驟七、刪除memtest-work目錄,刪除臨時(shí)文件li皿x. tar. bz2和tmp. tar. bz2,
為下一次測(cè)試做準(zhǔn)備。 本發(fā)明基于Bash shell腳本板件出廠自動(dòng)化測(cè)試方法還包括以下步驟 步驟A :在步驟一中,執(zhí)行下載較大臨時(shí)文件tmp. tar. bz2和li皿x. tar. bz2之后
需要加入wait命令,防止在文件下載中shell命令仍在執(zhí)行。 步驟B :在步驟二中,執(zhí)行tftp上傳tmp至PC機(jī)命令后和執(zhí)行tftp下載上一次 上傳到PC機(jī)端的tmp文件命令后都要執(zhí)行wait命令,防止tftp上傳文件和下載文件的不 完整性,從而導(dǎo)致后面的兩個(gè)文件的比較命令產(chǎn)生誤判。 步驟C :在步驟四中,每次執(zhí)行可執(zhí)行程序EEPROM中的write命令后和每次執(zhí)行 可執(zhí)行程序EEPROM中的write命令后都要加入wait命令,防止EEPROM錯(cuò)寫或錯(cuò)讀地址。
下面以不同的shell函數(shù)參數(shù)傳遞、變量替換的形式說明本發(fā)明。
tftp上傳文件和下載文件并比較
處理步驟 1)對(duì)于一個(gè)要處理的壓縮包文件名,例如tmp. tar.bz2,將該文件名放入變量 TMP_FILE中,即TMP_FILE = "tmp. tar. bz2"。 2)解壓已下載下來到板件中的臨時(shí)文件tar xf$TMP_FILE,壓縮后文件假設(shè)為 tmp,并復(fù)制tmp同時(shí)命名為tmporigial。 3)上傳板件tmp文件至PC機(jī)tftp-p$l_l tmp,執(zhí)行傳輸命令后調(diào)用wait命令, 并刪除板件中的tmp文件。 4)下載PC機(jī)在3)中上傳的tmp文件至板件中,tftp-g$l_l tmp,執(zhí)行傳輸命令
后調(diào)用wait命令,并復(fù)制該tmp文件為tmpcopy。 5)執(zhí)行比較tmporigial文件和tmpcopy文件的命令 cmp-l tmporigial tmpcopy。 捕獲命令返回碼,以命令cmp-l tmporigial tmpcopy為例
if [$ -ne 0] ;then echo"接收文件和發(fā)送文件對(duì)比不一致。〃
exit 1
else echo"接收文件和發(fā)送文件對(duì)比一致?!?
fi
權(quán)利要求
一種基于Bash shell腳本板件功能測(cè)試方法,其特征在于所述方法如下步驟一建立臨時(shí)文件夾,并下載臨時(shí)文件tmp.tar.bz2和linux.tar.bz2,該文件下載后自動(dòng)裝入/tmp目錄中;步驟二網(wǎng)卡測(cè)試,解壓縮臨時(shí)文件tmp.tar.bz2,生成tmp文件并拷貝命名為tmporigial;執(zhí)行Tftp上傳tmp文件至計(jì)算機(jī)命令,執(zhí)行刪除tmp文件命令;執(zhí)行tftp下載上一次上傳到PC機(jī)端的tmp文件命令,拷貝此時(shí)下載的tmp文件并命名為tmpcopy;比較tmporigial文件和tmpcopy文件命令當(dāng)返回碼為0,則網(wǎng)卡測(cè)試成功,否則網(wǎng)卡測(cè)試失敗;步驟三rtc測(cè)試,執(zhí)行可執(zhí)行程序rtcwrite命令,寫入當(dāng)前時(shí)間年、月、日;執(zhí)行可執(zhí)行程序rtcread命令,讀出當(dāng)前時(shí)間;執(zhí)行比較寫入時(shí)間和讀出時(shí)間的命令當(dāng)返回碼為0,則rtc測(cè)試成功,否則rtc對(duì)比失?。徊襟E四EEPROM測(cè)試,在EEPROM地址范圍內(nèi),選擇正確的EEPROM地址范圍,執(zhí)行可執(zhí)行程序EEPROM中的write命令,循環(huán)對(duì)這段地址寫入某個(gè)固定值;然后執(zhí)行可執(zhí)行程序EEPROM中read命令,循環(huán)從上次選定的EEPROM地址范圍內(nèi)讀出各個(gè)值;從超級(jí)終端界面截取EEPROM中write命令的各地址對(duì)應(yīng)寫入值和read命令各地址對(duì)應(yīng)的讀出值,并執(zhí)行對(duì)應(yīng)地址的寫入值和讀出值的循環(huán)比較當(dāng)返回碼為0,則EEPROM測(cè)試成功,否則EEPROM對(duì)比失敗;步驟五GPIO測(cè)試,執(zhí)行可執(zhí)行程序GPIO命令,循環(huán)點(diǎn)亮GPIO口連接的對(duì)應(yīng)的LED燈,從而測(cè)試GPIO口是否完好;步驟六SDRAM測(cè)試,執(zhí)行創(chuàng)建memtest-work/original目錄命令;執(zhí)行解包命令將linux.tar.gz2包解壓到該目錄下,隨后執(zhí)行解壓壓縮包while腳本循環(huán)命令,循環(huán)N次,每次循環(huán)建立memtest-work/$j目錄,并執(zhí)行解包命令將linux.tar.gz2包解壓到該目錄下;下一步執(zhí)行解壓壓縮包while腳本循環(huán)命令,將memtest-work/original目錄以及該目錄下子目錄中所有內(nèi)容依次與memtest-work/$j目錄以及該目錄下子目錄中所有內(nèi)容進(jìn)行比較,循環(huán)N次當(dāng)返回碼為0,則SDRAM測(cè)試成功,否則SDRAM測(cè)試失敗。
全文摘要
本發(fā)明公布了一種基于Bash shell腳本板件功能測(cè)試方法,利用網(wǎng)卡上傳和下載同一文件并檢驗(yàn)兩個(gè)文件的一致檢測(cè)網(wǎng)卡是否穩(wěn)定可靠性;通過將時(shí)間寫入rtc并再?gòu)脑摰刂纷x出時(shí)間,最后比較兩個(gè)時(shí)間值是否一致檢測(cè)rtc是否穩(wěn)定可靠性;通過執(zhí)行GPIO可執(zhí)行文件進(jìn)行循環(huán)點(diǎn)亮LED燈來檢測(cè)GPIO口的穩(wěn)定可靠性;通過寫入EEPROM某個(gè)地址的值并從該地址讀出值,最后比較兩個(gè)值是否一致以檢測(cè)EEPROM是否穩(wěn)定可靠性。本發(fā)明方法簡(jiǎn)便、實(shí)用。
文檔編號(hào)G06F11/36GK101782869SQ201010120390
公開日2010年7月21日 申請(qǐng)日期2010年3月9日 優(yōu)先權(quán)日2010年3月9日
發(fā)明者豐立東, 史興娟, 唐海洋, 張夢(mèng)琦, 李秋, 陳亮亮, 高尚 申請(qǐng)人:南京航空航天大學(xué)