亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng)的制作方法

文檔序號(hào):6440772閱讀:990來源:國知局

專利名稱::一種準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本申請(qǐng)涉及測試
技術(shù)領(lǐng)域
,特別是涉及一種準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù)
:接口測試是測試系統(tǒng)組件間接口的一種測試,主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)。在接口測試中,執(zhí)行測試用例時(shí),可以應(yīng)用SQL語句對(duì)數(shù)據(jù)庫中的數(shù)據(jù)執(zhí)行查詢、更新等操作,此時(shí)需要從數(shù)據(jù)庫中調(diào)用測試所需的數(shù)據(jù),然后執(zhí)行相應(yīng)操作。由于系統(tǒng)經(jīng)常在升級(jí)和維護(hù),因此需要不斷的執(zhí)行同一測試用例來測試系統(tǒng)是否存在問題,執(zhí)行測試用例執(zhí)行過后,由于更新等操作會(huì)導(dǎo)致數(shù)據(jù)的變更,但是每次執(zhí)行測試用例時(shí)都需要從數(shù)據(jù)庫中調(diào)用原始數(shù)據(jù)。因此為了保證數(shù)據(jù)的唯一性,可以將預(yù)先將數(shù)據(jù)庫中的原始數(shù)據(jù)保存到excel表中,再次執(zhí)行測試用例前,可以使用把excel表中的原始數(shù)據(jù)還原到數(shù)據(jù)庫中。具體操作時(shí),首先需要預(yù)先獲取測試用例中需要調(diào)用的數(shù)據(jù),然后在數(shù)據(jù)庫中手動(dòng)輸入SQL語句查詢上述要調(diào)用的數(shù)據(jù),并且手動(dòng)將數(shù)據(jù)導(dǎo)出再存入excel表中。在這個(gè)過程中,由于數(shù)據(jù)庫中的數(shù)據(jù)是手動(dòng)輸入語句來獲得的,因此數(shù)據(jù)都是獨(dú)立的,這就需要手動(dòng)維護(hù)主從表之間的關(guān)聯(lián)性。因?yàn)樵诖鎯?chǔ)數(shù)據(jù)時(shí)每一個(gè)數(shù)據(jù)庫對(duì)應(yīng)一張excel表,由于接口測試所需的數(shù)據(jù)可能分布在幾個(gè)數(shù)據(jù)庫中,因此接口測試可能需要用到多張excel表中的數(shù)據(jù),此時(shí)需要確保各個(gè)excel表中數(shù)據(jù)是彼此關(guān)聯(lián)的。在數(shù)據(jù)還原到數(shù)據(jù)庫,執(zhí)行測試用例是才不會(huì)出錯(cuò)。其次,由于要預(yù)先獲取測試用例中需要調(diào)用的數(shù)據(jù),因此要求操作人員對(duì)測試用例非常熟悉,才能準(zhǔn)確的將數(shù)據(jù)庫中需要調(diào)用的數(shù)據(jù)存入excel表中,才能確保從excel表還原到數(shù)據(jù)庫中的數(shù)據(jù)是準(zhǔn)確的。否則一旦接口測試數(shù)據(jù)不準(zhǔn)確,測試用例就會(huì)報(bào)錯(cuò),再執(zhí)行調(diào)試、編寫測試腳本就會(huì)加大工作量,并且會(huì)耗費(fèi)較長的時(shí)間。并且,在接口測試中若SQL語句要執(zhí)行某些操作時(shí),原本在數(shù)據(jù)中可能存在與操作執(zhí)行相沖突的數(shù)據(jù),因此需要在測試腳本中手動(dòng)添加刪除操作語句,將多余的數(shù)據(jù)刪除以確保測試腳本運(yùn)行成功。由上述可知,準(zhǔn)備接口測試數(shù)據(jù)的方法很繁瑣,要大量的手動(dòng)配置,耗費(fèi)時(shí)間很長,嚴(yán)重影響了接口測試腳本的編寫效率,并且錯(cuò)誤率較高。
發(fā)明內(nèi)容本申請(qǐng)?zhí)峁┮环N準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng),以解決接口測試數(shù)據(jù)存儲(chǔ)中方法繁瑣,耗時(shí)長并且錯(cuò)誤率高的問題。為了解決上述問題,本申請(qǐng)公開了一種準(zhǔn)備接口測試數(shù)據(jù)的方法,包括:首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;再次執(zhí)行測試用例,將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;再次執(zhí)行測試用例,調(diào)用屬性文件執(zhí)行刪除操作。相應(yīng)的,本申請(qǐng)還公開了一種準(zhǔn)備接口測試數(shù)據(jù)的系統(tǒng),包括:監(jiān)聽并攔截模塊,用于首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析并解析模塊,用于分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;第一保存模塊,用于若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;第一還原模塊,用于再次執(zhí)行測試用例,將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;第二保存模塊,用于若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;第二還原模塊,用于再次執(zhí)行測試用例,調(diào)用屬性文件執(zhí)行刪除操作。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn):本申請(qǐng)所述的方法在首次執(zhí)行測試用例時(shí),可以監(jiān)聽并攔截測試用例中的SQL語句,并根據(jù)SQL語句的操作類型進(jìn)行解析,可以解析成查詢語句。查詢并保存相關(guān)數(shù)據(jù),且可以同時(shí)保存數(shù)據(jù)的相關(guān)配置信息到excel表格中,自動(dòng)維護(hù)了各excel表格的關(guān)聯(lián)性,無需手動(dòng)輸入SQL語句查找相關(guān)數(shù)據(jù),無需手動(dòng)維護(hù)excel表格的關(guān)聯(lián)性。在執(zhí)行用例中攔截SQL語句并保存數(shù)據(jù),可以確保數(shù)據(jù)的準(zhǔn)確性。并且,預(yù)先存儲(chǔ)相關(guān)的刪除語句到屬性文件中,再次執(zhí)行測試用例,無需手動(dòng)配置刪除語句,而是自動(dòng)調(diào)用預(yù)先存儲(chǔ)在屬性文件中的刪除語句,將可能與操作執(zhí)行相沖突的數(shù)據(jù)清除,確保測試腳本運(yùn)行成功??梢詫?shí)現(xiàn)SQL語句的自動(dòng)攔截,相關(guān)數(shù)據(jù)自動(dòng)存儲(chǔ)及配置,耗時(shí)短,效率高并且錯(cuò)誤率低。圖1是本申請(qǐng)實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的方法流程圖;圖2是本申請(qǐng)優(yōu)選實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的方法流程圖;圖3是本申請(qǐng)實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖。具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說明。Itest是一種接口測試框架,它是以junit為整個(gè)測試的基礎(chǔ)框架,采用dbunit為自動(dòng)管理數(shù)據(jù)庫的工具,封裝了dbunit的測試數(shù)據(jù)相關(guān)的內(nèi)容來完成數(shù)據(jù)的生成和校驗(yàn)。Itest以excel為數(shù)據(jù)載體通過POI加載數(shù)據(jù),最后通過unitils的annotation機(jī)制把整個(gè)數(shù)據(jù)以及excel的輸入輸出過程透明化。它支持使用excel文件里的數(shù)據(jù)來對(duì)數(shù)據(jù)庫做插入、對(duì)比、刪除等邏輯操作。其中,POI是Java開源工具包,專用于解析和生成與microsoft0LE2相關(guān)的文件類型,如word、excel等?,F(xiàn)有技術(shù)中,是手工準(zhǔn)備接口測試數(shù)據(jù),需要預(yù)先獲取測試用例中需要調(diào)用的數(shù)據(jù),然后在數(shù)據(jù)庫中手動(dòng)輸入SQL語句查詢上述要調(diào)用的數(shù)據(jù),并且手動(dòng)將數(shù)據(jù)導(dǎo)出再存入excel表中,數(shù)據(jù)準(zhǔn)備方法很繁瑣,要大量的手動(dòng)配置,耗費(fèi)時(shí)間很長。本申請(qǐng)?zhí)峁┝艘环N準(zhǔn)備接口測試數(shù)據(jù)的方法,可以實(shí)現(xiàn)SQL語句的自動(dòng)攔截,相關(guān)數(shù)據(jù)自動(dòng)存儲(chǔ)及配置,耗時(shí)短,效率高并且錯(cuò)誤率低。參照?qǐng)D1,其給出了本申請(qǐng)實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的方法流程圖。步驟11,首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;為了保存數(shù)據(jù)庫中的原始數(shù)據(jù),因此在首次執(zhí)行測試用例時(shí),可以監(jiān)聽測試用例中的SQL語句,當(dāng)執(zhí)行SQL語句時(shí)進(jìn)行攔截操作。步驟12,分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;在攔截SQL語句后,可以分析SQL語句的操作類型,SQL語句的操作類型包括:查詢(selsct)、刪除(delete)、更新(update)和插入(insert)?!QL語句的操作類型指SQL要執(zhí)行的操作的類型,可以包括查詢操作、刪除操作、更新操作和插入操作。當(dāng)所述操作類型為查詢、刪除和更新時(shí),將所述SQL語句解析成查詢語句,然后執(zhí)行步驟13;例如,SQL語句要執(zhí)行的操作是刪除X,則將所述SQL語句解析成查詢語句,查詢X。具體實(shí)施中,對(duì)于查詢類型的接口,例如,SQL語句形式為selectfieldl,field2fromtablewherecondition,可以將SQL語句解析成相應(yīng)的查詢語句,其形式如:select*fromtablewherecondition。同樣的,對(duì)于刪除類型的接口,SQL語句形式如:deletefromtablewherecondition;和更新類型的接口,SQL語句形式如:updatetablesetfield=Wherecondition??梢詫QL語句解析成相應(yīng)的查詢語句,其形式如:select*fromtablewherecondition。當(dāng)所述操作類型為插入時(shí),將所述SQL語句解析成刪除語句,然后執(zhí)行步驟14。例如,SQL語句的操作是在A和C之間插入B,因此會(huì)將SQL語句解析為刪除語句,如刪除A和C之間的B。對(duì)于插入類型的接口,SQL語句形式如:insertintotalbevalues(,,)wherecondition,可以將SQL語句直接解析成刪除語句,其形式如:deletefromtablewherecondition。其中,所述查詢類型的接口是指該接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢操作;所述刪除類型的接口是指該接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行刪除操作;所述更新類型的接口是指該接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行更新操作;所述插入類型的接口是指該接口實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行插入操作。若將所述SQL語句解析成查詢語句,則:步驟13,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),自動(dòng)將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;若上述操作中將所述SQL語句解析成查詢語句,則可以執(zhí)行所述查詢語句的查詢操作,查找到相關(guān)的數(shù)據(jù),自動(dòng)將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中。步驟13后,再次執(zhí)行測試用例時(shí),執(zhí)行步驟15。上例中SQL語句要執(zhí)行的操作是刪除X,則將所述SQL語句解析成查詢語句,查詢X。然后執(zhí)行查詢X的操作,查找X并將X和X的相關(guān)配置信息自動(dòng)保存到相應(yīng)的excel表格中。具體可以包括:步驟131,執(zhí)行所述查詢語句,查詢相關(guān)數(shù)據(jù)的記錄;上述步驟中,將SQL語句解析成形如:select*fromtablewherecondition的查詢語句,然后可以執(zhí)行所述查詢語句的查詢操作,查詢數(shù)據(jù)庫中是否有相關(guān)數(shù)據(jù)及數(shù)據(jù)的記錄。當(dāng)有記錄返回時(shí),執(zhí)行步驟132;當(dāng)無記錄返回時(shí),將所述SQL語句解析成刪除語句,然后執(zhí)行步驟14。例如,執(zhí)行查詢X的操作,查詢數(shù)據(jù)庫中是否有X,若有X則有X的記錄,然后有記錄返回;若無X則無X的記錄,也就無記錄返回。對(duì)于無記錄返回的情況,會(huì)執(zhí)行步驟14。例如,可以將返回記錄數(shù)為O的情況,視為無記錄返回。此處是具體實(shí)施中的一種方式,不應(yīng)理解為是對(duì)本申請(qǐng)的限制。步驟132,在所述記錄對(duì)應(yīng)的數(shù)據(jù)庫中,根據(jù)主鍵對(duì)記錄進(jìn)行去重處理;若有相關(guān)數(shù)據(jù),則有數(shù)據(jù)記錄,執(zhí)行查詢操作時(shí)會(huì)有記錄返回,此時(shí)在所述記錄對(duì)應(yīng)的數(shù)據(jù)庫中,根據(jù)主鍵對(duì)記錄進(jìn)行去重處理,是數(shù)據(jù)保持最原始的狀態(tài)。這是因?yàn)?,接口中?duì)某一個(gè)表的查詢可能會(huì)涉及到多次的調(diào)用,過程中間某些字段在被外部的接口調(diào)用的過程中,字段值會(huì)發(fā)生變更,而接口測試所需的數(shù)據(jù)必須確保最原始的狀態(tài),否則腳本斷言就會(huì)失敗。其中,斷言是用于捕捉代碼中做出的假設(shè)。步驟133,自動(dòng)保存數(shù)據(jù)庫中該記錄的相關(guān)數(shù)據(jù)及數(shù)據(jù)的配置信息到cxcel表格中。將數(shù)據(jù)庫中返回記錄的數(shù)據(jù)以及數(shù)據(jù)的配置信息,保存到cxcel表格中。具體在保存數(shù)據(jù)的操作中,一個(gè)數(shù)據(jù)庫的數(shù)據(jù)保存到一個(gè)excel表格,一個(gè)測試用例的數(shù)據(jù)保存在一個(gè)cxcel文件中。因?yàn)橐粋€(gè)測試用例可能調(diào)用多個(gè)數(shù)據(jù)庫中的數(shù)據(jù),因此在測試用例的cxcel文件中可能含有多個(gè)cxcel表格。本申請(qǐng)?jiān)谧詣?dòng)將數(shù)據(jù)保存到excel中時(shí),會(huì)自動(dòng)配置各個(gè)excel表的關(guān)聯(lián)性。具體實(shí)施中,可以利用dbunit自帶的功能,實(shí)現(xiàn)數(shù)據(jù)保存到excel表格中,因?yàn)閿r截的是對(duì)數(shù)據(jù)庫進(jìn)行查詢的SQL語句,數(shù)據(jù)庫本身對(duì)數(shù)據(jù)的存取就能確保數(shù)據(jù)的完整性,因此不需要人為的進(jìn)行干預(yù),就可以動(dòng)配置各個(gè)excel表的關(guān)聯(lián)性。這是具體實(shí)施中的一種方式,此處不應(yīng)理解為是對(duì)本申請(qǐng)的限制。若將所述SQL語句解析成刪除語句,則:步驟14,保存所述刪除語句到相應(yīng)屬性文件中;在上述步驟中,將SQL語句直接解析成形如:deletefromtablewherecondition的刪除語句,將所述刪除語句保存到相應(yīng)的屬性文件中,例如XML文件。在步驟14后,再次執(zhí)行測試用例時(shí),執(zhí)行步驟16。上例中SQL語句的操作是在A和C之間插入B,因此會(huì)將SQL語句解析為刪除語句,如刪除A和C之間的B,將所述刪除語句保存在相應(yīng)的屬性文件中。步驟15,自動(dòng)將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中。上述步驟中,在首次執(zhí)行測試用例時(shí),可以自動(dòng)將數(shù)據(jù)及數(shù)據(jù)的配置信息保存在excel表格中。因此再次執(zhí)行測試用例,然后可以excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中,確保數(shù)據(jù)庫中用于接口測試的數(shù)據(jù)是原始數(shù)據(jù)。例如,首次執(zhí)行測試用例時(shí),SQL語句的操作是將A更新為A',因此會(huì)查詢出A并存入excel表格中,然后執(zhí)行更新操作使數(shù)據(jù)更新為k',則數(shù)據(jù)庫中保存的數(shù)據(jù)變更為K'。再次執(zhí)行測試用例時(shí),可以將excel表格中的A還原到數(shù)據(jù)庫中,即將A'替換成A,通過上述步驟可以確保數(shù)據(jù)庫中用于接口測試的數(shù)據(jù)是原始數(shù)據(jù)。步驟16,自動(dòng)調(diào)用屬性文件執(zhí)行刪除操作。上述步驟中,在首次執(zhí)行測試用例時(shí),可以自動(dòng)將刪除語句保存到相應(yīng)的屬性文件中。因此再次執(zhí)行測試用例,可以自動(dòng)調(diào)用屬性文件執(zhí)行刪除語句的相關(guān)刪除操作,這是為了確保測試用例初始化時(shí)能優(yōu)先把不相干的數(shù)據(jù)清理干凈,將不相干的數(shù)據(jù)對(duì)最后測試用例運(yùn)行結(jié)果的影響降為O。通過上述步驟可以確保數(shù)據(jù)庫中用于接口測試的數(shù)據(jù)是原始數(shù)據(jù)例如,首次執(zhí)行測試用例時(shí),SQL語句的操作是在A和C之間插入B,因此會(huì)將SQL語句解析為刪除語句,如刪除A和C之間的B。然后執(zhí)行插入操作,使數(shù)據(jù)庫中的數(shù)據(jù)由A、C變更為A、B、C。再次執(zhí)行測試用例時(shí),可以調(diào)用屬性文件中保存的刪除語句執(zhí)行刪除操作,刪除A和C之間的B,通過上述步驟可以確保數(shù)據(jù)庫中用于接口測試的數(shù)據(jù)是原始數(shù)據(jù)。綜上所述,本申請(qǐng)所述的方法在首次執(zhí)行測試用例時(shí),可以監(jiān)聽并攔截測試用例中的SQL語句,并根據(jù)SQL語句的操作類型進(jìn)行解析,可以解析成查詢語句。查詢并保存相關(guān)數(shù)據(jù),且可以同時(shí)保存數(shù)據(jù)的相關(guān)配置信息到excel表格中,自動(dòng)維護(hù)了各excel表格的關(guān)聯(lián)性,無需手動(dòng)輸入SQL語句查找相關(guān)數(shù)據(jù),無需手動(dòng)維護(hù)excel表格的關(guān)聯(lián)性。在執(zhí)行用例中攔截SQL語句并保存數(shù)據(jù),可以確保數(shù)據(jù)的準(zhǔn)確性。并且,預(yù)先存儲(chǔ)相關(guān)的刪除語句到屬性文件中,再次執(zhí)行測試用例,無需手動(dòng)配置刪除語句,而是自動(dòng)調(diào)用預(yù)先存儲(chǔ)在屬性文件中的刪除語句,將可能與操作執(zhí)行相沖突的數(shù)據(jù)清除,確保測試腳本運(yùn)行成功??梢詫?shí)現(xiàn)SQL語句的自動(dòng)攔截,相關(guān)數(shù)據(jù)自動(dòng)存儲(chǔ)及配置,耗時(shí)短,效率高并且錯(cuò)誤率低。具體實(shí)施的過程中,一種優(yōu)選的實(shí)施例是在根據(jù)主鍵對(duì)記錄進(jìn)行去重處理后,暫時(shí)將數(shù)據(jù)保存在內(nèi)存中,在測試用例執(zhí)行完畢后,再將數(shù)據(jù)保存excel中。優(yōu)選的,監(jiān)聽并攔截測試用例中的SQL語句之前,還包括:接口通過數(shù)據(jù)驅(qū)動(dòng)連接數(shù)據(jù)庫,通過監(jiān)聽所述數(shù)據(jù)驅(qū)動(dòng)獲取接口與數(shù)據(jù)庫的連接。在接口測試中,接口會(huì)通過數(shù)據(jù)驅(qū)動(dòng)與數(shù)據(jù)庫連接,在本申請(qǐng)中,實(shí)現(xiàn)了連接數(shù)據(jù)庫的規(guī)范,從而攔截了所有的數(shù)據(jù)驅(qū)動(dòng)。即要攔截測試用例中的SQL語句,需要監(jiān)聽數(shù)據(jù)庫的所有連接,就可以在對(duì)數(shù)據(jù)庫執(zhí)行查詢、更新等操作前進(jìn)行攔截。因此通過監(jiān)聽所述數(shù)據(jù)驅(qū)動(dòng),獲取接口與數(shù)據(jù)庫的連接,就可以攔截到相應(yīng)的SQL語句。進(jìn)一步,根據(jù)被攔截SQL語句的操作類型,執(zhí)行相應(yīng)的查詢、刪除、更新或插入操作。上述操作中,保存了數(shù)據(jù)和數(shù)據(jù)相關(guān)配置信息,但是被攔截的SQL語句還沒有執(zhí)行,因此可以執(zhí)行相應(yīng)的SQL語句。被攔截的SQL語句執(zhí)行結(jié)束后,若仍存在需要攔截的SQL語句,則繼續(xù)執(zhí)行SQL語句攔截操作,執(zhí)行上述步驟11到步驟14的過程。否則結(jié)束操作,測試用例執(zhí)行完畢。通常在一個(gè)測試用例中會(huì)包含很多的SQL語句,這些SQL語句可能會(huì)執(zhí)行查詢、更新、刪除或插入操作,因此需要按照語句執(zhí)行的順序攔截相應(yīng)的SQL語句,循環(huán)執(zhí)行步驟11到步驟14的過程,直到?jīng)]有需要被攔截的SQL語句為止?,F(xiàn)有技術(shù)中,將數(shù)據(jù)手工從數(shù)據(jù)庫中導(dǎo)出后,在保存到excel表格時(shí),還得重新維護(hù)記錄主鍵的唯一性。在本申請(qǐng)中通過excel準(zhǔn)備數(shù)據(jù),使用OITestDataSet標(biāo)簽進(jìn)行數(shù)據(jù)的插入。為了防止數(shù)據(jù)在運(yùn)行時(shí)與功能測試數(shù)據(jù)的沖突,設(shè)定單元測試的數(shù)據(jù)主鍵的規(guī)則,例如:數(shù)據(jù)主鍵采用11位編號(hào),*2位項(xiàng)目編號(hào)+4位測試類編號(hào)+3位用例編號(hào)+2位數(shù)據(jù)編號(hào)。數(shù)據(jù)編號(hào),在需要準(zhǔn)備多條數(shù)據(jù)時(shí)遞增即可。參照?qǐng)D2,給出了本申請(qǐng)優(yōu)選實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的方法流程圖。首先監(jiān)聽接口對(duì)數(shù)據(jù)庫的連接,再攔截SQL語句,并分析被攔截的SQL語句,若SQL語句是查詢、刪除或更新操作,則將所述SQL語句解析成查詢語句;gSQL語句是插入操作,則將所述SQL語句解析成刪除語句。然后執(zhí)行查詢操作,向數(shù)據(jù)庫中查詢相應(yīng)的數(shù)據(jù),若數(shù)據(jù)庫中有記錄返回,則切換到數(shù)據(jù)庫,根據(jù)主鍵對(duì)記錄結(jié)果進(jìn)行去重處理,并將數(shù)據(jù)保存在內(nèi)存中;若數(shù)據(jù)庫中無記錄返回,即返回記錄數(shù)為0,則將SQL語句解析為刪除語句,并將刪除語句保存在內(nèi)存中。執(zhí)行被攔截SQL語句的查詢、刪除、更新或插入操作,判斷是否攔截完畢(即是否沒有要被攔截的SQL語句),若否,則返回?cái)r截SQL語句的操作,繼續(xù)執(zhí)行攔截;若是,則執(zhí)行測試用例完畢,將內(nèi)存中保存的數(shù)據(jù)存入excel中,將刪除語句保存在屬性文件中,并詳細(xì)記錄數(shù)據(jù)庫、表和字段等的詳細(xì)信息。參照?qǐng)D3,其給出了本申請(qǐng)實(shí)施例所述一種準(zhǔn)備接口測試數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖。相應(yīng)的本申請(qǐng)還提供了一種準(zhǔn)備接口測試數(shù)據(jù)的系統(tǒng),包括:監(jiān)聽連接模塊10、監(jiān)聽并攔截模塊11、分析并解析模塊12、第一保存模塊13、第二保存模塊14、執(zhí)行操作模塊15、判斷模塊16、第一還原模塊17和第二還原模塊18,其中,監(jiān)聽連接模塊10,用于接口通過數(shù)據(jù)驅(qū)動(dòng)連接數(shù)據(jù)庫,通過監(jiān)聽所述數(shù)據(jù)驅(qū)動(dòng)獲取接口與數(shù)據(jù)庫的連接;監(jiān)聽并攔截模塊11,用于首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析并解析模塊12,用于分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;第一保存模塊13,用于若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并自動(dòng)將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;第二保存模塊14,用于若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;執(zhí)行操作模塊15,用于根據(jù)被攔截SQL語句的操作類型,執(zhí)行相應(yīng)的查詢、刪除、更新或插入操作;判斷模塊16,用于判斷若仍存在需要攔截的SQL語句,則繼續(xù)執(zhí)行SQL語句攔截操作,否則結(jié)束操作;第一還原模塊17,用于再次執(zhí)行測試用例,自動(dòng)將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;第二還原模塊18,用于再次執(zhí)行測試用例,自動(dòng)調(diào)用屬性文件執(zhí)行刪除操作。具體的,所述分析并解析模塊12,包括:第一解析子模塊121,用于當(dāng)所述操作類型為查詢、刪除和更新時(shí),將所述SQL語句解析成查詢語句;第二解析子模塊122,用于當(dāng)所述操作類型為插入時(shí),將所述SQL語句解析成刪除語句。具體的,所述第一保存模塊13,包括:查詢子模塊131,用于執(zhí)行所述查詢語句,查詢相關(guān)數(shù)據(jù)的記錄;去重處理子模塊132,用于當(dāng)有記錄返回時(shí),則在所述記錄對(duì)應(yīng)的數(shù)據(jù)庫中,根據(jù)主鍵對(duì)記錄進(jìn)行去重處理;解析子模塊,用于當(dāng)無記錄返回時(shí),將所述SQL語句解析成刪除語句并保存到相應(yīng)的屬性文件中。保存子模塊134,用于自動(dòng)保存數(shù)據(jù)庫中該記錄的相關(guān)數(shù)據(jù)及數(shù)據(jù)的配置信息到cxcel表格中。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設(shè)備中還存在另外的相同要素。以上對(duì)本申請(qǐng)所提供的準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng),進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本申請(qǐng)的限制。權(quán)利要求1.一種準(zhǔn)備接口測試數(shù)據(jù)的方法,其特征在于,包括:首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析所述SQL語句的操作類型,并根據(jù)所述操作類型,解析所述SQL語句;若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;再次執(zhí)行測試用例時(shí),將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;再次執(zhí)行測試用例時(shí),調(diào)用屬性文件執(zhí)行刪除操作。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述操作類型解析所述SQL語句,包括:當(dāng)所述操作類型為查詢、刪除和更新時(shí),將所述SQL語句解析成查詢語句;當(dāng)所述操作類型為插入時(shí),將所述SQL語句解析成刪除語句。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中,包括:執(zhí)行所述查詢語句,查詢相關(guān)數(shù)據(jù)的記錄;當(dāng)有記錄返回時(shí),則在所述記錄對(duì)應(yīng)的數(shù)據(jù)庫中,根據(jù)主鍵對(duì)記錄進(jìn)行去重處理;保存數(shù)據(jù)庫中該記錄的相關(guān)數(shù)據(jù)及數(shù)據(jù)的配置信息到excel表格中。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括:當(dāng)無記錄返回時(shí),將所述SQL語句解析成刪除語句并保存到相應(yīng)的屬性文件中。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:根據(jù)被攔截SQL語句的操作類型,執(zhí)行相應(yīng)的查詢、刪除、更新或插入操作。6.根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括:若仍存在需要攔截的SQL語句,則繼續(xù)執(zhí)行SQL語句攔截操作。7.根據(jù)權(quán)利要求1至6中任一項(xiàng)所述的方法,其特征在于,監(jiān)聽并攔截測試用例中的SQL語句之前,還包括:接口通過數(shù)據(jù)驅(qū)動(dòng)連接數(shù)據(jù)庫,通過監(jiān)聽所述數(shù)據(jù)驅(qū)動(dòng)獲取接口與數(shù)據(jù)庫的連接。8.—種準(zhǔn)備接口測試數(shù)據(jù)的系統(tǒng),其特征在于,包括:監(jiān)聽并攔截模塊,用于首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析并解析模塊,用于分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;第一保存模塊,用于若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;第一還原模塊,用于再次執(zhí)行測試用例,將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;第二保存模塊,用于若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;第二還原模塊,用于再次執(zhí)行測試用例,調(diào)用屬性文件執(zhí)行刪除操作。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述分析并解析模塊,包括:第一解析子模塊,用于當(dāng)所述操作類型為查詢、刪除和更新時(shí),將所述SQL語句解析成查詢語句;第二解析子模塊,用于當(dāng)所述操作類型為插入時(shí),將所述SQL語句解析成刪除語句。10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述第一保存模塊,包括:查詢子模塊,用于執(zhí)行所述查詢語句,查詢相關(guān)數(shù)據(jù)的記錄;去重處理子模塊,用于當(dāng)有記錄返回時(shí),則在所述記錄對(duì)應(yīng)的數(shù)據(jù)庫中,根據(jù)主鍵對(duì)記錄進(jìn)行去重處理;保存子模塊,用于保存數(shù)據(jù)庫中該記錄的相關(guān)數(shù)據(jù)及數(shù)據(jù)的配置信息到excel表格中。全文摘要本申請(qǐng)?zhí)峁┝艘环N準(zhǔn)備接口測試數(shù)據(jù)的方法及系統(tǒng),所述的方法包括首次執(zhí)行測試用例時(shí),監(jiān)聽并攔截測試用例中的SQL語句;分析所述SQL語句的操作類型,并根據(jù)所述操作類型解析所述SQL語句;若將所述SQL語句解析成查詢語句,則通過執(zhí)行所述查詢語句查找相關(guān)數(shù)據(jù),并自動(dòng)將所述數(shù)據(jù)和數(shù)據(jù)的相關(guān)配置信息保存到excel表格中;再次執(zhí)行測試用例,自動(dòng)將excel表格中的數(shù)據(jù)還原到數(shù)據(jù)庫中;若將所述SQL語句解析成刪除語句,則保存所述刪除語句到相應(yīng)屬性文件中;再次執(zhí)行測試用例,自動(dòng)調(diào)用屬性文件執(zhí)行刪除操作??梢詫?shí)現(xiàn)SQL語句的自動(dòng)攔截,相關(guān)數(shù)據(jù)自動(dòng)存儲(chǔ)及配置,耗時(shí)短,效率高并且錯(cuò)誤率低。文檔編號(hào)G06F11/267GK103164312SQ201110410150公開日2013年6月19日申請(qǐng)日期2011年12月9日優(yōu)先權(quán)日2011年12月9日發(fā)明者葛媛,金爭爭,盛雁,童建芬,李松源申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1