本發(fā)明涉及軟件測(cè)試
技術(shù)領(lǐng)域:
,特別是一種api數(shù)據(jù)自動(dòng)化測(cè)試方法。
背景技術(shù):
:傳統(tǒng)的api(應(yīng)用程序編寫(xiě)接口)數(shù)據(jù)測(cè)試方法是對(duì)程序生成的api數(shù)據(jù)進(jìn)行手工解析,驗(yàn)證api接口的數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)類(lèi)型,數(shù)值是否正確。實(shí)際應(yīng)用過(guò)程中,會(huì)出現(xiàn)api函數(shù)的返回值不對(duì)、帶入錯(cuò)誤的參數(shù)導(dǎo)致程序崩潰、api功能沒(méi)有支持的情況?,F(xiàn)有api測(cè)試方法不能全面的測(cè)試所有案例,也不能對(duì)api進(jìn)行全面系統(tǒng)化的測(cè)試,并且現(xiàn)有api測(cè)試方法多為單一的、不能自動(dòng)進(jìn)行api測(cè)試。傳統(tǒng)的api測(cè)試方法難度大、效率低。技術(shù)實(shí)現(xiàn)要素:本發(fā)明所要解決的技術(shù)問(wèn)題是:針對(duì)上述存在的問(wèn)題,提供了一種api數(shù)據(jù)自動(dòng)化測(cè)試方法。本發(fā)明采用的技術(shù)方案如下:一種api數(shù)據(jù)自動(dòng)化測(cè)試方法,具體包括以下過(guò)程:步驟一、根據(jù)api接口文檔編寫(xiě)api自動(dòng)解析數(shù)據(jù)腳本,獲取api解析數(shù)據(jù);步驟二、根據(jù)api接口文檔編寫(xiě)自動(dòng)測(cè)試用例腳本,獲取測(cè)試用例的數(shù)據(jù);步驟三、對(duì)比api解析數(shù)據(jù)和測(cè)試用例的數(shù)據(jù),自動(dòng)生成測(cè)試報(bào)告。進(jìn)一步的,所述步驟一中獲取api解析數(shù)據(jù)的方法包括以下過(guò)程:將定長(zhǎng)的字段一次性讀取多個(gè)字段,然后通過(guò)python庫(kù)提供的struck.unpack分解成多個(gè)字段。進(jìn)一步的,所述api解析數(shù)據(jù)包括字段數(shù)據(jù)類(lèi)型、字段長(zhǎng)度和數(shù)值。進(jìn)一步的,所述步驟二中主要是通過(guò)檢索api接口文檔中的關(guān)鍵字,生成測(cè)試用例數(shù)據(jù),所述的測(cè)試用例數(shù)據(jù)包括數(shù)據(jù)類(lèi)型用例、數(shù)據(jù)值用例和關(guān)系用例。進(jìn)一步的,所述步驟三中自動(dòng)生產(chǎn)測(cè)試報(bào)告的過(guò)程為:步驟41、api解析數(shù)據(jù)解析成表結(jié)構(gòu),獲取api數(shù)據(jù)表;步驟41、api數(shù)據(jù)解析成表結(jié)構(gòu),獲取api數(shù)據(jù)表;步驟42、按列循環(huán)遍歷api數(shù)據(jù)表,依次取出第i列,j行的數(shù)據(jù),即api數(shù)據(jù)表的[j,i]數(shù)據(jù);步驟43、判斷api數(shù)據(jù)表的[j,i]數(shù)據(jù)是否通過(guò)數(shù)據(jù)類(lèi)型用例、數(shù)據(jù)值用例以及數(shù)據(jù)關(guān)系用例;步驟44、將步驟42判斷結(jié)果輸出到測(cè)試報(bào)告中;步驟45、重復(fù)步驟42,43,44直到所有數(shù)據(jù)遍歷完成,自動(dòng)生產(chǎn)測(cè)試報(bào)告?,F(xiàn)有技術(shù)相比,采用上述技術(shù)方案的有益效果為:編寫(xiě)自動(dòng)解析數(shù)據(jù)腳本和用例自動(dòng)生產(chǎn)腳本,實(shí)現(xiàn)api數(shù)據(jù)自動(dòng)化測(cè)試,以及測(cè)試報(bào)告的自動(dòng)生成。附圖說(shuō)明圖1是本發(fā)明api測(cè)試流程示意圖。圖2是本發(fā)明自動(dòng)生產(chǎn)測(cè)試報(bào)告流程示意圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步描述。如圖1-2所示,一種api數(shù)據(jù)自動(dòng)化測(cè)試方法,具體包括以下過(guò)程:步驟一、根據(jù)api接口文檔編寫(xiě)api自動(dòng)解析數(shù)據(jù)腳本,獲取api解析數(shù)據(jù);步驟二、根據(jù)api接口文檔編寫(xiě)自動(dòng)測(cè)試用例腳本,獲取測(cè)試用例的數(shù)據(jù);步驟三、對(duì)比api解析數(shù)據(jù)和測(cè)試用例的數(shù)據(jù),自動(dòng)生成測(cè)試報(bào)告。所述步驟一中獲取api解析數(shù)據(jù)的方法包括以下過(guò)程:將定長(zhǎng)的字段一次性讀取多個(gè)字段,然后通過(guò)python庫(kù)提供的struck.unpack分解成多個(gè)字段。如ipaddr(4字節(jié))+totalbyte(8字節(jié))+totalbyte(8字節(jié))+字符串(變長(zhǎng))=20字節(jié)+n字節(jié)。先讀取20字節(jié)存入變量btyes中,然后用field_list=struck.unpack(’!3q’,btyes),將一次性讀取的二進(jìn)制數(shù)據(jù)分解為三個(gè)字段,然后再處理長(zhǎng)字符串的讀取。這樣大大的提高了解析的速度。所述api解析數(shù)據(jù)包括字段數(shù)據(jù)類(lèi)型、字段長(zhǎng)度和數(shù)值,設(shè)置成表結(jié)構(gòu),本實(shí)施列具體如下表1所示。表1解析數(shù)據(jù)包的表結(jié)構(gòu)ipaddr(ipaddr)totalbyte(unit64)sendbyte(uint64)568200001500098512325所述步驟二中主要是通過(guò)檢索文檔中的關(guān)鍵字,生成測(cè)試用例,所述測(cè)試用例數(shù)據(jù)包括數(shù)據(jù)類(lèi)型用例、數(shù)據(jù)值用例和關(guān)系用例。其中,數(shù)據(jù)類(lèi)型用例如表2所示。表2數(shù)據(jù)類(lèi)型用例數(shù)據(jù)類(lèi)型數(shù)值范圍數(shù)值長(zhǎng)度unit80-2^81unit160-2^162ipv40-2^324unit640-2^648text{a-z}1024status{0,1,9,4}1其中,數(shù)據(jù)值用例如下表3所示。表3數(shù)據(jù)值用例字段值取值totalbyte>40000btotalpkts<20000send/recv<1其中,關(guān)系用例如下表4所示。表4關(guān)系用例校驗(yàn)字段檢查條件totalbytetotalbyte=sendbyte+recvbytendtimeendtime>starttime所述步驟三中自動(dòng)生產(chǎn)測(cè)試報(bào)告的過(guò)程為:步驟41、api數(shù)據(jù)解析成表結(jié)構(gòu),獲取api數(shù)據(jù)表;步驟42、按列循環(huán)遍歷api數(shù)據(jù)表,依次取出第i列,j行的數(shù)據(jù),即api數(shù)據(jù)表的[j,i]數(shù)據(jù);步驟43、判斷api數(shù)據(jù)表的[j,i]數(shù)據(jù)是否通過(guò)數(shù)據(jù)類(lèi)型用例、數(shù)據(jù)值用例以及數(shù)據(jù)關(guān)系用例;步驟44、將步驟42判斷結(jié)果輸出到測(cè)試報(bào)告中;步驟45、重復(fù)步驟42,43,44直到所有數(shù)據(jù)遍歷完成,自動(dòng)生產(chǎn)測(cè)試報(bào)告。api[j,1]字段名為totalbyte,值為:20000,數(shù)據(jù)類(lèi)型為:unit64通過(guò)數(shù)據(jù)類(lèi)型用例;api[j,1]字段名為totalbyte,值為:20000,數(shù)據(jù)類(lèi)型為:unit64通過(guò)數(shù)值類(lèi)型用例;api[j,1]字段名為totalbyte,值為:20000,數(shù)據(jù)類(lèi)型為:unit64不能通過(guò)數(shù)據(jù)類(lèi)型用例:totalbyte=sendbyte+recvbyte。本發(fā)明并不局限于前述的具體實(shí)施方式。本發(fā)明擴(kuò)展到任何在本說(shuō)明書(shū)中披露的新特征或任何新的組合,以及披露的任一新的方法或過(guò)程的步驟或任何新的組合。如果本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神所做的非實(shí)質(zhì)性改變或改進(jìn),都應(yīng)該屬于本發(fā)明權(quán)利要求保護(hù)的范圍。當(dāng)前第1頁(yè)12