壓力測試方法和裝置制造方法
【專利摘要】本發明公開了一種壓力測試方法和裝置。其中,該方法包括:記錄響應時間和響應時間對應的請求數量,其中,響應時間為發送HTTP請求至服務器并接收到服務器回應的時間;獲取服務器的處理器的當前性能參數;基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間;獲取處理器的預設性能參數和處理器的對于HTTP請求的預設響應時間;依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。采用本發明,解決了現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,實現了占用恒定內存即可實現對服務器的壓力測試的效果。
【專利說明】壓力測試方法和裝置
【技術領域】
[0001]本發明涉及互聯網領域,具體而言,涉及一種壓力測試方法和裝置。
【背景技術】
[0002]在對web網站進行壓力測試時,需要收集不同的性能數據來確定服務器的瓶頸,而現有的壓力工具會記錄每一次請求的時間,那么在大量的并發過程中,會因記錄大量的請求時間,為存儲這些數據會消耗大量的內存。
[0003]針對現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,目前尚未提出有效的解決方案。
【發明內容】
[0004]針對相關技術中在進行壓力測試時存儲大量測試數據占用內存的問題,目前尚未提出有效的解決方案,為此,本發明的主要目的在于提供一種壓力測試方法和裝置,以解決上述問題。
[0005]為了實現上述目的,根據本發明的一個方面,提供了一種壓力測試方法,該方法包括:記錄響應時間和響應時間對應的請求數量,其中,響應時間為發送HTTP請求至服務器并接收到服務器回應的時間;獲取服務器的處理器的當前性能參數;基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間;獲取處理器的預設性能參數和處理器的對于HTTP請求的預設響應時間;依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。
[0006]進一步地,獲取服務器的處理器的當前性能參數包括:當壓力測試啟動之后,實時獲取服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
[0007]進一步地,依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果包括:比較當前性能參數和預設性能參數的大小,以及平均響應時間和預設響應時間的大小,得到比較結果;讀取比較結果所指示的測試結果。
[0008]進一步地,依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果包括:計算當前性能參數和預設性能參數的第一比率,并計算平均響應時間和預設響應時間的第二比率;對第一比率和第二比率進行加權計算,得到加權參數;讀取加權參數所指示的測試結果。
[0009]進一步地,基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間包括:計算服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum = Q1+Q2+…Qn,QU Q2、…、Qn表示對應各個不同的響應時間的請求數量;使用總數量計算平均響應時間,t = (T1*Q1+T2*Q2+…Tn*Qn)/Qsum,其中,Tl、T2、…、Tn表示各個不同的響應時間。
[0010]為了實現上述目的,根據本發明的一個方面,提供了一種壓力測試裝置,該裝置包括:記錄模塊,用于記錄響應時間和響應時間對應的請求數量,其中,響應時間為發送HTTP請求至服務器并接收到服務器回應的時間;第一獲取模塊,用于獲取服務器的處理器的當前性能參數;計算模塊,用于基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間;第二獲取模塊,用于獲取處理器的預設性能參數和處理器的對于HTTP請求的預設響應時間;確定模塊,用于依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。
[0011]進一步地,第一獲取模塊包括:獲取子模塊,用于當壓力測試啟動之后,實時獲取服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
[0012]進一步地,確定模塊包括:比較模塊,用于比較當前性能參數和預設性能參數的大小,以及平均響應時間和預設響應時間的大小,得到比較結果;第一讀取模塊,用于讀取比較結果所指示的測試結果。
[0013]進一步地,確定模塊包括:第一計算子模塊,用于計算當前性能參數和預設性能參數的第一比率,并計算平均響應時間和預設響應時間的第二比率;第二計算子模塊,用于對第一比率和第二比率進行加權計算,得到加權參數;第二讀取模塊,用于讀取加權參數所指示的測試結果。
[0014]進一步地,計算模塊包括:第三計算子模塊,用于計算服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum = Q1+Q2+…Qn,Ql、Q2、…、Qn表示對應各個不同的響應時間的請求數量;第四計算子模塊,用于使用總數量計算平均響應時間,t =(T1*Q1+T2*Q2+...Tn*Qn) /Qsum,其中,Tl、T2、...、Tn 表示各個不同的響應時間。
[0015]采用本發明上述實施例,在web網站上進行壓力測試時,匯總每個htttp請求的響應時間,得到響應時間和請求數量的對應關系,然后基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間,并依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。在上述實施例中,按照一定的時間粒度給這些http請求的時間進行歸類,響應時間和請求數量的數據占用恒定的內存空間,不許大量的內存,解決了現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,實現了占用恒定內存即可實現對服務器的壓力測試的效果。
【專利附圖】
【附圖說明】
[0016]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
[0017]圖1是根據本發明實施例的壓力測試方法的流程圖;
[0018]圖2是根據本發明實施例的壓力測試裝置的示意圖。
【具體實施方式】
[0019]為了使本【技術領域】的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0020]需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0021]圖1是根據本發明實施例的壓力測試方法的流程圖,如圖1所示該方法包括如下步驟:
[0022]步驟S102,記錄響應時間和響應時間對應的請求數量,其中,響應時間為發送HTTP請求至服務器并接收到服務器回應的時間。
[0023]步驟S104,獲取服務器的處理器的當前性能參數。
[0024]步驟S106,基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間。
[0025]步驟S108,獲取處理器的預設性能參數和處理器的對于HTTP請求的預設響應時間。
[0026]步驟S110,依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。
[0027]采用本發明上述實施例,在web網站上進行壓力測試時,匯總每個htttp請求的響應時間,得到響應時間和請求數量的對應關系,然后基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間,并依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。在上述實施例中,按照一定的時間粒度給這些http請求的時間進行歸類,響應時間和請求數量的數據占用恒定的內存空間,不許大量的內存,解決了現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,實現了占用恒定內存即可實現對服務器的壓力測試的效果。
[0028]在本發明的上述實施例,可以通過壓力計數器記錄響應時間和請求數量,具體地,壓力計數器可以自動記錄程序發送一個http請求到收到http回應的時間,該時間稱為響應時間。每一個響應時間會對應一個請求數量,當有兩次請求時間相同的時候,請求數量為2,之后每當新增一次請求,響應時間和之前的一次請求時間相同,那么對應的請求數量便會加1,響應時間精確到0.0lms0表I示出了響應時間和請求數量的對應關系。
[0029]表1:
[0030]
響應時間(ms) 請求數量(次)
ΤΓ2?10
272120
3.2270
[0031]在上述實施例中,響應時間的粒度為:0.0lms (毫秒)。
[0032]具體地,在獲取到響應時間和響應時間對應的請求數量之后,基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間可以包括:計算服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum = Q1+Q2+…Qn, Q1、Q2、…、Qn表示對應各個不同的響應時間的請求數量;使用總數量計算平均響應時間,t =(T1*Q1+T2*Q2+...Tn*Qn) /Qsum,其中,Tl、T2、...、Tn 表示各個不同的響應時間。
[0033]例如,Τ(1…η)表示獲取到不同的響應時間,Q(1…η)表示對應的請求數量。總請求數量 Qsum = Q1+Q2+…Qn ;平均響應時間=(T1*Q1+T2*Q2+...Tn*Qn)/Qsum。
[0034]根據本發明的上述實施例,獲取服務器的處理器的當前性能參數可以包括:當壓力測試啟動之后,實時獲取服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
[0035]具體地,可以通過擴展監控模塊獲取處理器的性能參數。擴展監控模塊監控接收壓力的服務器,當壓力測試程序啟動后,擴展監控模塊會自動啟動并開始監控接收壓力的服務器,該模塊內置了最常用的性能指標比如:cpU使用率、內存使用量、網絡帶寬吞吐量、服務器并發連接數、網站請求次數等。
[0036]在本發明一個可選的實施例中,依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果可以包括:比較當前性能參數和預設性能參數的大小,以及平均響應時間和預設響應時間的大小,得到比較結果;讀取比較結果所指示的測試結果。
[0037]具體地,通過監控數據報表模塊匯總從壓力模塊的計數器、擴展模塊中輸出的數據,并對這些數據進行計算,給出建議報表。
[0038]例如,獲取到的預設性能參數可以為:預設CPU使用率70% ;預設內存占用率50% ;預設網絡帶寬使用率80% ;預設響應時間Is等;獲取到的當前CPU使用率80% ;當前內存占用率40% ;當前網絡帶寬使用率60% ;平均響應時間0.9s。
[0039]上述的預設性能參數可以自定義更改。
[0040]比較當前性能參數和預設性能參數的大小,以及平均響應時間和預設響應時間的大小,得到:當前CPU使用率超過70% ;當前內存占用率低于50% ;當前網絡帶寬使用率低于80% ;平均響應時間小于Is的比較結果,從數據表中讀取該比較結果指示的測試結果。
[0041]在得到測試結果之后,可以依據當前性能參數、預設性能參數、平均響應時間、預設響應時間、比較結果以及測試結果生成測試報表,輸出該測試報表。
[0042]在本發明的另一個可選的實施例中,依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果可以包括:計算當前性能參數和預設性能參數的第一比率,并計算平均響應時間和預設響應時間的第二比率;對第一比率和第二比率進行加權計算,得到加權參數;讀取加權參數所指示的測試結果。
[0043]例如,獲取到的預設性能參數可以為:預設內存占用率50% ;預設響應時間Is等;獲取到的當前內存占用率40% ;平均響應時間0.9s。
[0044]計算第一比率為0.8,計算第二比率為0.9,獲取預設權重參數0.3和0.7,得到加權參數為:0.87。然后從數據表中讀取該加權參數對應的測試結果。
[0045]數據表中可以按照加權參數的值的區間保存測試結果,如加權參數的值為[0,1]對應的測試結果可以為:服務器的性能良好。
[0046]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
[0047]為了實現上述目的,根據本發明的一個方面,提供了一種壓力測試裝置,如圖2所示,該裝置可以包括:記錄模塊10、第一獲取模塊30、計算模塊50、第二獲取模塊70以及確定模塊90。
[0048]其中,記錄模塊10用于記錄響應時間和響應時間對應的請求數量,其中,響應時間為發送HTTP請求至服務器并接收到服務器回應的時間;第一獲取模塊30用于獲取服務器的處理器的當前性能參數;計算模塊50用于基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間;第二獲取模塊70用于獲取處理器的預設性能參數和處理器的對于HTTP請求的預設響應時間;確定模塊90用于依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。
[0049]采用本發明上述實施例,在web網站上進行壓力測試時,匯總每個htttp請求的響應時間,得到響應時間和請求數量的對應關系,然后基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間,并依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。在上述實施例中,按照一定的時間粒度給這些http請求的時間進行歸類,響應時間和請求數量的數據占用恒定的內存空間,不許大量的內存,解決了現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,實現了占用恒定內存即可實現對服務器的壓力測試的效果。
[0050]在本發明的上述實施例,可以通過壓力計數器記錄響應時間和請求數量,具體地,壓力計數器可以自動記錄程序發送一個http請求到收到http回應的時間,該時間稱為響應時間。每一個響應時間會對應一個請求數量,當有兩次請求時間相同的時候,請求數量為2,之后每當新增一次請求,響應時間和之前的一次請求時間相同,那么對應的請求數量便會加1,響應時間精確到0.01ms。
[0051]具體地,計算模塊可以包括:第三計算子模塊,用于計算服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum = Q1+Q2+…Qn,Q1、Q2、…、Qn表示對應各個不同的響應時間的請求數量;第四計算子模塊,用于使用總數量計算平均響應時間,t =(T1*Q1+T2*Q2+...Tn*Qn) /Qsum,其中,Tl、T2、...、Tn 表示各個不同的響應時間。
[0052]例如,Τ(1…η)表示獲取到不同的響應時間,Q(1…η)表示對應的請求數量。總請求數量 Qsum = Q1+Q2+…Qn ;平均響應時間=(T1*Q1+T2*Q2+...Tn*Qn)/Qsum。
[0053]根據本發明的上述實施例,第一獲取模塊可以包括:獲取子模塊,用于當壓力測試啟動之后,實時獲取服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
[0054]具體地,可以通過擴展監控模塊獲取處理器的性能參數。擴展監控模塊監控接收壓力的服務器,當壓力測試程序啟動后,擴展監控模塊會自動啟動并開始監控接收壓力的服務器,該模塊內置了最常用的性能指標比如:cpU使用率、內存使用量、網絡帶寬吞吐量、服務器并發連接數、網站請求次數等。
[0055]在本發明的一個實施例中,確定模塊可以包括:比較模塊,用于比較當前性能參數和預設性能參數的大小,以及平均響應時間和預設響應時間的大小,得到比較結果;第一讀取模塊,用于讀取比較結果所指示的測試結果。
[0056]在本發明的另一個實施例中,確定模塊可以包括:第一計算子模塊,用于計算當前性能參數和預設性能參數的第一比率,并計算平均響應時間和預設響應時間的第二比率;第二計算子模塊,用于對第一比率和第二比率進行加權計算,得到加權參數;第二讀取模塊,用于讀取加權參數所指示的測試結果。
[0057]具體地,通過監控數據報表模塊匯總從壓力模塊的計數器、擴展模塊中輸出的數據,并對這些數據進行計算,給出建議報表。
[0058]本實施例中所提供的各個模塊與方法實施例對應步驟所提供的使用方法相同、應用場景也可以相同。當然,需要注意的是,上述模塊涉及的方案可以不限于上述實施例一中的內容和場景,且上述模塊可以運行在計算機終端或移動終端,可以通過軟件或硬件實現。
[0059]從以上的描述中,可以看出,本發明實現了如下技術效果:
[0060]采用本發明上述實施例,在web網站上進行壓力測試時,匯總每個htttp請求的響應時間,得到響應時間和請求數量的對應關系,然后基于響應時間和響應時間對應的請求數量計算服務器的處理器的平均響應時間,并依據當前性能參數、預設性能參數、平均響應時間以及預設響應時間得到測試結果。在上述實施例中,按照一定的時間粒度給這些http請求的時間進行歸類,響應時間和請求數量的數據占用恒定的內存空間,不許大量的內存,解決了現有技術中在進行壓力測試時存儲大量測試數據占用內存的問題,實現了占用恒定內存即可實現對服務器的壓力測試的效果。
[0061]顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。
[0062]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種壓力測試方法,其特征在于,包括: 記錄響應時間和所述響應時間對應的請求數量,其中,所述響應時間為發送HTTP請求至服務器并接收到所述服務器回應的時間; 獲取所述服務器的處理器的當前性能參數; 基于響應時間和所述響應時間對應的請求數量計算所述服務器的處理器的平均響應時間; 獲取所述處理器的預設性能參數和所述處理器的對于所述HTTP請求的預設響應時間; 依據所述當前性能參數、所述預設性能參數、所述平均響應時間以及所述預設響應時間得到測試結果。
2.根據權利要求1所述的壓力測試方法,其特征在于,獲取所述服務器的處理器的當前性能參數包括: 當壓力測試啟動之后,實時獲取所述服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
3.根據權利要求1或2所述的壓力測試方法,其特征在于,依據所述當前性能參數、所述預設性能參數、所述平均響應時間以及所述預設響應時間得到測試結果包括: 比較所述當前性能參數和所述預設性能參數的大小,以及所述平均響應時間和所述預設響應時間的大小,得到比較結果; 讀取所述比較結果所指示的所述測試結果。
4.根據權利要求1或2所述的壓力測試方法,其特征在于,依據所述當前性能參數、所述預設性能參數、所述平均響應時間以及所述預設響應時間得到測試結果包括: 計算所述當前性能參數和所述預設性能參數的第一比率,并計算所述平均響應時間和所述預設響應時間的第二比率; 對所述第一比率和第二比率進行加權計算,得到加權參數; 讀取所述加權參數所指示的所述測試結果。
5.根據權利要求1所述的壓力測試方法,其特征在于,基于響應時間和所述響應時間對應的請求數量計算所述服務器的處理器的平均響應時間包括: 計算所述服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum =Q1+Q2+…Qn,Q1、Q2、…、Qn表示對應各個不同的響應時間的所述請求數量; 使用所述總數量計算所述平均響應時間,t= (Tl*Ql+T2*Q2+*“Tn*Qn)/Qsum,其中,T1、T2、…、Tn表示所述各個不同的響應時間。
6.一種壓力測試裝置,其特征在于,包括: 記錄模塊,用于記錄響應時間和所述響應時間對應的請求數量,其中,所述響應時間為發送HTTP請求至服務器并接收到所述服務器回應的時間; 第一獲取模塊,用于獲取所述服務器的處理器的當前性能參數; 計算模塊,用于基于響應時間和所述響應時間對應的請求數量計算所述服務器的處理器的平均響應時間; 第二獲取模塊,用于獲取所述處理器的預設性能參數和所述處理器的對于所述HTTP請求的預設響應時間; 確定模塊,用于依據所述當前性能參數、所述預設性能參數、所述平均響應時間以及所述預設響應時間得到測試結果。
7.根據權利要求6所述的壓力測試裝置,其特征在于,所述第一獲取模塊包括: 獲取子模塊,用于當壓力測試啟動之后,實時獲取所述服務器的處理器的CPU使用率、內存占用率以及網絡帶寬使用率。
8.根據權利要求6或7所述的壓力測試裝置,其特征在于,所述確定模塊包括: 比較模塊,用于比較所述當前性能參數和所述預設性能參數的大小,以及所述平均響應時間和所述預設響應時間的大小,得到比較結果; 第一讀取模塊,用于讀取所述比較結果所指示的所述測試結果。
9.根據權利要求6或7所述的壓力測試裝置,其特征在于,所述確定模塊包括: 第一計算子模塊,用于計算所述當前性能參數和所述預設性能參數的第一比率,并計算所述平均響應時間和所述預設響應時間的第二比率; 第二計算子模塊,用于對所述第一比率和第二比率進行加權計算,得到加權參數; 第二讀取模塊,用于讀取所述加權參數所指示的所述測試結果。
10.根據權利要求6所述的壓力測試裝置,其特征在于,所述計算模塊包括: 第三計算子模塊,用于計算所述服務器在壓力測試過程中接收到的HTTP請求的總數量Qsum,其中,Qsum = Q1+Q2+…Qn, Q1、Q2、…、Qn表示對應各個不同的響應時間的所述請求數量; 第四計算子模塊,用于使用所述總數量計算所述平均響應時間,t= (T1*Q1+T2*Q2+...Tn*Qn)/Qsum,其中,T1、T2、…、Tn表示所述各個不同的響應時間。
【文檔編號】H04L12/26GK104202220SQ201410484120
【公開日】2014年12月10日 申請日期:2014年9月19日 優先權日:2014年9月19日
【發明者】劉凱, 戴飛 申請人:北京國雙科技有限公司