圖 4。 在代理服務器組建中增加一個高斯隨機定時器
定時器將會使相應的的取樣器被延遲。 延時的規則是,在上一個訪問請求被響應并延時了指定的時間后,下一個被定時器影響的取樣訪問請求才會被發送出去。 因此, 你必須手工刪除第一個取樣器中自動生成的定時器,因為第一個取樣器不需要定時器。
在啟動HTTP代理服務器以前,要在測試計劃中增加一個線程組(thread group),在線程組中增加一個錄制控制器(recording controller)用于存儲生成的結果。 否則, 生成的元件將會被直接添加到工作臺里。另外, 在錄制控制器里增加一個HTTP請求默認值元件HTTP Request Defaults 元件 (是一個配置元件) 也很重要,這樣Jmeter不填寫使用了默認值的字段。
錄制完成后, 停止HTTP 代理服務器; 在錄制控制器元件上單擊右鍵將記錄的元件保存為一個文件用于以后重用,另外,不要忘了恢復瀏覽器的代理服務器設置。
指定響應時間需求并校驗結果
盡管本節內容與Jmeter不是直接相關,但是Jmeter仍舊是指定響應時間需求和校驗測試結果這兩個負載測試評價任務互相聯系的紐帶。
在web應用的環境里,響應時間指的是從提交訪問請求到等到HTML結果所耗費的時間。從技術的角度看,響應時間也應包括瀏覽器重繪HTML頁面的時間,但是瀏覽器一般是一塊接著一塊地顯示而不是直接顯示完整的整個頁面,讓人感覺響應時間要少一些。 另外,典型的情況是,負載測試工具不會考慮瀏覽器的重繪時間。 因此, 在實際的性能測試中,我們將考慮以上描述的情形, 如果不能確信,可以在正常的響應時間上加一個固定值,如0.5秒。
以下是一套眾所周知的確定相應時間的標準:
·用戶將不會注意到少于0.1秒的延遲
·少于1秒的延遲不會中斷用戶的正常思維, 但是一些延遲會被用戶注意到
·延遲時間少于10秒,用戶會繼續等待響應
·延遲時間超過10秒后,用戶將會放棄并開始其他操作
這些閥值很有名并且一般不會改變,因為是關乎人類的感知特性的。 所以要根據這些規則來設置響應時間需求, 也需要適當調整以適應實際應用。例如,亞馬遜公司(Amazon.com) 的主頁也遵循了以上規則,但是由于更偏重于風格上的一致,所以在響應時間上有一點損失。
乍一看,好像有兩種不同的方式來確定相應時間需求:
·平均響應時間(Average response time )
·響應時間(Absolute response time);即, 所有的響應時間必須低于某一閥值
指定平均響應時間比較簡單一些(straightforward),但是由于數據變化的干擾,這個需求往往難以實現。為什么取樣中的20%的響應時間要比平均值高3倍以上呢?請注意,JMeter 計算平均響應時間與圖形結果監視器中的標準偏差是一致的。
另一方面, 對響應時間需求過于苛求是不實際的。 如果只有0。5%的取樣不能通過測試該怎么辦?如果再測一次,又會有很大的變化。 幸運的是, 使用置信區間(confidence interva)分析這種正規的統計方法可以顧及到取樣變化的影響。
在繼續進行前,讓我們首先回顧一些基本的統計學知識。
中心極限定理(The central limit theorem)
中心極限定理表明如果總體的分布有一個平均值μ和標準偏差σ,那么對于一個十分大的n(>30),其取樣平均值的分布將接近于正態分布,其平均值μmean = μ ,標準偏差σmean = σ/√n。
注意取樣平均值的分布是正態的,而取樣自身的分布不必是正態的。也是說如果多次運行測試腳本則測試結果的平均響應時間將會是正態的。
圖 5 和圖 6 分別展示了兩個正態分布。 在這里橫坐標是采樣響應時間的均值, 總體的均值被調整到坐標的原點(shifted so the population mean is at the origin)。 圖5 表明90%的時間里,采樣均值位于±Zσ的區間里(percent of the time, the sampling means are within the interval ±Zσ,),這里的Z=1.645 和 σ 是標準偏差。 圖 6 表明了99%的情況下的情形這時的Z=2.576。 在給定的概率下,如90%, 我們可以看到相應的Z呈現正態曲線,反之亦然。
Figure 5。 Z value for 90 percent
Figure 6。 Z value for 99 percent
在相關資料中所列的是可提供正態曲線計算的一些網站。在這些網站,我們可以計算隨意的相對區間內的概率(如,-1.5 < X < 1.5)或者在一個聚集的區域(cumulated area)內 ,(如, X < 1.5)。 也可以從下面的表中得到近似值。