在LoadRunner的腳步編寫中,有三個重要的概念:事務、集合點、思考時間

科敏發表於2014-02-28

在LoadRunner的腳步編寫中,有三個重要的概念:事務、集合點、思考時間

  事務:

  事務又稱為Transaction,在LoadRunner中的定義如下:An end-to-end(browser-to-browser) measurement of one or more user actions within action file。中文理解如下:事務(Transaction)是這樣一個點,我們為了衡量某個action的效能,需要在action的開始和結束位置插入這樣一個範圍,這就定義了一個transaction。

  事務的作用:LoadRunner執行到該事務的開始點時,LoadRunner就會開始計時,直到執行到該事務的結束點,計時結束。這個事務的執行時間在LoadRunner的執行結果中會有反映。通俗的講LoadRunner中的事務就是一個計時標識,LoadRunner在執行過程中一旦發現事務的開始標識,就開始計時,一旦發現事務的結束表示,則計時結束,這個過程中得到的時間即為一個事務時間。通常事務時間所反映的是一個操作過程的響應時間。

  下面我們說說為什麼在LoadRunner中使用事務。為什麼使用事務的原因是多種多樣的,總結下來如下五點所示:

  1、事務是LoadRunner度量系統效能指標的唯一手段;(沒有事務則沒有辦法衡量系統的響應時間,也許有人說LoadRunner可以通過程式設計來計時得到,不錯如果你程式設計能力夠強是能夠實現的,但肯定不如LoadRunner中的事務用的簡單而且方便)

  2、事務能夠用於度量高風險業務流程的效能指標;

  3、事務能夠度量在一組操作中每一步的效能指標;

  4、通過事務計時實現了不同壓力負載下的效能指標對比;

  5、通過事務計時可以幫助定位效能瓶頸;

  從效能測試的 角度出發,我們需要知道不同的操作所花費的時間,這樣我們就可以衡量不同的操作對被測系統所造成的影響,那麼我們如何知道不同的操作所花費的時間,這就用 到了事務,我們在操作之前插入一個事務開始標識,在操作完成後插入一個事務結束表示,這樣我們就知道了這個操作所花費的時間。

  集合點:

  執行負載測試時,需要模擬系統上有較重的使用者負載。要實現此操作,可以同步 Vuser 以便恰好在同一時刻執行任務。通過建立集合點,可以配置多個 Vuser 同時執行操作。當某個 Vuser 到達該集合點時,將進行等待,直到參與該集合的全部 Vuser 都到達。指定數量的 Vuser 均到達後,釋放所有這些 Vuser。

  可通過將集合點插入到 Vuser 指令碼來指定會合位置。在 Vuser 執行指令碼並遇到集合點時,指令碼將暫停執行,Vuser 將等待 Controller 或控制檯的允許以繼續執行。Vuser 從集合釋放後,將執行指令碼中的下一個任務。

  注意:只能向 Action 部分(而不是 init 或 end 部分)新增集合。

  插入集合點是為了衡量在加重負載的情況下的效能情況。在計劃中,可能會要求系統能夠承受1000 人同時提交資料,在LoadRunner 中可以通過在提交資料操作前面加入集合點,這樣當虛擬使用者執行到提交資料的集合點時,LoadRunner 就會檢查同時有多少使用者執行到集合點,如果不到1000 人,LoadRunner 就會命令已經到集合點的使用者在此等待,當在集合點等待的使用者達到1000 人時,LoadRunner 命令1000 人同時去提交資料,從而達到計劃中的需求

  思考時間:

  loadrunner 思考時間(think-time)的理解

  經常碰到很多網友在問效能測試思考時間的設定,有的設定是預設錄製的值,有的是覺得在壓力測試時要去掉思考時間這樣伺服器壓力才大,各人的理解不一樣其實在測試時是要適當加入思考時間但是時間不能太長一般都是1--5秒內。下面是對思考時間的一些說法。

  在錄製指令碼時 我們一般會選擇記錄思考時間 record think time,Loadrunner做為效能測試工具,錄製時記錄的是客戶端和服務端的互動,如果要精確模擬 使用者的行為,那麼客戶操作客戶端時花費了很多時間要怎麼模擬呢?錄入填寫提交的內容,從列表中下拉搜尋選擇特定的值等,這時LOADRUNNER 不會記錄使用者 的客戶端操作,而是記錄了使用者這段時間,成為思考時間(Think-time),因為使用者的這些客戶端操作不會影響服務端,只是讓伺服器端在這段時間內沒有請求而已。,所以加入思考時間就能模擬出熟練的或者生疏的使用者操作,接近實際對於服務端的壓力。

  Vuser 思考時間模擬實際使用者在不同操作之間等待的時間。例如,當使用者收到來自伺服器的資料時,可能要等待幾秒鐘檢視資料,然後再做出響應。這種延遲就稱為“思考時間”。VuGen 使用 lr_think_time 函式將思考時間值錄製到 Vuser 指令碼中。以下錄製的函式指明使用者等待了 8 秒鐘才執行下一個操作:

  lr_think_time(8);

  當您執行了 Vuser 指令碼並且 Vuser 遇到了上述 lr_think_time 語句時,預設情況下,Vuser 將等待 8 秒鐘後再執行下一個操作。可以使用思考時間執行時設定來影響執行指令碼時 Vuser 使用錄製思考時間的方式。

相關文章