本發(fā)明屬于海量數(shù)據(jù)全文檢索系統(tǒng)測試方法領(lǐng)域,具體涉及一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具及測試方法。
背景技術(shù):
近年,隨著計算機(jī)技術(shù)和互聯(lián)網(wǎng)的不斷發(fā)展,企業(yè)信息量不斷增加,信息的種類也在不斷的擴(kuò)展,越來越多的非結(jié)構(gòu)化信息不斷出現(xiàn),包括企業(yè)的各種報表、帳單、電子文檔、網(wǎng)站的各種元素、圖片、傳真、掃描影像,以及大量的多媒體的音頻、視頻信息等等。所有的存儲數(shù)據(jù)中,有85%采用的是非結(jié)構(gòu)化格式,非結(jié)構(gòu)化信息每三個月增長一倍,導(dǎo)致對海量信息進(jìn)行傳輸、存儲和檢索的場景日益增多。
由于信息格式的差異很大,所以基本無法整合為統(tǒng)一的接口供政府工作人員或廣大群眾方便使用。在這種背景下,全文檢索技術(shù)也急需迅速發(fā)展,促使了全文檢索系統(tǒng)的出現(xiàn),
全文檢索是計算機(jī)程序通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當(dāng)用戶查詢時根據(jù)建立的索引查找,類似于通過字典的檢索字表查字的過程。全文檢索系統(tǒng)是按照全文檢索理論建立起來的用于提供全文檢索服務(wù)的軟件系統(tǒng)。全文檢索系統(tǒng)的核心則具有建立索引、處理查詢返回結(jié)果集、增加索引、優(yōu)化索引結(jié)構(gòu)等功能。
針對海量數(shù)據(jù)全文檢索系統(tǒng)的測試,需要精確地對此類系統(tǒng)進(jìn)行檢索,以提高準(zhǔn)確率及性能評價尤為重要。
技術(shù)實現(xiàn)要素:
本發(fā)明為了解決海量數(shù)據(jù)全文檢索系統(tǒng)在讀寫性能、語種識別、關(guān)鍵字檢索性能等方面準(zhǔn)確率低以及穩(wěn)定性方面測試復(fù)雜的問題,提出了一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具及測試方法,使測試變得簡單且精確。
一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具,包括順序?qū)懭?讀取模塊、隨機(jī)寫入/讀取模塊、循環(huán)寫入/讀取模塊、語種識別模塊、關(guān)鍵字檢索對比模塊、刪除模塊和并發(fā)模塊;每個模塊單獨(dú)連接海量數(shù)據(jù)全文檢索系統(tǒng)。
順序?qū)懭?讀取模塊用于在全文檢索系統(tǒng)中,順序?qū)懭牒妥x取不同文件塊大小、不同文件大小的數(shù)據(jù);
隨機(jī)寫入/讀取模塊用于在全文檢索系統(tǒng)中,隨機(jī)寫入和讀取不同文件塊大小、不同文件大小的數(shù)據(jù);
循環(huán)寫入/讀取模塊用于對全文檢索系統(tǒng),進(jìn)行長時間大壓力地循環(huán)寫入或循環(huán)讀取不同的數(shù)據(jù)文件;
語種識別模塊用于對全文檢索系統(tǒng)中寫入文件的語種進(jìn)行識別;
關(guān)鍵字檢索對比模塊用于對全文檢索系統(tǒng)中,寫入的原始文件與檢索結(jié)果進(jìn)行對比,得出全文檢索系統(tǒng)中關(guān)鍵字檢索的準(zhǔn)確率,并統(tǒng)計全文檢索系統(tǒng)進(jìn)行關(guān)鍵字檢索使用的時間;
刪除模塊用于刪除指定全文檢索系統(tǒng)中的文件;
并發(fā)模塊用于模擬多用戶同時對全文檢索系統(tǒng)進(jìn)行并發(fā)操作。
一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試方法,具體步驟如下:
步驟一、針對某個事件的海量數(shù)據(jù),利用順序?qū)懭?讀取模塊將海量數(shù)據(jù)順序?qū)懭肴臋z索系統(tǒng),并順序讀取不同文件塊大小和不同文件大小的數(shù)據(jù);
步驟二、制定用于對全文檢索系統(tǒng)進(jìn)行檢索測試的關(guān)鍵參數(shù)和測試命令;
測試命令為:
./Texttest[-i][-r][-s][-l][-t][-T][-K][-L][-F file1file2...][-f path][-o file];
Texttest:工具名稱;
-i:讀寫模式,0順序?qū)懀?順序讀,2隨機(jī)寫,3隨機(jī)讀;
-r:指定測試文件塊大小,單位為KB。也可以指定單位-r#b(bytes)或-r#k(Kbytes)或-r#m(Mbytes);
-s:指定測試文件大小,單位為KB。也可以指定單位-s#K(Kbytes)或-s#M(Mbytes)或-s#G(Gbytes);
-l:循環(huán)次數(shù);
-t:文件存儲操作與關(guān)鍵字檢索操作的間隔時間,單位為秒(s);
-T:并發(fā)進(jìn)程數(shù)量;
-K:指定測試關(guān)鍵字,使用”括起來;
-L:輸出識別到的語種類型;
-F:(file1file2...)指定并發(fā)線程下測試的文件名,與-T配合使用;
-f:(path)輸入文件的存儲路徑;
-o:(file)輸出結(jié)果文件的存儲路徑及名稱;
步驟三、通過調(diào)整測試命令中不同的參數(shù),對全文檢索系統(tǒng)中的海量數(shù)據(jù)進(jìn)行不同的檢索測試;
測試包括以下七條:
1)、利用順序?qū)懭?讀取模塊,對海量數(shù)據(jù)進(jìn)行順序?qū)懭牒妥x取,實現(xiàn)全文檢索系統(tǒng)的順序讀寫性能測試;
2)、利用隨機(jī)寫入/讀取模塊,對海量數(shù)據(jù)進(jìn)行隨機(jī)寫入和讀取,實現(xiàn)全文檢索系統(tǒng)的隨機(jī)讀寫性能測試;
3)、利用語種識別模塊,對海量數(shù)據(jù)進(jìn)行語種識別,實現(xiàn)據(jù)全文檢索系統(tǒng)文件內(nèi)容的語種識別能力測試;
4)、利用關(guān)鍵字檢索對比模塊,對海量數(shù)據(jù)進(jìn)行檢索,實現(xiàn)全文檢索系統(tǒng)文件內(nèi)容的關(guān)鍵字檢索性能測試;
5)、利用關(guān)鍵字檢索對比模塊,將海量數(shù)據(jù)與檢索結(jié)果進(jìn)行對比,實現(xiàn)全文檢索系統(tǒng)文件內(nèi)容的關(guān)鍵字檢索準(zhǔn)確率測試;
6)、利用關(guān)鍵字檢索對比模塊和并發(fā)模塊,模擬多用戶同時對海量數(shù)據(jù)進(jìn)行并發(fā)操作,實現(xiàn)全文檢索系統(tǒng)多進(jìn)程并發(fā)關(guān)鍵字檢索性能測試;
7)、利用循環(huán)寫入/讀取模塊進(jìn)行全文檢索系統(tǒng)的穩(wěn)定性測試;
步驟四、針對全文檢索系統(tǒng)的每一條性能測試,利用測試命令測試完成后,將測試結(jié)果輸出到自定義文件中。
本發(fā)明的優(yōu)點在于:
(1)一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具,包括對語種識別測試、關(guān)鍵字檢索準(zhǔn)確率測試、讀寫性能及穩(wěn)定性測試,一個工具即可完成對上述測試項的測試,且使用簡單。
(2)一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具,具有很強(qiáng)的實用性,具有很廣泛的應(yīng)用前景。
(3)一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試方法,只需輸入較少的命令即可,自動收集測試結(jié)果,形成文件。
附圖說明
圖1是本發(fā)明一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具示意圖;
圖2是本發(fā)明一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試方法流程圖;
圖中:1-順序?qū)懭?讀取模塊;2-隨機(jī)寫入/讀取模塊;3-循環(huán)寫入/讀取模塊;4-語種識別模塊;5-關(guān)鍵字檢索對比模塊;6-刪除模塊;7-并發(fā)模塊。
具體實施方式
下面將結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試工具,如圖1所示,包括順序?qū)懭?讀取模塊1、隨機(jī)寫入/讀取模塊2、循環(huán)寫入/讀取模塊3、語種識別模塊4、關(guān)鍵字檢索對比模塊5、刪除模塊6和并發(fā)模塊7。每個模塊單獨(dú)連接海量數(shù)據(jù)全文檢索系統(tǒng)。
通過順序?qū)懭?讀取模塊1可以向全文檢索系統(tǒng)中順序?qū)懭牖蛘咦x取不同文件塊大小、不同文件大小的數(shù)據(jù);
通過隨機(jī)寫入/讀取模塊2可以向全文檢索系統(tǒng)中隨機(jī)寫入或者讀取不同文件塊大小、不同文件大小的數(shù)據(jù);
通過循環(huán)寫入/讀取模塊3可以對全文檢索系統(tǒng)長時間大壓力地循環(huán)寫入或讀取不同文件塊大小、不同文件大小的數(shù)據(jù)文件;
通過語種識別模塊4可以對全文檢索系統(tǒng)中相應(yīng)的文件內(nèi)容進(jìn)行語種的識別,并與原始文件進(jìn)行對比;
通過關(guān)鍵字檢索對比模塊5,通過全文檢索系統(tǒng)中檢索出來的關(guān)鍵字次數(shù)和位置,與原始文件進(jìn)行對比,得出全文檢索系統(tǒng)中關(guān)鍵字檢索的準(zhǔn)確率,并統(tǒng)計檢索操作所用的時間;
通過刪除模塊6可以刪除全文檢索系統(tǒng)中指定的數(shù)據(jù)文件;
通過并發(fā)模塊7可以模擬多用戶同時對全文檢索系統(tǒng)進(jìn)行操作。
一種應(yīng)用于海量數(shù)據(jù)全文檢索系統(tǒng)的測試方法,支持對海量數(shù)據(jù)全文檢索系統(tǒng)和類似軟件的測試,可以使對此類系統(tǒng)和軟件的測試變得簡單且準(zhǔn)確。
如圖2所示,具體步驟如下:
步驟一、針對某個事件的海量數(shù)據(jù),利用順序?qū)懭?讀取模塊將海量數(shù)據(jù)順序?qū)懭肴臋z索系統(tǒng),并順序讀取不同文件塊大小和不同文件大小的數(shù)據(jù);
步驟二、制定用于對全文檢索系統(tǒng)進(jìn)行檢索測試的關(guān)鍵參數(shù)和測試命令;
關(guān)鍵參數(shù)包括:四種讀寫模式參數(shù)-i,指定測試文件塊大小參數(shù)-r,指定測試文件大小參數(shù)-s,循環(huán)次數(shù)-l,文件存儲操作與關(guān)鍵字檢索操作的間隔時間-t,并發(fā)進(jìn)程數(shù)量-T,指定測試關(guān)鍵字-K,輸出識別到的語種類型-L,指定并發(fā)線程下測試的文件名-F,輸入文件的存儲路徑-f,輸出結(jié)果文件的存儲路徑及名稱-o。
通過調(diào)整測試命令中不同的參數(shù),進(jìn)行不同的測試。測試命令(字母區(qū)分大小寫)為:
./Texttest[-i][-r][-s][-l][-t][-T][-K][-L][-F file1file2...][-f path][-o file];
Texttest:工具名稱;
-i:讀寫模式,0順序?qū)懀?順序讀,2隨機(jī)寫,3隨機(jī)讀;
-r:指定測試文件塊大小,單位為KB。也可以指定單位-r#b(bytes)或-r#k(Kbytes)或-r#m(Mbytes);
-s:指定測試文件大小,單位為KB。也可以指定單位-s#K(Kbytes)或-s#M(Mbytes)或-s#G(Gbytes);
-l:循環(huán)次數(shù);
-t:文件存儲操作與關(guān)鍵字檢索操作的間隔時間,單位為秒(s);
-T:并發(fā)進(jìn)程數(shù)量;
-K:指定測試關(guān)鍵字,使用”括起來;
-L:輸出識別到的語種類型;
-F:(file1file2...)指定并發(fā)線程下測試的文件名,與-T配合使用;
-f:(path)輸入文件的存儲路徑;
-o:(file)輸出結(jié)果文件的存儲路徑及名稱;
步驟三、通過調(diào)整測試命令中不同的參數(shù),對全文檢索系統(tǒng)中的海量數(shù)據(jù)進(jìn)行不同的檢索測試;
測試支持的操作系統(tǒng)為linux、unix,具體包括:
1)、利用順序?qū)懭?讀取模塊,對海量數(shù)據(jù)進(jìn)行順序?qū)懭牒妥x取,實現(xiàn)全文檢索系統(tǒng)的順序讀寫性能測試;
向全文檢索系統(tǒng)順序?qū)懭霐?shù)據(jù)文件,然后再按順序讀取數(shù)據(jù)文件,對全文檢索系統(tǒng)進(jìn)行順序讀寫性能測試,測試完成后把讀寫性能結(jié)果輸出到指定文件中;
2)、利用隨機(jī)寫入/讀取模塊,對海量數(shù)據(jù)進(jìn)行隨機(jī)寫入和讀取,實現(xiàn)全文檢索系統(tǒng)的隨機(jī)讀寫性能測試;
向全文檢索系統(tǒng)隨機(jī)寫入數(shù)據(jù)文件,然后再隨機(jī)讀取數(shù)據(jù)文件,對全文檢索系統(tǒng)進(jìn)行隨機(jī)讀寫性能測試,測試完成后把讀寫性能結(jié)果輸出到指定文件中;
3)、利用語種識別模塊,對海量數(shù)據(jù)進(jìn)行語種識別,實現(xiàn)全文檢索系統(tǒng)文件內(nèi)容的語種識別能力測試;
向全文檢索系統(tǒng)寫入指定文件,然后對該文件進(jìn)行語種識別,對全文檢索系統(tǒng)進(jìn)行語種識別能力測試,測試完成后把語種識別結(jié)果輸出到指定文件中;
4)、利用關(guān)鍵字檢索對比模塊,對全文檢索系統(tǒng)中的海量數(shù)據(jù)進(jìn)行檢索,實現(xiàn)全文檢索系統(tǒng)數(shù)據(jù)內(nèi)容的關(guān)鍵字檢索性能測試;
向全文檢索系統(tǒng)寫入指定文件,然后對該文件進(jìn)行關(guān)鍵字檢索,對全文檢索系統(tǒng)進(jìn)行關(guān)鍵字檢索性能測試,測試完成后把檢索性能結(jié)果輸出到指定文件中;
5)、利用關(guān)鍵字檢索對比模塊,將海量數(shù)據(jù)原始文件與檢索結(jié)果進(jìn)行對比,實現(xiàn)全文檢索系統(tǒng)文件內(nèi)容的關(guān)鍵字檢索準(zhǔn)確率測試;
向全文檢索系統(tǒng)寫入指定文件,然后對該文件進(jìn)行關(guān)鍵字檢索,并把檢索結(jié)果與原文件進(jìn)行對比,對全文檢索系統(tǒng)進(jìn)行關(guān)鍵字檢索準(zhǔn)確率測試,測試完成后把檢索準(zhǔn)確率結(jié)果輸出到指定文件中;
6)、利用關(guān)鍵字檢索對比模塊和并發(fā)模塊,模擬多用戶同時對全文檢索系統(tǒng)進(jìn)行并發(fā)關(guān)鍵字檢索操作,實現(xiàn)全文檢索系統(tǒng)多進(jìn)程并發(fā)關(guān)鍵字檢索性能測試;
向全文檢索系統(tǒng)順序?qū)懭胛募缓竽M多用戶同時對全文檢索系統(tǒng)進(jìn)行關(guān)鍵字檢索測試,對全文檢索系統(tǒng)進(jìn)行多進(jìn)程下的關(guān)鍵字檢索性能測試,測試完成后把并發(fā)檢索性能結(jié)果輸出到指定文件中;
7)、利用循環(huán)寫入/讀取模塊進(jìn)行全文檢索系統(tǒng)的穩(wěn)定性測試;
根據(jù)全文檢索系統(tǒng)的空間大小設(shè)置寫入數(shù)據(jù)量,每次順序?qū)懭氩煌臄?shù)據(jù)文件,每個文件寫完后進(jìn)行讀取,讀取完成后對該文件進(jìn)行刪除。重復(fù)對全文檢索系統(tǒng)進(jìn)行長時間的寫入、讀取和刪除操作,以測試全文檢索系統(tǒng)的穩(wěn)定性,每一次寫入、讀取和刪除的性能結(jié)果輸出到指定的文件中,得到寫入、讀取和刪除的性能變化曲線。
步驟四、針對全文檢索系統(tǒng)的每一條性能測試,利用測試命令測試完成后,將測試結(jié)果輸出到自定義文件中。
為了檢測七條測試性能,可以用一條到七條測試命令完成。
測試結(jié)束后自動顯示測試結(jié)果;
實施例:
(1)對海量數(shù)據(jù)全文檢索系統(tǒng)進(jìn)行順序讀寫性能測試;
使用測試工具向海量數(shù)據(jù)全文檢索系統(tǒng)內(nèi)順序?qū)懭霐?shù)據(jù),再按一定順序讀取這些數(shù)據(jù),需要指定的參數(shù)如下:順序?qū)?、順序讀、測試文件塊大小、測試文件大小、循環(huán)次數(shù)、輸出結(jié)果文件路徑及名稱;舉例說明測試命令:
./Texttest-i 0-i 1-r 1024k-s 50G-l 10-o./result.log
測試完成后把測試結(jié)果輸出到result.log文件中;通過調(diào)整不同的參數(shù)可達(dá)到不同的測試目的。
(2)對海量數(shù)據(jù)全文檢索系統(tǒng)進(jìn)行檢索性能測試;
使用測試工具向海量數(shù)據(jù)全文檢索系統(tǒng)寫入一些文件,再按指定關(guān)鍵字進(jìn)行檢索測試,需要指定的參數(shù)如下:輸入文件的存儲路徑、存儲與檢索的間隔時間、指定測試關(guān)鍵字、輸出結(jié)果文件的存儲路徑及名稱;舉例說明測試命令:
./Texttest-f/mnt/sdb/testdata/-t 300-K'北京'-o./result.log。