一種Web應(yīng)用程序壓力測試的方法
【專利摘要】本發(fā)明涉及Web系統(tǒng)性能測試【技術(shù)領(lǐng)域】,特別涉及一種Web應(yīng)用程序壓力測試的方法。本發(fā)明的方法具體包含以下幾個步驟:步驟1:需求分析;步驟2:確定測試目標;步驟3:制定壓力測試計劃;步驟4:分析系統(tǒng);步驟5:編寫測試案例;步驟6:設(shè)置測試數(shù)據(jù);步驟7:進行壓力測試;步驟8:分析結(jié)果;步驟9:優(yōu)化調(diào)整設(shè)置;步驟10:提交測試報告。本發(fā)明通過上述步驟Web應(yīng)用程序壓力測試的方法,提高了Web應(yīng)用程序的性能和穩(wěn)定性,可以用于Web應(yīng)用程序的壓力測試。
【專利說明】—種VI6匕應(yīng)用程序壓力測試的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及系統(tǒng)性能測試【技術(shù)領(lǐng)域】,特別涉及應(yīng)用程序壓力測試的方法。
【背景技術(shù)】
[0002]應(yīng)用程序是決定網(wǎng)站性能的關(guān)鍵,對其進行測試是網(wǎng)站測試的核心。壓力測試的目的是測試系統(tǒng)在各種負荷(由并發(fā)用戶所產(chǎn)生的綜合處理量)下的性能和穩(wěn)定性。
[0003]為了保證應(yīng)用程序的壓力測試能取得理想的測試效果,壓力測試也應(yīng)該遵循軟件工程中軟件測試的一般要求。壓力測試應(yīng)得到相應(yīng)的重視。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的技術(shù)問題在于提供一種應(yīng)用程序壓力測試的方法;解決應(yīng)用程序的性能和穩(wěn)定性的問題。
[0005]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0006]包含以下幾個步驟:
[0007]步驟1:需求分析;
[0008]步驟2:確定測試目標;
[0009]步驟3:制定壓力測試計劃;
[0010]步驟4:分析系統(tǒng);
[0011]步驟5:編寫測試案例;
[0012]步驟6:設(shè)置測試數(shù)據(jù);
[0013]步驟7:進行壓力測試;
[0014]步驟8:分析結(jié)果;
[0015]步驟9:優(yōu)化調(diào)整設(shè)置;
[0016]步驟10:提交測試報告。
[0017]所述的步驟2中,定義測試的對象,并對每一個測試對象給出清晰說明,并定義測試結(jié)束的目標;定義準則和策略,以判斷何時結(jié)束測試階段。
[0018]所述的步驟3中,測試計劃的內(nèi)容主要包括:定義測試資源、制定測試進度表、選擇測試工具等。
[0019]所述的步驟4中,分析系統(tǒng)包括:第一,確定系統(tǒng)對各個資源的分布與使用情況,它將幫我們確定可能系統(tǒng)性能的瓶頸;第二,確定用戶事務(wù)的分布,確定壓力測試的針對點。
[0020]所述的步驟5中,測試案例應(yīng)該盡可能模擬真實的負荷,不遺漏重要的測試路徑;在測試案例中,應(yīng)注明測試場景、測試項目、測試時要求記錄的性能指標等;所述性能指標主要分成客戶端性能指標和服務(wù)器端性能指標兩大類。
[0021]所述的步驟8中,分析對象有:(1)測試使用的時間和被測事務(wù)的響應(yīng)時間(有多少個用戶同時運行):(2)壓力測試參與的進程個數(shù),成功個數(shù),失敗個數(shù);(3)壓力測試參與進程失敗的原因;(4)事務(wù)的響應(yīng)時間隨用戶增加的變化圖;(5)資源限制。
[0022]本發(fā)明的有益效果:本發(fā)明提供的應(yīng)用程序壓力測試的方法;有效解決了胃必應(yīng)用程序的性能和穩(wěn)定性的問題。
【專利附圖】
【附圖說明】
[0023]下面結(jié)合附圖對本發(fā)明進一步說明:
[0024]圖1為本發(fā)明的方法流程圖。
【具體實施方式】
[0025]見圖1所示,本發(fā)明應(yīng)用程序壓力測試的方法,具體包含以下幾個步驟:
[0026]步驟1:先是進行需求分析;對不同的系統(tǒng)其壓力測試的強度和側(cè)重點也不同。一個用于中小企業(yè)內(nèi)部網(wǎng)和一個要處理大量用戶的電子商務(wù)站點的負荷量和負荷分布是明顯不同的。前者的最大負荷量和負荷分布是可預期的,而且對企事業(yè)單位內(nèi)部網(wǎng)來說,暫時關(guān)閉系統(tǒng)后重新起動也是可以接受的。例如一個高校的選課系統(tǒng)只在進行選課的幾天內(nèi)要求系統(tǒng)能承受大負荷,其它時間其負荷幾乎為零;而對于后者卻無法預期有多少客戶會同時訪問站點,對高峰負荷出現(xiàn)的時間也無法預知。因此在壓力測試前必須進行需求分析,它是編寫良好測試案例的基礎(chǔ)。
[0027]步驟2:確定測試目標;在確定壓力測試目標中,我們要定義測試的對象,并對每一個測試對象給出清晰說明,也要定義測試結(jié)束的目標。為控制測試的有效性以及完成程度,必須定義準則和策略,以判斷何時結(jié)束測試階段。準則必須是客觀的,可量化的,而不能是經(jīng)驗或感覺。下面是一些壓力測試目標:(1)測定終端用戶事務(wù)的響應(yīng)時間,它可能隨用戶的增加而增加,但要定義一個可接受時間。(2)定義主機最優(yōu)配置,我們可以以最低的價格發(fā)揮最佳的性能。在壓力測試目標確定過程中,要邀請用戶、設(shè)計人員等對其進行評審。
[0028]步驟3:制定壓力測試計劃;測試計劃的內(nèi)容主要包括:定義測試資源、制定測試進度表、選擇測試工具等。制定測試計劃的主要目的是使壓力測試有章可循并得到人力、物力方面的保證。需要指出的是在制定測試進度表時應(yīng)和開發(fā)進度相互協(xié)調(diào)。當開發(fā)一個應(yīng)用程序時,根據(jù)功能的不同將系統(tǒng)分成一些單獨的子系統(tǒng)。一個較好的方法是隨著子系統(tǒng)的完成先進行子系統(tǒng)的壓力測試,當然,最后還必須進行整個系統(tǒng)的綜合壓力測試。
[0029]步驟4:分析系統(tǒng);分析系統(tǒng)有兩個主要任務(wù):第一,搞清系統(tǒng)對各個資源的分布與使用情況,它將幫我們確定可能系統(tǒng)性能的瓶頸;第二,搞清用戶事務(wù)的分布,確定壓力測試的針對點。我們定義事務(wù)是用來表示用戶要求服務(wù)器連續(xù)完成的操作任務(wù)。因為大多數(shù)系統(tǒng)都是網(wǎng)絡(luò)系統(tǒng),而且網(wǎng)絡(luò)常常也是降低響應(yīng)時間的主要原因,所以我們通過資源示意圖來分析系統(tǒng)的資源。為了更詳細地說明資源的性能,我們要求對資源示意圖中的每個資源的屬性進行列表說明。例如,對于路由器,說明它運行的系統(tǒng),它的網(wǎng)絡(luò)處理能力、響應(yīng)時間等;對于通信媒介,說明它的性能、容量等;對于主機,說明它的性能、內(nèi)存大小、1/0外設(shè)性能、運行的操作系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用軟件系統(tǒng),還有運行應(yīng)用軟件系統(tǒng)的系統(tǒng)配置文件等。
[0030]步驟5:編寫測試案例;測試人員將根據(jù)測試案例進行實際的測試工作,測試案例的編寫應(yīng)做到客觀全面、重點突出,也就是要求編寫的測試案例應(yīng)該盡可能模擬真實的負荷,不遺漏重要的測試路徑。在測試案例中,應(yīng)注明測試場景、測試項目、測試時要求記錄的性能指標等。對166應(yīng)用程序來說,這些性能指標是大同小異的,性能指標主要分成客戶端性能指標和服務(wù)器端性能指標兩大類。
[0031]步驟6:設(shè)置測試數(shù)據(jù);壓力測試腳本采取數(shù)據(jù)驅(qū)動方式。為了讓所有的進程順利執(zhí)行,必須對測試數(shù)據(jù)進行參數(shù)化。同時運行的一組測試數(shù)據(jù)有時需要彼此是唯一的,有時需要順序的,有時需要隨機的,有時需要數(shù)據(jù)在一個區(qū)間內(nèi),有時需要從數(shù)據(jù)庫的某個表提取數(shù)據(jù)。參數(shù)化后的數(shù)據(jù)與原數(shù)據(jù)類型應(yīng)保持一致。設(shè)置測試數(shù)據(jù)的靈活性很大,對測試的結(jié)果影響也很大,應(yīng)根據(jù)情況,具體問題具體分析。
[0032]步驟7:進行壓力測試;一般不提倡在開發(fā)環(huán)境中進行壓力測試,如果由于經(jīng)費原因不能另外構(gòu)建測試環(huán)境,則將來的運行服務(wù)器的配置應(yīng)該和開發(fā)用服務(wù)器的配置相同或更好。如果要模擬成百上千的并發(fā)用戶,就應(yīng)該采用多臺客戶機同時進行測試,因為一臺機器上運行的線程太多將導致性能下降,從而使客戶機不能及時處理從服務(wù)器返回的響應(yīng),造成測試誤差。執(zhí)行壓力測試時,即使是同一條瀏覽路徑也應(yīng)進行多次測試,多次測試之間的間隔時間是隨機的,這樣才能獲得比較客觀的測試結(jié)果。
[0033]步驟8:分析結(jié)果;壓力測試運行結(jié)束后,把所有記錄的數(shù)據(jù)匯總并記錄到文件中。必須對測試的結(jié)果進行分析,才能得到結(jié)論。可以使用一些圖形來比較、觀察測試結(jié)果。分析對象也是測試運行時記錄的內(nèi)容,下面是壓力測試的分析對象:(1)測試使用的時間和被測事務(wù)的響應(yīng)時間(有多少個用戶同時運行):(2)壓力測試參與的進程個數(shù),成功個數(shù),失敗個數(shù);(3)壓力測試參與進程失敗的原因;(4)事務(wù)的響應(yīng)時間隨用戶增加的變化圖;(5)資源限制。
[0034]步驟9:優(yōu)化調(diào)整設(shè)置;若測試失敗,必須分析失敗原因,如果是系統(tǒng)造成的,應(yīng)返回給設(shè)計人員修改。測試結(jié)果不滿足預期需求,需要對系統(tǒng)進行優(yōu)化調(diào)整設(shè)置,然后再次運行測試、分析,直到可以滿足預期需求,或調(diào)整已無法改善結(jié)果。對系統(tǒng)的優(yōu)化調(diào)整設(shè)置應(yīng)與開發(fā)和系統(tǒng)管理人員協(xié)作進行。性能問題往往是互相聯(lián)系的,而不是互不相干的。系統(tǒng)性能較低,可能是由于優(yōu)化與設(shè)置的問題。通過優(yōu)化與設(shè)置有時可以提高系統(tǒng)的性能。
[0035]步驟10:提交測試報告;當壓力測試結(jié)果可以滿足預期需求,或優(yōu)化和調(diào)整已無法改善結(jié)果。最后提交測試報告。在報告中要包括測試提要、測試環(huán)境和測試結(jié)果,提要應(yīng)該簡單說明測試方法、策略、范圍、內(nèi)容;測試環(huán)境應(yīng)包括資源開銷、環(huán)境配置等;結(jié)果測試必須包括測試是否通過或拒絕,對測試的結(jié)論進行說明,對系統(tǒng)的性能做出評價。測試結(jié)果要包括結(jié)果數(shù)據(jù)。
【權(quán)利要求】
1.一種應(yīng)用程序壓力測試的方法,其特征在于: 包含以下幾個步驟: 步驟1:需求分析; 步驟2:確定測試目標; 步驟3:制定壓力測試計劃; 步驟4:分析系統(tǒng); 步驟5:編寫測試案例; 步驟6:設(shè)置測試數(shù)據(jù); 步驟7:進行壓力測試; 步驟8:分析結(jié)果; 步驟9:優(yōu)化調(diào)整設(shè)置; 步驟10:提交測試報告。
2.根據(jù)權(quán)利要求1所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟2中,定義測試的對象,并對每一個測試對象給出清晰說明,并定義測試結(jié)束的目標;定義準則和策略,以判斷何時結(jié)束測試階段。
3.根據(jù)權(quán)利要求1所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟3中,測試計劃的內(nèi)容主要包括:定義測試資源、制定測試進度表、選擇測試工具等。
4.根據(jù)權(quán)利要求2所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟3中,測試計劃的內(nèi)容主要包括:定義測試資源、制定測試進度表、選擇測試工具等。
5.根據(jù)權(quán)利要求1至4任一項所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟4中,分析系統(tǒng)包括:第一,確定系統(tǒng)對各個資源的分布與使用情況,它將幫我們確定可能系統(tǒng)性能的瓶頸;第二,確定用戶事務(wù)的分布,確定壓力測試的針對點。
6.根據(jù)權(quán)利要求1至4任一項所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟5中,測試案例應(yīng)該盡可能模擬真實的負荷,不遺漏重要的測試路徑;在測試案例中,應(yīng)注明測試場景、測試項目、測試時要求記錄的性能指標等;所述性能指標主要分成客戶端性能指標和服務(wù)器端性能指標兩大類。
7.根據(jù)權(quán)利要求5所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟5中,測試案例應(yīng)該盡可能模擬真實的負荷,不遺漏重要的測試路徑;在測試案例中,應(yīng)注明測試場景、測試項目、測試時要求記錄的性能指標等;所述性能指標主要分成客戶端性能指標和服務(wù)器端性能指標兩大類。
8.根據(jù)權(quán)利要求1至4任一項所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟8中,分析對象有:(1)測試使用的時間和被測事務(wù)的響應(yīng)時間(有多少個用戶同時運行):(2)壓力測試參與的進程個數(shù),成功個數(shù),失敗個數(shù);(3)壓力測試參與進程失敗的原因;(4)事務(wù)的響應(yīng)時間隨用戶增加的變化圖;(5)資源限制。
9.根據(jù)權(quán)利要求5所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟8中,分析對象有:(1)測試使用的時間和被測事務(wù)的響應(yīng)時間(有多少個用戶同時運行);(2)壓力測試參與的進程個數(shù),成功個數(shù),失敗個數(shù);(3)壓力測試參與進程失敗的原因;(4)事務(wù)的響應(yīng)時間隨用戶增加的變化圖;(5)資源限制。
10.根據(jù)權(quán)利要求6所述的應(yīng)用程序壓力測試的方法,其特征在于:所述的步驟8中,分析對象有:(1)測試使用的時間和被測事務(wù)的響應(yīng)時間(有多少個用戶同時運行);(2)壓力測試參與的進程個數(shù),成功個數(shù),失敗個數(shù);(3)壓力測試參與進程失敗的原因;(4)事務(wù)的響應(yīng)時間隨用戶增加的變化圖;(5)資源限制。
【文檔編號】G06F11/36GK104391789SQ201410652606
【公開日】2015年3月4日 申請日期:2014年11月17日 優(yōu)先權(quán)日:2014年11月17日
【發(fā)明者】何龍泉, 徐震宇, 孫傲冰, 季統(tǒng)凱 申請人:國云科技股份有限公司