根據http://www.wilsonmar.com/1loadrun.htm 翻譯: php
LoadRunner內部結構html
1, 被測系統是由驅動進程mdrv.exe(多線程驅動的進程)和r3vuser.exe來產生壓力的,其中r3vuser.exe仿真應用程序的客戶端,如IE瀏覽器。它執行了三個主要的操做:web
Kli> cpp (C語言pre-processor)數據庫
1)cci(C語言編譯器),創建ci文件,而後使用被測系統的協議相關的驅動來執行。windows
經過在Windows批處理腳本中啓動Mdrv.exe來默默地啓動運行。瀏覽器
Mdrv能自動中止加載Vuser,由於他們與Vuser和Windows負載生成器上的CPU使用監視器之間互相通訊。多線程
在Windows機器上,對於每個基於Java的Vuser都有一個獨立的JVM。大數據
2, 虛擬用戶經過在負載生成器客戶端機器上使用agent(3900 magentproc.exe)做爲服務或者進程來按照組(在指定的負載生成器上運行相同腳本的虛擬用戶的集合)啓動虛擬用戶。ui
3, 每個擁有代理的機器維護一個在.qtp文件中的執行日誌。編碼
4, 當日志被啓用後,代理一樣會在結果文件中爲每個虛擬用戶(由虛擬用戶組分開)創建一系列日誌文件。
5, 在執行過程當中,這些文件能夠經過在Controller機器上的view > Show Output窗口中顯示。
6, 在預先設置延時上,Controller上運行的Scheduler指導代理(經過Windows 54345端口,或者Unix上的動態端口)去初始化場景會話.Controller(wlrun.exe)在請求中發送一份場景的拷貝.
7, 代理是由每個負載生成器上的Remote AgentDispatcher進程(之前叫Remote Command Launcher(RCL))啓動的.
8, 每個根據場景(.lrs)定義文件中設置的代理來決定哪個虛擬用戶組和腳本須要在主機上運行.
##這就是說Controller能夠從DOS的批處理文件(.batch)中啓動.
REM Start Controller:
SET M_ROOT=C:\Program Files\Mercury Interactive\LoadRunner\bin
cd %M_ROOT%
wlrun.exe -TestPath D:\Dev\Dev1.lrs -port 8080 -Run -DontClose
l 包含的-Run參數與手動的點」開始場景」自動運行是同樣的.這不是一個很好的方法,由於你可能須要決定從之前的運行中收集文件或者想改變輸出文件夾.
l 這是假設系統環境變量PATH已經被更新了,包括LoadRunner的安裝.
9, Controller經過使用 Windows操做系統文件夾裏的參數值來啓動.由於LoadRunner被設計成在一個機器上一次只能運行一個Controller實例,因此須要使用Windows文件夾.
##爲了在幾個應用之間快速的切換,在Controller工做以後保存LoadRunner的ini文件,而後使用記事原本製做一個批處理文件.在執行wlrun以前拷貝應用程序的指定版本的ini文件.下面是一個應用程序文件拷貝的例子:
copy %WinDir%/wlrun7-XXX.ini %WinDir%/wlrun7.ini
copy %WinDir%/wlrun7-XXX.dft %WinDir%/wlrun7.dft
須要修改一些默認值:
l 在wlrun7.ini文件的output區域, MaxNumberOfOutputMessages=from 10000 to 100000,這就限制了存儲在數據庫中的輸出信息的數目.
l MaxOutputUIRowsToShow限制了在Controller的輸出窗口中顯示的信息/錯誤行總數.
l 在LoadRunner程序文件的dat\protocols 文件夾下的QTWeb.lrp文件的[Vugen]部分,添加一個MaxThreadPerProcess=5來限制由每一個負載生成器mdrv.exe進程管理的線程數.
l 存儲在wlrun5.ini和wlrun7.dft文件中的DefaultScenarioDir, DefaultscrīptDir, DefaultResultDir,[Recent File List]幾個數據的值會在每次Controller改變的時候更新。
10, 在Vu scrīpts中定義的每一個虛擬用戶進行的操做是用LoadRunner的VuGen.exe生成的.當這個程序啓動後,它在windows文件夾下存儲了comparamui.INI文件來保存[LastTablesUsed]下面文件的歷史,而且保存由Insert > New Parameter > Dates菜單指定的[ParamDialogDates].
VuGen在Windows文件夾下存儲和檢索vugen.ini文件.當使用JAVA的時候,須要添加一些其餘的調試選項:
[DynaDlg]
JavaLevel=3
當在VuGen 8.1中使用8.0的腳本,往Vugen.ini中加入信息:
[Editor]
OLDEDITOR = 1
VuGen在LR文件夾template/qtwebdefault.cfg裏和腳本文件裏打開.
Vu scrīpts可使用腳本外部的參數文件來得到的變量值進行編碼.
更多關於VuGen的信息請看腳本編寫的章節.
11.運行過程當中,執行結果存儲到一個結果文件夾中.
我喜歡在場景執行中把結果設置成自動產生結果.這樣,LoadRunner會在每次啓動一個場景以後自動產生一個子增的結果名.例如,結果名稱Res1會自動增加到Res12或有時候是R es11-1.
錯誤被寫到output.mdb微軟的Access數據庫中。
12.在每個結果文件夾中,程序自動建立Log文件夾來包含每一個組的日誌文件.運行以後,在Controller中查看日誌文件,點,.而後在組中點右鍵,選擇「ShowVuser Log」
13.場景運行的時候,監視器在本地維護每一個主機的計數器.
14.運行完成以後,"collate"進程處理.eve和.lrr結果文件,而且在結果文件夾下建立一個臨時的.mdb數據庫.
在處理大數據量的結果時,爲了防止錯誤發生,使用MSDE. ……
15.分析模塊(8,320K analysisu.exe)使用mdb數據庫中的數據來產生分析圖表和報告.
16.每一次場景運行後的結果文件results_name.lrr,也叫分析文檔文件,由分析程序來讀取而且顯示百分位圖表.