性能測試負載模型(二)

     針對我們前一篇說到的概念,我們在這裏展開來在逐個解釋。

場景

所謂場景,就是指系統運行的剖面。對應我們前面建立的三維模型,我們常說的場景就是指在時間軸上的剖面,由L軸和O軸確定,即場景有負載量和負載對象兩個屬性。

 負載量

負載量,主要用來描述當前系統壓力的量化標識,包含用戶量、業務量、吞吐量、PV等;

我們進行負載量的分析統計時,就是爲了獲取我們場景中某個負載對象的負載量,如針對整個系統,我們要統計在某個時間點上整個系統當前的用戶量是多少,業務量是多少,系統的吞吐量是多少等等。根據於此,我們可以得出,我們的測試模型中該有多少人蔘與負載,這樣人預期對系統的壓力應該有多大等信息。

 負載對象

負載對象,包含功能模塊、頁面、頁面組件、接口等,主要是用來描述系統的壓力分佈;負載對象在我們建模的過程中是以樹形結構來進行分析的。如下圖所示:

wKiom1cZffWhvq_IAABnCWXHe50335.jpg

對負載對象的分析就是主要分析在某個負載量下,各個不同的負載對象上的負載壓力是多少,根據於此,來確定最終我們測試的用戶該如何分配。

運行

所謂運行,即系統運行的剖面在時間軸上的狀態變化。這裏面涉及到兩個關鍵詞,一個是時間軸,另外一個是剖面的狀態變化。

首先,作爲時間軸,我們在選取的時候自然可以選擇某一個時間點,也可以選擇某一個時間段。但由於絕對的時間點難以窮舉,而且粒度過細的話也失去了統計意義上的代表性。因此,通常來說,我們都是選擇某一個時間段作爲剖面變化的標度。

而對於剖面的狀態變化,正如我們前面所說:一個系統運行的剖面包含兩個屬性,負載量和負載對象,根據我們觀察的屬性不同,對於系統的運行情況就有了兩個不同的觀察角度,即負載量在時間上的狀態變化和負載對象在時間軸上的狀態變化。

負載量在時間軸上的狀態變化,我們稱爲負載變化趨勢;而負載對象在時間軸上的狀態變化,我們稱之爲用戶行爲趨勢。

負載變化趨勢

前面已經給出了負載變化趨勢的定義,即負載量在時間軸上的狀態變化。對於時間軸的解釋也給出了通常使用的標準,即某一個時間段。

對於時間段的選擇,我們首先定義一個標準,就是以分鐘作爲最原子的分析標度,即每分鐘的負載量作爲一個取樣點。該取樣點我們定位爲系統的瞬時負載,也就是我們通常所說的絕對併發。我們稱之爲OT1。該時段選擇取樣的結果主要用於判斷在執行測試時的真實併發用戶是否與實際生產系統的壓力相符。對於一個相對併發的測試執行過程,就是總用戶*併發率= OT1;對於一個絕對併發的測試執行過程,就是併發用戶= OT1

在進行狀態變化的分析中,以小時作爲一個變化分析的最原子的分析標度,即至少是一個小時內的60個取樣點描述出來的負載變化曲線才作爲一個有意義的負載變化分析樣本。而一個小時的總負載量我們定義爲系統的在線負載,也就是我們通常所說的相對併發。我們稱之爲OT0。該時段選擇取樣的結果主要用於決定測試執行過程中的用戶量。

用戶行爲趨勢

用戶行爲趨勢就是指負載對象在時間軸上的狀態變化,即某一個時間段內的負載量分解到不同的負載對象分別是多少,以及每個負載對象的負載量變化曲線。

從該概念中我們可以看出,用戶行爲趨勢的取樣至少包含以下兩個角度:

一個角度是負載變化,即某一個負載對象產生負載持續的時間,如一個用戶使用系統中的某個對象的訪問週期(會話生存時間)和不同對象間的負載銜接順序(用戶操作流程)、再譬如登錄功能隨時間變化其負載量的變化曲線;該角度的取樣決定執行測試時每一個測試用例實例化的腳本該包含哪些操作、執行時間(該設置多大的思考時間)、操作週期(迭代間隔)。

另外一個角度的取樣是負載分佈,即在某一個時間點上的負載量,分別有哪些負載對象,每個負載對象的負載爲多大,更通俗的說法就是功能分佈。該角度的取樣決定執行測試時要關注哪些功能的測試用例、以及各個測試用例實例化的腳本該分配多少比例的用戶。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章