一種軟件測(cè)試方法、裝置及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種軟件測(cè)試方法、裝置及系統(tǒng),該方法包括:控制端預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;根據(jù)CPU負(fù)載程度處理規(guī)則,確定出目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目;生成通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。由于可以通過(guò)特定服務(wù)器線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,故可以建立穩(wěn)定在目標(biāo)CPU負(fù)載程度的測(cè)試環(huán)境,并在該測(cè)試環(huán)境下測(cè)試目標(biāo)軟件。因此,本方案能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
【專利說(shuō)明】
一種軟件測(cè)試方法、裝置及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種軟件測(cè)試方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]在軟件開發(fā)過(guò)程中,需要在一定的負(fù)載環(huán)境下對(duì)軟件進(jìn)行壓力測(cè)試,以確定軟件的運(yùn)行情況是否存在問(wèn)題,故可以通過(guò)制造CPU負(fù)載以提供軟件測(cè)試的測(cè)試環(huán)境。
[0003]目前,可以利用測(cè)試工具以制造CPU負(fù)載,并在相應(yīng)測(cè)試環(huán)境下運(yùn)行被測(cè)試軟件。
[0004]由于測(cè)試工具在制造CPU負(fù)載時(shí)通常會(huì)出現(xiàn)較大波動(dòng),使測(cè)試環(huán)境多變,故不便于對(duì)測(cè)試過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行定位。因此,現(xiàn)有的實(shí)現(xiàn)方式不能制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供了一種軟件測(cè)試方法、裝置及系統(tǒng),能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
[0006]為了達(dá)到上述目的,本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
[0007]第一方面,本發(fā)明提供了一種軟件測(cè)試方法,應(yīng)用于控制端,預(yù)先與至少一個(gè)服務(wù)器相連;預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序,還包括:
[0008]根據(jù)所述CPU負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目;
[0009]生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令;
[0010]將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。
[0011 ] 進(jìn)一步地,所述死循環(huán)語(yǔ)句包括:while(l);語(yǔ)句、for(;;;);語(yǔ)句、do() Uwhile
(I);語(yǔ)句中的任意一種。
[0012]進(jìn)一步地,所述CPU負(fù)載程度處理規(guī)則,包括:每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件:
[0013]O 彡(X-Xi)彡 K,其中,X = N2/Ni,
[0014]見(jiàn)為所述服務(wù)器線程數(shù),仏為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CR]負(fù)載程度,K為設(shè)定閾值。
[0015]進(jìn)一步地,所述K包括:10%;
[0016]所述每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,包括:
[0017]當(dāng)Xi 彡 12% 時(shí),Ni = 8、N2 = 1;
[0018]當(dāng)12%<Xi 彡 16% 時(shí),Ni = 12、N2 = 2;
[0019]當(dāng)16%<父1彡25%時(shí),沁=4、吣=1,沁=8、吣=2或沁=12、吣=3;
[0020]當(dāng)25%<Xi 彡 33% 時(shí),Ni = 12、N2 = 4;
[0021]當(dāng)33%<Xi 彡 37% 時(shí),Ni = 8、N2 = 3;
[0022]當(dāng)37%<Xi 彡 41% 時(shí),Ni = 12、N2 = 5;
[0023]當(dāng)41%<Xi 彡50% 時(shí),Ni = 4、N2 = 2,Ni = 8、N2 = 4SNi = 12、N2 = 6;
[0024]當(dāng)50%<Xi 彡 58% 時(shí),Ni = 12、N2 = 7;
[0025]當(dāng)58%<Xi 彡 62% 時(shí),Ni = 8、N2 = 5;
[0026]當(dāng)62%<Xi 彡 66% 時(shí),Ni = 12、N2 = 8;
[0027]當(dāng)66%<Xi 彡 75% 時(shí),Ni = 4、N2 = 3,Ni = 8、N2 = 6 或 Ni = 12、N2 = 9;
[0028]當(dāng)75%<Xi 彡83% 時(shí),Ni = 12、N2 = 10;
[0029]當(dāng)83%<Xi 彡 87% 時(shí),Ni = 8、N2 = 7;
[0030]當(dāng)87%<Xi 彡91%時(shí),Ni = 12、N2 = 11。
[0031]第二方面,本發(fā)明提供了一種軟件測(cè)試方法,應(yīng)用于服務(wù)器,預(yù)先與控制端相連,預(yù)先確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序,還包括:
[0032]接收所述控制端發(fā)來(lái)的控制指令;
[0033]通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;
[0034]利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。
[0035]進(jìn)一步地,所述服務(wù)器的操作系統(tǒng)包括:Linux操作系統(tǒng);
[0036]在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,還包括:利用gcctest.c-ο test編譯所述測(cè)試程序;輸入./test,以及繼續(xù)執(zhí)行當(dāng)前流程;
[0037]所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Linux操作系統(tǒng)下,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序。
[0038]進(jìn)一步地,所述服務(wù)器的操作系統(tǒng)包括:Windows操作系統(tǒng);
[0039]在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,還包括:利用visualstud1編譯所述測(cè)試程序,生成test.exe文件,以及繼續(xù)執(zhí)行當(dāng)前流程;
[0040]所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Windows操作系統(tǒng)下,通過(guò)運(yùn)行所述test.exe文件,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序。
[0041 ]第三方面,本發(fā)明提供了一種控制端,預(yù)先與至少一個(gè)服務(wù)器相連,包括:
[0042]第一確定單元,用于確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;
[0043]處理單元,用于根據(jù)所述CPU負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目;
[0044]生成單元,用于生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令;
[0045]發(fā)送單元,用于將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。
[0046]進(jìn)一步地,所述第一確定單元,具體用于獲取包括while(l);語(yǔ)句、for(;;;);語(yǔ)句、doOUwhiled);語(yǔ)句中的任意一種死循環(huán)語(yǔ)句的測(cè)試程序。
[0047]進(jìn)一步地,所述第一確定單元,具體用于確定包括每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目的CPU負(fù)載程度處理規(guī)則,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件:
[0048]O 彡(X-Xi)彡 K,其中,X = N2/Ni,
[0049]見(jiàn)為所述服務(wù)器線程數(shù),犯為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CHJ負(fù)載程度,K為設(shè)定閾值。
[0050]第四方面,本發(fā)明提供了一種服務(wù)器,預(yù)先與控制端相連,包括:
[0051 ]第二確定單元,用于確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序;
[0052]接收單元,用于接收所述控制端發(fā)來(lái)的控制指令;
[0053]測(cè)試單元,用于通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;以及利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。
[0054]第五方面,本發(fā)明提供了一種軟件測(cè)試系統(tǒng),包括:上述任一所述的控制端,以及至少一個(gè)上述的服務(wù)器;
[0055]所述控制端分別與每一個(gè)所述服務(wù)器相連;
[0056]所述至少一個(gè)服務(wù)器對(duì)應(yīng)于至少一種服務(wù)器線程數(shù)。
[0057]本發(fā)明提供了一種軟件測(cè)試方法、裝置及系統(tǒng),控制端預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;根據(jù)CPU負(fù)載程度處理規(guī)則,確定出目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目;生成通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。由于可以通過(guò)特定服務(wù)器線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,故可以建立穩(wěn)定在目標(biāo)CPU負(fù)載程度的測(cè)試環(huán)境,并在該測(cè)試環(huán)境下測(cè)試目標(biāo)軟件。因此,本發(fā)明能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
【附圖說(shuō)明】
[0058]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0059]圖1是本發(fā)明一實(shí)施例提供的一種軟件測(cè)試方法的流程圖;
[0060]圖2是本發(fā)明一實(shí)施例提供的另一種軟件測(cè)試方法的流程圖;
[0061 ]圖3是本發(fā)明一實(shí)施例提供的再一種軟件測(cè)試方法的流程圖;
[0062]圖4是本發(fā)明一實(shí)施例提供的一種控制端的示意圖;
[0063]圖5是本發(fā)明一實(shí)施例提供的一種服務(wù)器的示意圖;
[0064]圖6是本發(fā)明一實(shí)施例提供的一種軟件測(cè)試系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0065]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0066]如圖1所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試方法,應(yīng)用于控制端,預(yù)先與至少一個(gè)服務(wù)器相連,可以包括以下步驟:
[0067]步驟101:預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CHJ負(fù)載程度,確定CHJ負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序。
[0068]步驟102:根據(jù)所述CPU負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目。
[0069]步驟103:生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令。
[0070]步驟104:將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。
[0071]本發(fā)明實(shí)施例提供了一種軟件測(cè)試方法,控制端預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;根據(jù)CPU負(fù)載程度處理規(guī)則,確定出目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目;生成通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。由于可以通過(guò)特定服務(wù)器線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,故可以建立穩(wěn)定在目標(biāo)CPU負(fù)載程度的測(cè)試環(huán)境,并在該測(cè)試環(huán)境下測(cè)試目標(biāo)軟件。因此,本發(fā)明實(shí)施例能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
[0072]在本發(fā)明的一個(gè)實(shí)施例中,為了能夠通過(guò)運(yùn)行死循環(huán)語(yǔ)句以提供穩(wěn)定的CPU負(fù)載,所以,所述死循環(huán)語(yǔ)句包括:while(l);語(yǔ)句、for(;;;);語(yǔ)句、do() {}while(I);語(yǔ)句中的任意一種。
[0073]在本發(fā)明的一個(gè)實(shí)施例中,為了能夠針對(duì)目標(biāo)CPU負(fù)載程度,提供相應(yīng)的用于提供穩(wěn)定CPU負(fù)載的優(yōu)選方案,所以,所述CPU負(fù)載程度處理規(guī)則,包括:每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件:
[0074]O 彡(X-Xi)彡 K,其中,X = N2/Ni,
[0075]見(jiàn)為所述服務(wù)器線程數(shù),犯為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CHJ負(fù)載程度,K為設(shè)定閾值。
[0076]在本發(fā)明的一個(gè)實(shí)施例中,為了能夠利用常用配置服務(wù)器,如4線程服務(wù)器、8線程服務(wù)器、12線程服務(wù)器,建立符合目標(biāo)CPU負(fù)載程度的測(cè)試環(huán)境以測(cè)試軟件,所以,所述K包括:10% ;
[0077]所述每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,包括:
[0078]當(dāng)Xi<12% 時(shí),Νι = 8、Ν2 = 1;
[0079]當(dāng)12%<Xi 彡 16% 時(shí),Ni = 12、N2 = 2;
[0080]當(dāng)16%<父1彡25%時(shí)小1 = 4、吣=1,沁=8、吣=2或沁=12、吣=3;
[0081]當(dāng)25%<Xi 彡 33% 時(shí),Ni = 12、N2 = 4;
[0082]當(dāng)33%<Xi 彡 37% 時(shí),Ni = 8、N2 = 3;
[0083]當(dāng)37%<Xi 彡 41% 時(shí),Ni = 12、N2 = 5;
[0084]當(dāng)41%<Xi 彡 50% 時(shí),Ni = 4、N2 = 2,Ni = 8、N2 = 4 或 Ni = 12、N2 = 6;
[0085]當(dāng)50%<Xi 彡 58% 時(shí),Ni = 12、N2 = 7;
[0086]當(dāng)58%<Xi 彡 62% 時(shí),Ni = 8、N2 = 5;
[0087]當(dāng)62%<Xi 彡 66% 時(shí),Ni = 12、N2 = 8;
[0088]當(dāng)66%<Xi 彡 75% 時(shí),Ni = 4、N2 = 3,Ni = 8、N2 = 6 或 Ni = 12、N2 = 9;
[0089]當(dāng)75%<Xi 彡83% 時(shí),Ni = 12、N2 = 10;
[0090]當(dāng)83%<Xi 彡 87% 時(shí),Ni = 8、N2 = 7;
[0091]當(dāng)87%<Xi 彡91%時(shí),Ni = 12、N2 = 11。
[0092]如圖2所示,本發(fā)明實(shí)施例提供了另一種軟件測(cè)試方法,應(yīng)用于服務(wù)器,預(yù)先與控制端相連,可以包括以下步驟:
[0093]步驟201:預(yù)先確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序。
[0094]步驟202:接收所述控制端發(fā)來(lái)的控制指令。
[0095]步驟203:通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境。
[0096]步驟204:利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。
[0097]本發(fā)明實(shí)施例提供了一種軟件測(cè)試方法,服務(wù)器在接收到控制端發(fā)來(lái)的控制指令時(shí),通過(guò)執(zhí)行該控制指令以啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;以及利用這一測(cè)試環(huán)境測(cè)試預(yù)先確定的目標(biāo)軟件。由于該服務(wù)器可以為控制端所確定出的具有特定服務(wù)器線程數(shù)的目標(biāo)服務(wù)器,且通過(guò)執(zhí)行控制端發(fā)來(lái)的控制指令,可以建立特定(PU負(fù)載程度的穩(wěn)定測(cè)試環(huán)境以進(jìn)行軟件測(cè)試。因此,本發(fā)明實(shí)施例能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
[0098]在本發(fā)明的一個(gè)實(shí)施例中,為了說(shuō)明具有Linux操作系統(tǒng)的服務(wù)器啟動(dòng)測(cè)試程序的可能實(shí)現(xiàn)方式,所以,
[0099]所述服務(wù)器的操作系統(tǒng)包括:Linux操作系統(tǒng);
[0?00]在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,進(jìn)一步包括:利用gcc test.c-o test編譯所述測(cè)試程序;輸入./test,以及繼續(xù)執(zhí)行當(dāng)前流程;
[0101 ]所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Linux操作系統(tǒng)下,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序。
[0102]在本發(fā)明的一個(gè)實(shí)施例中,為了說(shuō)明具有Windows操作系統(tǒng)的服務(wù)器啟動(dòng)測(cè)試程序的可能實(shí)現(xiàn)方式,所以,
[0103]所述服務(wù)器的操作系統(tǒng)包括=Windows操作系統(tǒng);
[0104]在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,進(jìn)一步包括:利用visualstud1編譯所述測(cè)試程序,生成test.exe文件,以及繼續(xù)執(zhí)行當(dāng)前流程;
[0105]所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Windows操作系統(tǒng)下,通過(guò)運(yùn)行所述test.exe文件,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序。
[0106]如圖3所示,本發(fā)明一個(gè)實(shí)施例提供了再一種軟件測(cè)試方法,該方法以結(jié)合控制端和服務(wù)器共同作用并進(jìn)行軟件測(cè)試為例,具體包括以下步驟:
[0107]步驟301:控制端分別與每一個(gè)服務(wù)器相連。
[0108]詳細(xì)地,每一個(gè)服務(wù)器均可以對(duì)應(yīng)于一種服務(wù)器線程數(shù)。例如,在本發(fā)明一個(gè)實(shí)施例中,與控制端相連的每一個(gè)服務(wù)器的線程數(shù)可以為2、4、6、8、12、16、20、24、28、32、36、40
中的任意一種。
[0109]由于4線程、8線程和12線程的服務(wù)器較為常用,配置成本適宜,且能夠創(chuàng)建多種不同CPU負(fù)載程度的軟件測(cè)試環(huán)境,故優(yōu)選的,在本發(fā)明實(shí)施例中,控制端可以與雙核心4線程服務(wù)器、4核心8線程服務(wù)器、6核心12線程服務(wù)器這三個(gè)服務(wù)器分別相連。
[0110]步驟302:控制端確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序。
[0111]舉例來(lái)說(shuō),當(dāng)用戶端服務(wù)器的CPU負(fù)載程度較為穩(wěn)定,比如通常維持在60%的CPU負(fù)載情況下,且需要在該CR]負(fù)載程度下使用某一目標(biāo)軟件時(shí),軟件測(cè)試人員可以利用自身的服務(wù)器,建立一個(gè)類似的軟件運(yùn)行環(huán)境,并維持穩(wěn)定的相同CPU負(fù)載程度以進(jìn)行軟件測(cè)試。
[0112]無(wú)需親臨用戶端現(xiàn)場(chǎng)及無(wú)需利用用戶端服務(wù)器,軟件測(cè)試人員可以利用自身的服務(wù)器進(jìn)行軟件測(cè)試,從而確定目標(biāo)軟件在測(cè)試過(guò)程中是否存在問(wèn)題,并對(duì)出現(xiàn)的問(wèn)題進(jìn)行及時(shí)解決,從而保證目標(biāo)軟件能夠在用戶端服務(wù)器上正常運(yùn)行。為實(shí)現(xiàn)這一目的,首先需要明確用戶端服務(wù)器的這一CHJ負(fù)載程度,即確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度。比如,控制端首先確定目標(biāo)CPU負(fù)載程度為60%。
[0113]為了能夠建立與用戶端服務(wù)器運(yùn)行環(huán)境相類似的軟件測(cè)試環(huán)境,可以在特定服務(wù)器線程數(shù)的目標(biāo)服務(wù)器上運(yùn)行特定數(shù)目的測(cè)試程序?;谶@一實(shí)現(xiàn)方式,可以預(yù)先確定一個(gè)CPU負(fù)載程度處理規(guī)則,以確定出與目標(biāo)CPU負(fù)載程度相對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的數(shù)目。
[0114]因此,在本發(fā)明一個(gè)實(shí)施例中,CPU負(fù)載程度處理規(guī)則可以包括每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,且服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目符合下述條件:
[0115]O 彡(X-Xi)彡 K,其中,X = N2/Ni,
[0116]N1為服務(wù)器線程數(shù),他為測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為目標(biāo)CPU負(fù)載程度,K為設(shè)定閾值。
[0117]詳細(xì)地,K可以為任一正數(shù),如5%、10%等。
[0118]由于本發(fā)明實(shí)施例中,與控制端相連的三個(gè)服務(wù)器的線程數(shù)分別為4線程、8線程和12線程,故利用其中一個(gè)服務(wù)器所建立的測(cè)試環(huán)境的理論CPU負(fù)載程度與相應(yīng)目標(biāo)CPU負(fù)載程度的差值可以不大于10%。此外,為保證經(jīng)軟件測(cè)試人員進(jìn)行驗(yàn)證后的測(cè)試軟件能夠在用戶端服務(wù)器上正常運(yùn)行,一般選擇理論(PU負(fù)載程度不小于目標(biāo)CPU負(fù)載程度。
[0119]因此,在本實(shí)施例中,當(dāng)K = 10%時(shí),這一CPU負(fù)載程度處理規(guī)則可以如下所示:
[0120]當(dāng)Xi 彡 12% 時(shí),Ni = 8、N2 = 1;
[0121]當(dāng)12%<Xi 彡 16% 時(shí),Ni = 12、N2 = 2;
[0122]當(dāng)16%<父1彡25%時(shí),沁=4、吣=1,沁=8、吣=2或沁=12、吣=3;
[0123]當(dāng)25%<Xi 彡 33% 時(shí),Ni = 12、N2 = 4;
[0124]當(dāng)33%<Xi 彡 37% 時(shí),Ni = 8、N2 = 3;
[0125]當(dāng)37%<Xi 彡 41% 時(shí),Ni = 12、N2 = 5;
[0126]當(dāng)41%<Xi 彡50% 時(shí),Ni = 4、N2 = 2,Ni = 8、N2 = 4SNi = 12、N2 = 6;
[0127]當(dāng)50%<Xi 彡 58% 時(shí),Ni = 12、N2 = 7;
[0128]當(dāng)58%<Xi 彡 62% 時(shí),Ni = 8、N2 = 5;
[0129]當(dāng)62%<Xi 彡 66% 時(shí),Ni = 12、N2 = 8;
[0130]當(dāng)66%<Xi 彡75% 時(shí),Ni = 4、N2 = 3,Ni = 8、N2 = 6SNi = 12、N2 = 9;
[0131]當(dāng)75%<Xi 彡83% 時(shí),Ni = 12、N2 = 10;
[0132]當(dāng)83%<Xi 彡 87% 時(shí),Ni = 8、N2 = 7;
[0133]當(dāng)87%<Xi 彡91%時(shí),Ni = 12、N2 = 11。
[0134]在本發(fā)明一個(gè)實(shí)施例中,利用特定線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的測(cè)試程序,可以制造特定的CPU負(fù)載程度。為了保證制造的這一特定CPU負(fù)載程度能夠穩(wěn)定,以便于目標(biāo)軟件的準(zhǔn)確測(cè)試和測(cè)試中所出現(xiàn)問(wèn)題的準(zhǔn)確定位,這一測(cè)試程序可以為包括死循環(huán)語(yǔ)句的測(cè)試程序。
[0135]在本發(fā)明一個(gè)實(shí)施例中,包括死循環(huán)語(yǔ)句的測(cè)試程序可以通過(guò)C語(yǔ)言編寫而成,且理論上可通過(guò)運(yùn)行死循環(huán)語(yǔ)句以造成單線程CPU負(fù)載達(dá)到100%,且利用多線程服務(wù)器運(yùn)行多個(gè)測(cè)試程序時(shí),所整體造成的CPU負(fù)載可以平均分配至每一個(gè)線程。
[0136]詳細(xì)地,死循環(huán)語(yǔ)句可以包括while(l);語(yǔ)句、for(;;;);語(yǔ)句、do() {}while(I);語(yǔ)句中的任意一種。
[0137]在本發(fā)明一個(gè)實(shí)施例中,以whiIe(I)為例,包括死循環(huán)語(yǔ)句的測(cè)試程序的一種實(shí)現(xiàn)代碼可以如下所示:
[0138]#include〈stud1.h>
[0139]#include<unistd.h>
[0140]int main(int argc,char*argv[])
[0141]{
[0142]while(l)
[0143]return 0;
[0144]}
[0145]在本發(fā)明實(shí)施例中,通過(guò)運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,可以建立穩(wěn)定的CHJ負(fù)載,便于目標(biāo)軟件的穩(wěn)定測(cè)試,且易于對(duì)軟件測(cè)試過(guò)程中出現(xiàn)的異常問(wèn)題進(jìn)行定位及解決。這一實(shí)現(xiàn)方式可以避免因使用測(cè)試工具所造成的CPU負(fù)載不穩(wěn)定、CPU負(fù)載制造過(guò)程不循環(huán)進(jìn)行、不同服務(wù)器配置下制造的負(fù)載情況不同等問(wèn)題。此外,包含死循環(huán)語(yǔ)句的測(cè)試程序簡(jiǎn)單易編寫,且運(yùn)行速度快,以及基于該測(cè)試程序,能夠通過(guò)調(diào)節(jié)服務(wù)器線程數(shù)和測(cè)試程序的運(yùn)行個(gè)數(shù)以靈活調(diào)整(PU負(fù)載程度,從而可以提高本發(fā)明實(shí)施例的適用范圍。
[0146]步驟303:控制端根據(jù)CPU負(fù)載程度處理規(guī)則,確定出目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目。
[0147]例如,由于確定的目標(biāo)CPU負(fù)載程度為60%,通過(guò)查看上述CPU負(fù)載程度處理規(guī)則,可以確定出相應(yīng)的服務(wù)器線程數(shù)為8線程,且需要運(yùn)行5個(gè)測(cè)試程序。利用上述4核心8線程服務(wù)器同時(shí)運(yùn)行5個(gè)包含死循環(huán)語(yǔ)句的測(cè)試程序,理論上可以制造CPU負(fù)載程度為62.5%的測(cè)試環(huán)境,與用戶端服務(wù)器的60 %這一目標(biāo)CPU負(fù)載程度相接近。
[0148]步驟304:控制端生成通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將控制指令和測(cè)試程序發(fā)送給服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。
[0149]由上可知,控制端可以確定目標(biāo)服務(wù)器為4核心8線程服務(wù)器??刂贫丝梢陨梢粋€(gè)控制指令,以命令該目標(biāo)服務(wù)器同時(shí)運(yùn)行5個(gè)包含死循環(huán)語(yǔ)句的測(cè)試程序以測(cè)試目標(biāo)軟件。因此,控制端可以生成通過(guò)啟動(dòng)5個(gè)測(cè)試程序并運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將該控制指令發(fā)送給目標(biāo)服務(wù)器:4核心8線程服務(wù)器。
[0150]由于測(cè)試程序占用空間極小,故在本發(fā)明實(shí)施例中,控制端在將控制指令發(fā)送給目標(biāo)服務(wù)器時(shí),可以將預(yù)先確定的包含死循環(huán)語(yǔ)句的測(cè)試程序同時(shí)發(fā)送給目標(biāo)服務(wù)器。
[0151]當(dāng)然,在本發(fā)明一個(gè)實(shí)施例中,同樣可以在每一個(gè)服務(wù)器中均預(yù)先安裝包含死循環(huán)語(yǔ)句的測(cè)試程序,并在有需要時(shí)進(jìn)行調(diào)用即可,而無(wú)需由控制端發(fā)送給目標(biāo)服務(wù)器。
[0152]步驟305:4核心8線程服務(wù)器在接收到控制端發(fā)來(lái)的控制指令和測(cè)試程序時(shí),利用gcc test.c-o test編譯測(cè)試程序,并在編譯完成時(shí)輸入./test。
[0153]在本發(fā)明實(shí)施例中,由于目標(biāo)服務(wù)器:4核心8線程服務(wù)器的操作系統(tǒng)為L(zhǎng)inux操作系統(tǒng),故服務(wù)器在接收到控制端發(fā)來(lái)的控制指令和測(cè)試程序時(shí),可以利用gcc test.c-otest編譯測(cè)試程序,并在編譯完成時(shí)于命令行窗口中執(zhí)行./test,并繼續(xù)執(zhí)行當(dāng)前流程以運(yùn)行編譯后的測(cè)試程序。
[0154]此外,在本發(fā)明一個(gè)實(shí)施例中,當(dāng)目標(biāo)服務(wù)器的操作系統(tǒng)為Windows操作系統(tǒng)時(shí),可以利用vi sual stud1編譯測(cè)試程序,生成test.exe文件,并繼續(xù)執(zhí)行當(dāng)前流程,以運(yùn)行該test.exe文件。
[0155]步驟306:4核心8線程服務(wù)器在Linux操作系統(tǒng)下通過(guò)執(zhí)行控制指令,以啟動(dòng)第一數(shù)目的編譯后的測(cè)試程序并運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境。
[0156]理論上來(lái)說(shuō),服務(wù)器通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序,可以產(chǎn)生一定程度的CHJ負(fù)載,且該CPU負(fù)載可以平均分配在每一個(gè)服務(wù)器線程上。因此,4核心8線程服務(wù)器通過(guò)啟動(dòng)5個(gè)測(cè)試程序并運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,可以建立一個(gè)理論CPU負(fù)載程度為62.5%的測(cè)試環(huán)境,這一測(cè)試環(huán)境與用戶端服務(wù)器的日常運(yùn)行環(huán)境相接近,在該測(cè)試環(huán)境中測(cè)試目標(biāo)軟件可以達(dá)到在用戶端服務(wù)器運(yùn)行目標(biāo)軟件基本相同的效果。
[0157]此外,由于用戶訪問(wèn)量、內(nèi)存、磁盤空間、網(wǎng)絡(luò)帶寬等因素同樣會(huì)影響所創(chuàng)建的測(cè)試環(huán)境的穩(wěn)定性和實(shí)際負(fù)載程度,故在本發(fā)明實(shí)施例中,可以將這些影響因素設(shè)置為標(biāo)準(zhǔn)值,或與用戶端服務(wù)器的日常運(yùn)行環(huán)境相接近的實(shí)際值。
[0158]步驟307:4核心8線程服務(wù)器利用測(cè)試環(huán)境測(cè)試預(yù)先確定的目標(biāo)軟件。
[0159]在本發(fā)明一個(gè)實(shí)施例中,目標(biāo)服務(wù)器中預(yù)先確定的目標(biāo)軟件,可以為控制端發(fā)來(lái)的軟件。例如,控制端確定目標(biāo)軟件,以及在確定出需要向4核心8線程服務(wù)器發(fā)送控制指令和測(cè)試程序時(shí),同時(shí)將確定的目標(biāo)軟件發(fā)送給該目標(biāo)服務(wù)器。
[0160]4核心8線程服務(wù)器利用上述建立的測(cè)試環(huán)境,可以測(cè)試目標(biāo)軟件。若目標(biāo)軟件在該測(cè)試環(huán)境下運(yùn)行正常,則說(shuō)明其在用戶端服務(wù)器的日常應(yīng)用中通常同樣可以正常運(yùn)行。若目標(biāo)軟件在該測(cè)試環(huán)境下運(yùn)行異常,則工作人員可以針對(duì)異常問(wèn)題進(jìn)行調(diào)試、debug處理以解除異常,解除異常后的目標(biāo)軟件同樣可以在用戶端服務(wù)器的日常應(yīng)用中正常運(yùn)行。
[0161]在本發(fā)明一個(gè)實(shí)施例中,針對(duì)軟件開發(fā)過(guò)程來(lái)說(shuō),同樣可以利用本發(fā)明實(shí)施例提供的軟件測(cè)試方法,以在不同階段CHJ負(fù)載程度下均對(duì)該開發(fā)軟件進(jìn)行測(cè)試,以檢測(cè)開發(fā)軟件在不同CPU負(fù)載程度下的運(yùn)行情況是否正常,從而定位異常運(yùn)行問(wèn)題、解決異常運(yùn)行問(wèn)題及明確運(yùn)行開發(fā)軟件的極限CPU負(fù)載程度。
[0162]由上可知,在本發(fā)明實(shí)施例中,控制端可以根據(jù)用戶端服務(wù)器的實(shí)際運(yùn)行情況,命令具有特定線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,以建立穩(wěn)定地預(yù)期測(cè)試環(huán)境進(jìn)行軟件測(cè)試,從而可以達(dá)到與在用戶端服務(wù)器運(yùn)行目標(biāo)軟件相類似的實(shí)現(xiàn)效果。通過(guò)對(duì)軟件測(cè)試的運(yùn)行情況進(jìn)行考察,并對(duì)異常運(yùn)行問(wèn)題進(jìn)行解決,有益于保證目標(biāo)軟件能夠在用戶端服務(wù)器上正常運(yùn)行。此外,這一軟件測(cè)試實(shí)現(xiàn)方式可以自動(dòng)進(jìn)行,應(yīng)用靈活且易于實(shí)現(xiàn)。
[0163]如圖4所示,本發(fā)明一個(gè)實(shí)施例提供了一種控制端40,預(yù)先與至少一個(gè)服務(wù)器50相連,包括:
[0164]第一確定單元401,用于確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;
[0165]處理單元402,用于根據(jù)所述CPU負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目;
[0166]生成單元403,用于生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令;
[0167]發(fā)送單元404,用于將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。
[0168]在本發(fā)明的一個(gè)實(shí)施例中,所述控制端40可以為服務(wù)器。
[0169]在本發(fā)明的一個(gè)實(shí)施例中,所述第一確定單元401,具體用于獲取包括while(l);語(yǔ)句、for(;;;);語(yǔ)句、doOUwhiled);語(yǔ)句中的任意一種死循環(huán)語(yǔ)句的測(cè)試程序。
[0170]在本發(fā)明的一個(gè)實(shí)施例中,所述第一確定單元401,具體用于確定包括每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目的CPU負(fù)載程度處理規(guī)則,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件:
[0171]O 彡(X-Xi)彡 K,其中,X = N2/Ni,
[0172]見(jiàn)為所述服務(wù)器線程數(shù),犯為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CR]負(fù)載程度,K為設(shè)定閾值。
[0173]如圖5所示,本發(fā)明一個(gè)實(shí)施例提供了一種服務(wù)器50,預(yù)先與控制端40相連,包括:
[0174]第二確定單元501,用于確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序;
[0175]接收單元502,用于接收所述控制端40發(fā)來(lái)的控制指令;
[0176]測(cè)試單元503,用于通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;以及利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。
[0177]如圖6所示,本發(fā)明實(shí)施例提供了一種軟件測(cè)試系統(tǒng),包括:上述控制端40,以及至少一個(gè)上述服務(wù)器50;
[0178]所述控制端40分別與每一個(gè)所述服務(wù)器50相連;
[0179]所述至少一個(gè)服務(wù)器50對(duì)應(yīng)于至少一種服務(wù)器線程數(shù)。
[0180]在本發(fā)明一個(gè)實(shí)施例中,所述至少一個(gè)服務(wù)器50可以包括:2線程服務(wù)器、4線程服務(wù)器、8線程服務(wù)器、12線程服務(wù)器、16線程服務(wù)器、20線程服務(wù)器、24線程服務(wù)器、28線程服務(wù)器、32線程服務(wù)器、36線程服務(wù)器、40線程服務(wù)器中的任意一個(gè)或多個(gè)。
[0181]優(yōu)選的,在本發(fā)明一個(gè)實(shí)施例中,所述至少一個(gè)服務(wù)器50可以包括:4線程服務(wù)器、8線程服務(wù)器、12線程服務(wù)器這三個(gè)服務(wù)器。
[0182]上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
[0183]綜上所述,本發(fā)明的各個(gè)實(shí)施例至少具有如下有益效果:
[0184]1、本發(fā)明實(shí)施例中,控制端預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序;根據(jù)CPU負(fù)載程度處理規(guī)則,確定出目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目;生成通過(guò)啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行死循環(huán)語(yǔ)句以測(cè)試目標(biāo)軟件的控制指令,并將控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。由于可以通過(guò)特定服務(wù)器線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,故可以建立穩(wěn)定在目標(biāo)CPU負(fù)載程度的測(cè)試環(huán)境,并在該測(cè)試環(huán)境下測(cè)試目標(biāo)軟件。因此,本發(fā)明實(shí)施例能夠制造穩(wěn)定的(PU負(fù)載以測(cè)試軟件。
[0185]2、本發(fā)明實(shí)施例中,服務(wù)器在接收到控制端發(fā)來(lái)的控制指令時(shí),通過(guò)執(zhí)行該控制指令以啟動(dòng)第一數(shù)目的測(cè)試程序并運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;以及利用這一測(cè)試環(huán)境測(cè)試預(yù)先確定的目標(biāo)軟件。由于該服務(wù)器可以為控制端所確定出的具有特定服務(wù)器線程數(shù)的目標(biāo)服務(wù)器,且通過(guò)執(zhí)行控制端發(fā)來(lái)的控制指令,可以建立特定(PU負(fù)載程度的穩(wěn)定測(cè)試環(huán)境以進(jìn)行軟件測(cè)試。因此,本發(fā)明實(shí)施例能夠制造穩(wěn)定的CPU負(fù)載以測(cè)試軟件。
[0186]3、本發(fā)明實(shí)施例中,通過(guò)運(yùn)行測(cè)試程序中的死循環(huán)語(yǔ)句,可以建立穩(wěn)定的CHJ負(fù)載,便于目標(biāo)軟件的穩(wěn)定測(cè)試,且易于對(duì)軟件測(cè)試過(guò)程中出現(xiàn)的異常問(wèn)題進(jìn)行定位及解決。這一實(shí)現(xiàn)方式可以避免因使用測(cè)試工具所造成的CPU負(fù)載不穩(wěn)定、CPU負(fù)載制造過(guò)程不循環(huán)進(jìn)行、不同服務(wù)器配置下制造的負(fù)載情況不同等問(wèn)題。此外,包含死循環(huán)語(yǔ)句的測(cè)試程序簡(jiǎn)單易編寫,且運(yùn)行速度快,以及基于該測(cè)試程序,能夠通過(guò)調(diào)節(jié)服務(wù)器線程數(shù)和測(cè)試程序的運(yùn)行個(gè)數(shù)以靈活調(diào)整(PU負(fù)載程度,從而可以提高本發(fā)明實(shí)施例的適用范圍。
[0187]4、本發(fā)明實(shí)施例中,針對(duì)任一軟件開發(fā)過(guò)程,同樣可以利用本發(fā)明實(shí)施例提供的軟件測(cè)試方法,以在不同階段(PU負(fù)載程度下均對(duì)該開發(fā)軟件進(jìn)行測(cè)試,以檢測(cè)開發(fā)軟件在不同CPU負(fù)載程度下的運(yùn)行情況是否正常,從而定位異常運(yùn)行問(wèn)題、解決異常運(yùn)行問(wèn)題及明確運(yùn)行開發(fā)軟件的極限CPU負(fù)載程度。
[0188]5、本發(fā)明實(shí)施例中,控制端可以根據(jù)用戶端服務(wù)器的實(shí)際運(yùn)行情況,命令具有特定線程數(shù)的服務(wù)器運(yùn)行特定數(shù)目的包括死循環(huán)語(yǔ)句的測(cè)試程序,以建立穩(wěn)定地預(yù)期測(cè)試環(huán)境進(jìn)行軟件測(cè)試,從而可以達(dá)到與在用戶端服務(wù)器運(yùn)行目標(biāo)軟件相類似的實(shí)現(xiàn)效果。通過(guò)對(duì)軟件測(cè)試的運(yùn)行情況進(jìn)行考察,并對(duì)異常運(yùn)行問(wèn)題進(jìn)行解決,有益于保證目標(biāo)軟件能夠在用戶端服務(wù)器上正常運(yùn)行。此外,這一軟件測(cè)試實(shí)現(xiàn)方式可以自動(dòng)進(jìn)行,應(yīng)用靈活且易于實(shí)現(xiàn)。
[0189]需要說(shuō)明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
[0190]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
[0191]最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種軟件測(cè)試方法,其特征在于,應(yīng)用于控制端,預(yù)先與至少一個(gè)服務(wù)器相連;預(yù)先確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序,還包括: 根據(jù)所述CHJ負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目; 生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令; 將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述死循環(huán)語(yǔ)句包括:while(l);語(yǔ)句、for(;;;);語(yǔ)句、do() {}while( I);語(yǔ)句中的任意一種。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于, 所述CHJ負(fù)載程度處理規(guī)則,包括:每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件: O 彡(X-Xi)彡 K,其中,X = N^N1, 犯為所述服務(wù)器線程數(shù),犯為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CPU負(fù)載程度,K為設(shè)定閾值。4.根據(jù)權(quán)利要求3所述的方法,其特征在于, 所述K包括:10%; 所述每一個(gè)目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目,包括: 當(dāng) Xi 彡 12% 時(shí),Ni = 8、N2=1; 當(dāng) 12%<Xi 彡 16% 時(shí),Ni=12、N2 = 2; 當(dāng)16%<父1彡25%時(shí)小1 = 4、吣=1,沁=8、吣=2或沁=12、吣=3; 當(dāng) 25%<Xi 彡 33% 時(shí),Ni=12、N2 = 4; 當(dāng) 33%<Xi 彡 37% 時(shí),Ni = 8、N2 = 3; 當(dāng) 37%<Xi 彡 41% 時(shí),Ni=12、N2 = 5; 當(dāng)41%<父土彡50%時(shí),沁=4、吣=2,沁=8、吣=4或沁=12、吣=6; 當(dāng) 50%<Xi 彡 58% 時(shí),Ni=12、N2 = 7; 當(dāng) 58%<Xi 彡 62% 時(shí),Ni = 8、N2 = 5; 當(dāng) 62%<Xi 彡 66% 時(shí),Ni=12、N2 = 8; 當(dāng)66%<父土彡75%時(shí),沁=4、吣=3,沁=8、吣=6或沁=12、吣=9; 當(dāng) 75%<Xi 彡 83% 時(shí),Ni=12、N2=10; 當(dāng) 83%<Xi 彡 87% 時(shí),Ni = 8、N2 = 7; 當(dāng) 87%<Xi 彡 91%時(shí),Ni=12、N2=11。5.—種軟件測(cè)試方法,其特征在于,應(yīng)用于服務(wù)器,預(yù)先與控制端相連,預(yù)先確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序,還包括: 接收所述控制端發(fā)來(lái)的控制指令; 通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境; 利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。6.根據(jù)權(quán)利要求5所述的方法,其特征在于, 所述服務(wù)器的操作系統(tǒng)包括:Linux操作系統(tǒng); 在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,進(jìn)一步包括:利用gcc test.c-ο test編譯所述測(cè)試程序;輸入./test,以及繼續(xù)執(zhí)行當(dāng)前流程; 所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Linux操作系統(tǒng)下,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序; 或, 所述服務(wù)器的操作系統(tǒng)包括= Windows操作系統(tǒng); 在所述啟動(dòng)第一數(shù)目的所述測(cè)試程序之前,進(jìn)一步包括:利用visual stud1編譯所述測(cè)試程序,生成test.exe文件,以及繼續(xù)執(zhí)行當(dāng)前流程; 所述啟動(dòng)第一數(shù)目的所述測(cè)試程序,包括:在所述Windows操作系統(tǒng)下,通過(guò)運(yùn)行所述test.exe文件,啟動(dòng)第一數(shù)目的編譯后的所述測(cè)試程序。7.一種控制端,其特征在于,預(yù)先與至少一個(gè)服務(wù)器相連,包括: 第一確定單元,用于確定目標(biāo)軟件對(duì)應(yīng)的目標(biāo)CPU負(fù)載程度,確定CPU負(fù)載程度處理規(guī)則,以及確定包括死循環(huán)語(yǔ)句的測(cè)試程序; 處理單元,用于根據(jù)所述CPU負(fù)載程度處理規(guī)則,確定出所述目標(biāo)CPU負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目; 生成單元,用于生成通過(guò)啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述死循環(huán)語(yǔ)句以測(cè)試所述目標(biāo)軟件的控制指令; 發(fā)送單元,用于將所述控制指令發(fā)送給所述服務(wù)器線程數(shù)對(duì)應(yīng)的目標(biāo)服務(wù)器。8.根據(jù)權(quán)利要求7所述的控制端,其特征在于, 所述第一確定單元,具體用于獲取包括while(l);語(yǔ)句、for(;;;);語(yǔ)句、do() {}while(I);語(yǔ)句中的任意一種死循環(huán)語(yǔ)句的測(cè)試程序; 和/或, 所述第一確定單元,具體用于確定包括每一個(gè)目標(biāo)CHJ負(fù)載程度對(duì)應(yīng)的服務(wù)器線程數(shù)和測(cè)試程序的第一數(shù)目的CPU負(fù)載程度處理規(guī)則,且所述服務(wù)器線程數(shù)和所述測(cè)試程序的第一數(shù)目符合下述條件: O彡(X-Xi)彡 K,其中,X = N^N1, 犯為所述服務(wù)器線程數(shù),犯為所述測(cè)試程序的第一數(shù)目,X為理論CPU負(fù)載程度,X1為所述目標(biāo)CPU負(fù)載程度,K為設(shè)定閾值。9.一種服務(wù)器,其特征在于,預(yù)先與控制端相連,包括: 第二確定單元,用于確定目標(biāo)軟件和包括死循環(huán)語(yǔ)句的測(cè)試程序; 接收單元,用于接收所述控制端發(fā)來(lái)的控制指令; 測(cè)試單元,用于通過(guò)執(zhí)行所述控制指令,以啟動(dòng)第一數(shù)目的所述測(cè)試程序并運(yùn)行所述測(cè)試程序中的死循環(huán)語(yǔ)句,建立測(cè)試環(huán)境;以及利用所述測(cè)試環(huán)境測(cè)試所述目標(biāo)軟件。10.—種軟件測(cè)試系統(tǒng),其特征在于,包括:如權(quán)利要求7或8所述的控制端,以及至少一個(gè)如權(quán)利要求9所述的服務(wù)器; 所述控制端分別與每一個(gè)所述服務(wù)器相連;所述至少一個(gè)服務(wù)器對(duì)應(yīng)于至少一種服務(wù)器線程數(shù)。
【文檔編號(hào)】G06F11/36GK106055477SQ201610375695
【公開日】2016年10月26日
【申請(qǐng)日】2016年5月31日
【發(fā)明人】趙慧
【申請(qǐng)人】浪潮電子信息產(chǎn)業(yè)股份有限公司