国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
6.2 性能測試組織 - AJava
6.2  性能測試組織
性能測試并不是一個(gè)人或者一個(gè)部門可以完成的工作,相對于功能測試來說,性能測試更為復(fù)雜,所以一個(gè)公司成立一個(gè)性能測試部門并不難,但是需要將這個(gè)部門的作用發(fā)揮出來就不是那么簡單的事情了。
6.2.1  性能測試團(tuán)隊(duì)
性能測試作為測試團(tuán)隊(duì)中的一部分,有其特殊性,所以對于性能測試團(tuán)隊(duì)的管理和組織架構(gòu)和普通的功能測試工作在流程和組織上有所不同,這里給出一個(gè)在整個(gè)項(xiàng)目研發(fā)過程中性能測試相關(guān)角色的矩陣圖,如圖6.87所示。
圖6.87  性能測試團(tuán)隊(duì)工作流程
Ÿ PM項(xiàng)目經(jīng)理
項(xiàng)目經(jīng)理作為整個(gè)項(xiàng)目最關(guān)鍵的人,必須對性能測試有所了解,這樣才能確保性能測試被重視,并且有足夠的資源支持。
Ÿ 性能需求分析工程師
確定系統(tǒng)的性能需求,除了傳統(tǒng)的功能需求,我們需要得到更加準(zhǔn)確的性能需求,例如系統(tǒng)的容量、響應(yīng)時(shí)間等明確指標(biāo)。這些需求需要在開發(fā)前就明確,這樣才能在一定的約束下進(jìn)行開發(fā),確保在設(shè)計(jì)初期就考慮了性能方面的需求。高級性能測試工程師可以輔助需求分析工程師對性能需求進(jìn)行定義和明確。
Ÿ 架構(gòu)設(shè)計(jì)師
系統(tǒng)的性能在需求分析工程師和架構(gòu)設(shè)計(jì)師經(jīng)過分析后確定。架構(gòu)設(shè)計(jì)師根據(jù)用戶的性能需求來決定系統(tǒng)的架構(gòu)特點(diǎn)并提供足夠的可擴(kuò)展性。后期做的性能測試只是讓系統(tǒng)更接近于系統(tǒng)設(shè)計(jì)時(shí)的性能而已,但是無法超越系統(tǒng)架構(gòu)的設(shè)計(jì),也就是說性能是做出來的而不是測出來的,待到后期通過性能測試發(fā)現(xiàn)問題時(shí),調(diào)優(yōu)的成本和難度也非常大了。
在大多數(shù)情況下,系統(tǒng)的架構(gòu)性能都是由架構(gòu)設(shè)計(jì)師獨(dú)自測試分析的,如果有性能測試工程師介入,也可以提供一定的技術(shù)支持和建議。
Ÿ 開發(fā)工程師
開發(fā)工程師的主要職責(zé)是在架構(gòu)上進(jìn)一步編碼,受到個(gè)人能力的影響,某些開發(fā)工程師能夠很好利用架構(gòu)在不降低性能的情況下實(shí)現(xiàn)功能,而也存在編碼不合理導(dǎo)致效率降低的情況。
Ÿ 測試經(jīng)理
作為一名測試經(jīng)理,更多的工作是協(xié)調(diào)溝通,即組織和協(xié)調(diào)資源確保性能測試的有效進(jìn)行。
Ÿ 高級性能測試工程師
負(fù)責(zé)測試計(jì)劃、測試策略和分析工作。
Ÿ 性能測試工程師
根據(jù)用戶的需求,完成腳本的開發(fā)并形成系統(tǒng)負(fù)載,將性能問題表現(xiàn)出來,而結(jié)果的分析由高級性能測試工程師和相關(guān)人員共同完成。
6.2.2  性能測試流程分工
在性能測試的整個(gè)周期上,不同階段各個(gè)部門的工作內(nèi)容是不同的,通過圖6.88可以了解到在每個(gè)過程中,需要哪些部門成員的介入。
圖6.88  性能測試流程分工
 測試計(jì)劃
性能測試的計(jì)劃是由項(xiàng)目經(jīng)理、業(yè)務(wù)/架構(gòu)專家和高級性能測試工程師共同完成的,項(xiàng)目經(jīng)理需要提供時(shí)間的計(jì)劃安排和資源,而業(yè)務(wù)/架構(gòu)專家需要提供架構(gòu)設(shè)計(jì)的目標(biāo)以及系統(tǒng)的相關(guān)信息,最后由高級性能測試工程師編寫測試計(jì)劃。
 腳本開發(fā)
在開發(fā)腳本的過程中,一方面需要項(xiàng)目經(jīng)理的協(xié)調(diào),而另一方面架構(gòu)專家提供腳本開發(fā)中的一部分技術(shù)支持,包括測試環(huán)境的搭建和早期性能測試的介入。
 場景設(shè)計(jì)
根據(jù)性能需求分析工程師指定的相關(guān)需求設(shè)計(jì)場景。系統(tǒng)管理員提供一些軟硬件平臺搭建上的支持。
 場景運(yùn)行
完成場景的運(yùn)行設(shè)置、負(fù)載生成規(guī)則和執(zhí)行策略,開始執(zhí)行場景。
 負(fù)載下的監(jiān)控分析
在場景運(yùn)行的過程中,作為一個(gè)性能測試工程師并不是簡單地等待數(shù)據(jù),還需要系統(tǒng)管理員和架構(gòu)設(shè)計(jì)師在負(fù)載過程中對一些數(shù)據(jù)進(jìn)行監(jiān)控,隨時(shí)確認(rèn)瓶頸產(chǎn)生的原因。
 系統(tǒng)調(diào)優(yōu)階段
架構(gòu)設(shè)計(jì)師和系統(tǒng)管理員根據(jù)前面得出的數(shù)據(jù)進(jìn)行系統(tǒng)調(diào)優(yōu),當(dāng)調(diào)優(yōu)工作完成后,重新進(jìn)入新一輪的性能測試,整個(gè)過程按照PDCA循環(huán)持續(xù),直至達(dá)到目標(biāo)。
如何進(jìn)行調(diào)優(yōu)請參考各個(gè)應(yīng)用的tuning手冊和相關(guān)書籍。
6.2.3  配置管理
為什么要進(jìn)行性能測試的配置管理呢?對于性能測試來說,作為測試用的腳本也會(huì)隨著項(xiàng)目的進(jìn)展被不斷地修改,多次的場景運(yùn)行后會(huì)帶來大量場景數(shù)據(jù),對應(yīng)的大量有待進(jìn)行基準(zhǔn)測試分析的數(shù)據(jù),而如果沒有有效的配置管理,會(huì)帶來性能測試工作的混亂。另一方面開發(fā)性能測試腳本和場景也是開發(fā)的一種,同樣也需要對其進(jìn)行有效的權(quán)限劃分和版本追溯。為了確保性能測試中的相關(guān)數(shù)據(jù)和代碼能夠有效地進(jìn)行管理,實(shí)行配置管理是非常有必要的。
HP也考慮到這些問題,推出了Performance Center和Quality Center 兩大系統(tǒng)平臺。其中Performance Center提供了對性能測試后場景運(yùn)行管理和場景結(jié)果數(shù)據(jù)的統(tǒng)一管理和橫向比較功能,而Quality Center提供了版本控制和腳本運(yùn)行的控制,LoadRunner本身提供了對PC和QC的插件支持,但這兩個(gè)工具部署復(fù)雜并且價(jià)格不菲,從性價(jià)比的角度來說,并不太適合小公司。如果公司已經(jīng)使用了QC來管理缺陷流程,那么建議繼續(xù)使用。對于沒有以上條件的公司,其實(shí)可以通過配置管理工具和一定的流程來實(shí)現(xiàn)同樣的功能。
管理內(nèi)容
Ÿ 性能測試腳本及參數(shù)化文件
Ÿ 性能測試場景
Ÿ 性能測試場景運(yùn)行后的結(jié)果
Ÿ 性能測試分析及報(bào)告
達(dá)到目標(biāo)
對性能測試中使用的所有內(nèi)容進(jìn)行版本管理,實(shí)現(xiàn)對性能測試腳本和場景的基線化操作,對每個(gè)基線代碼形成有效的性能測試數(shù)據(jù)記錄,并能夠簡便地實(shí)現(xiàn)同場景下多結(jié)果的配置及基準(zhǔn)測試數(shù)據(jù)的性能比較。
這里推薦使用業(yè)界流行的Subversion作為性能測試的配置管理工具,客戶端使用TortoiseSVN。
在整個(gè)性能測試過程中,需要配置的內(nèi)容主要包括以下幾點(diǎn):
Ÿ 腳本中的代碼
Ÿ 腳本中的參數(shù)化數(shù)據(jù)
Ÿ 腳本的Run-time Setting
Ÿ 場景的設(shè)計(jì)
Ÿ 場景運(yùn)行后得到的數(shù)據(jù)
Ÿ Analysis分析的報(bào)告
Ÿ 相關(guān)的文檔和報(bào)告
對于性能測試的配置管理可以使用以下的目錄結(jié)構(gòu):
/
/Trunks/
/Trunks/PT/
/Trunks/PT/
/Trunks/PT/Document
/Trunks/PT/Document/Plan
/Trunks/PT/Document/Report
/Trunks/PT/Script
/Trunks/PT/Script/Param
/Trunks/PT/Scenario
/Trunks/PT/Res
/Trunks/PT/Analysis
其中,/Trunks是SVN中的主干目錄;/PT是性能測試的英文縮寫,說明該目錄下的內(nèi)容都是性能測試;Document/目錄下主要保存相關(guān)性能測試的文檔,如性能測試需求分析、性能測試計(jì)劃、性能測試報(bào)告;Script/目錄主要管理VuGen腳本。默認(rèn)情況下,VuGen腳本由以下幾個(gè)文件組成:
Action.c
Vuser_end.c
Vuser_init.c
Globals.h
Default.cfg
Default.usp
Scenario.usr
通過前面的學(xué)習(xí)我們知道前3個(gè).c文件和一個(gè).h文件是腳本文件用來存放Action。Scenario.usr文件是VuGen打開腳本的主文件,文件內(nèi)包含了一些VuGen的通用設(shè)置和運(yùn)行屬性。 Default.cfg和default.usp是配置文件,其中runtime setting存放在default.usp文件中,所以這些文件必須要添加到配置管理工具中。
當(dāng)腳本被運(yùn)行后,會(huì)得到以下內(nèi)容:
Combined_scm_.c
Scm.c
Pre_cci.c
Logifle.log
Mdrv.log
Mdrv_cmd.txt
Options.txt
Output.txt
result1腳本運(yùn)行后的result目錄
其中Mdrv.log和output.txt文件是運(yùn)行腳本所產(chǎn)生的log文件。Mdrv_cmd.txt是命令行啟動(dòng)mdrv的參數(shù)寫法,使用mdrv.exe啟動(dòng)腳本的命令方式參考第3.5.5節(jié)中的相關(guān)內(nèi)容。三個(gè).c文件是運(yùn)行腳本所需要的系統(tǒng)函數(shù)庫,這些內(nèi)容都無須進(jìn)行配置管理。
腳本中使用的參數(shù)化內(nèi)容存放在Script/Param目錄下以便于管理。參數(shù)化后腳本中會(huì)添加一個(gè).prm文件,該文件記錄了參數(shù)化列表中的取值規(guī)則,需要進(jìn)行配置管理。
對于.bak/.log和result1目錄這種無須進(jìn)行配置管理的文件,可以使用TortoiseSVN中的添加忽略列表功能將這些內(nèi)容從commit操作中去除,如圖6.89所示。
圖6.89  TortoiseSVN中設(shè)置過濾文件
通過這種方法可以輕松地管理每次腳本運(yùn)行或修改腳本的過程,只需在運(yùn)行或修改后單擊commit按鈕就可以將所有的操作通過配置管理庫進(jìn)行集中管理,甚至可以進(jìn)行多人并行開發(fā)。
所以Scripts目錄下需要管理的內(nèi)容主要有:
*.c
*.prm
*.usr
*.usp
*.cfg
*.h
param目錄下的所有.dat文件
當(dāng)然也可以通過VuGen中的export script功能將腳本打包導(dǎo)出進(jìn)行管理,不過需要再解包進(jìn)入配置管理,相對麻煩了一點(diǎn)。
場景的設(shè)計(jì)文件都保存在Scenario目錄下,場景文件是由.lrs文件管理,該文件內(nèi)保存了所有場景設(shè)置的內(nèi)容。只需要對該文件進(jìn)行配置管理即可。
場景運(yùn)行后的results文件是整個(gè)性能測試分析的基礎(chǔ),該數(shù)據(jù)需要單獨(dú)保存。
在場景運(yùn)行前,先設(shè)置場景運(yùn)行結(jié)果的存放地址。將場景的results文件存放在res目錄下,并設(shè)置存放res數(shù)據(jù)的目錄名稱為場景名稱,選中自動(dòng)創(chuàng)建新的results目錄為每一次場景運(yùn)行。
例如:我們的場景名為scenario1,那么在場景中設(shè)置的結(jié)果目錄就應(yīng)該為..\res\scenario1,如圖6.90所示。
圖6.90  修改場景運(yùn)行結(jié)果地址為相對路徑
這樣,當(dāng)場景運(yùn)行結(jié)束后,相關(guān)的內(nèi)容就會(huì)被保存在\res\scenario1\res0目錄下,只需要對res目錄進(jìn)行管理即可。
對于Analysis報(bào)告建議保存的文件名為“場景名_場景數(shù)據(jù)目錄名.lra”,例如前面的場景名為scenario1而得到的result目錄為res0,如果對該場景下的這個(gè)結(jié)果目錄進(jìn)行分析,那么報(bào)告名應(yīng)該為 scenario1_res0.lrs。.lrs文件保存在Analysis目錄下。
通過Analysis生成的報(bào)告文檔存放在document/report目錄下。
權(quán)限規(guī)則表
每個(gè)公司研發(fā)部門的規(guī)模都不盡相同,而對應(yīng)的配置管理目錄權(quán)限也不同,這里給出一個(gè)簡單的參考方案,如表6.25所示。
表6.25  性能測試配置管理權(quán)限矩陣表
初級性能測試工程師
高級性能測試工程師
項(xiàng)目經(jīng)理
性能需求分析工程師
Document
R
RW
R
RW
Script
RW
RW
/
/
Scenario
/
RW
/
/
Res
/
RW
/
/
Analysis
R
RW
/
/
架構(gòu)設(shè)計(jì)師
開發(fā)工程師
測試經(jīng)理
DBA/Sys Admin
Document
RW
/
RW
R
Script
R
/
R
/
Scenario
R
/
R
R
Res
R
/
R
R
Analysis
R
/
R
R
R=read                               W=write   /=none
文件命名規(guī)則
每個(gè)公司的命名規(guī)則不同,這里給出參考方案。
文檔命名規(guī)則
文檔以PT開頭+文檔類型+編號,例如:性能測試需求PT_RQ_0001.doc、性能測試報(bào)告PT_Report_0001.doc。
腳本命名規(guī)則
腳本根據(jù)實(shí)現(xiàn)的功能進(jìn)行描述,即“PT+功能說明”,例如:注冊用戶腳本PT_RegUser.usr。
場景命名規(guī)則
場景名稱使用“腳本名+場景類型+場景編號”,例如:注冊用戶目標(biāo)場景(Goal Scenario)PT_RegUser_GS_0001.lrs、注冊用戶行為500個(gè)用戶在線手工場景(Manual Scenario)PT_RegUser_MS500_0001.lrs。
編號可以使用文檔管理,來說明該場景下的一些負(fù)載生成規(guī)則。
Analysis命名規(guī)則
使用“場景名+場景運(yùn)行”編號,例如:注冊用戶目標(biāo)場景分析結(jié)果PT_RegUser_ GS_0001_Res01.lra。
基線化規(guī)則
當(dāng)性能測試腳本和場景確定后,script腳本目錄和場景文件將被標(biāo)記為tag進(jìn)入基線狀態(tài)。當(dāng)使用該基線性能測試場景對某個(gè)軟件基線版本進(jìn)行性能測試后,相關(guān)的數(shù)據(jù)也需要進(jìn)行基線化處理并且標(biāo)明該性能測試結(jié)果的數(shù)據(jù)來自于哪個(gè)開發(fā)基線版本,從而實(shí)現(xiàn)性能測試與開發(fā)的版本配對。
6.2.4  性能測試自動(dòng)化
各大論壇中現(xiàn)在談得最多的就是測試自動(dòng)化、單元測試自動(dòng)化、自動(dòng)化測試,通過每日構(gòu)建我們可以大規(guī)模地降低測試成本并及早發(fā)現(xiàn)和定位問題。通過合適的流程同樣也可以實(shí)現(xiàn)性能測試的自動(dòng)化,將性能測試加入每日構(gòu)建。
首先來看看每日構(gòu)建的常見步驟和過程。
 對被測系統(tǒng)的標(biāo)記進(jìn)行分支操作。
 將被測系統(tǒng)下載至指定目錄。
 對被測系統(tǒng)進(jìn)行編譯及白盒靜態(tài)測試。
 對被測系統(tǒng)進(jìn)行打包發(fā)布。
 下載安裝包并進(jìn)行安裝測試。
 對系統(tǒng)進(jìn)行自動(dòng)化測試。
 對系統(tǒng)進(jìn)行手工冒煙測試。
 提交測試報(bào)告。
性能測試是介于自動(dòng)化測試和手工冒煙測試之間的步驟,這里需要解決的問題有以下幾點(diǎn):
Ÿ 測試代碼及測試環(huán)境的自動(dòng)下載
Ÿ 場景的命令行啟動(dòng)
Ÿ 性能測試結(jié)果的自動(dòng)簽入
如果希望實(shí)現(xiàn)性能測試的自動(dòng)化,那么配置管理是最基本的要求,當(dāng)完成了第6.2.3節(jié)中的配置管理后,就可以通過使用Shell腳本來解決以上問題,大家可以根據(jù)自己的愛好選擇Python、Perl、Ruby等語言進(jìn)行編寫。
基于SVN的性能測試自動(dòng)化要點(diǎn)主要包括:
 確保當(dāng)前目錄為工作目錄,同時(shí)SVN命令在系統(tǒng)PATH環(huán)境變量中。
 使用SVN 的cp參數(shù)創(chuàng)建Tag。
例如現(xiàn)在要為以下目錄創(chuàng)建分支:
/Trunks/PT/Script
/Trunks/PT/Script/Param
/Trunks/PT/Scenario
可以編寫以下命令:
Svn cp /Trunks/PT/Script  /Tags/20090301
Svn cp /Trunks/PT/Scenario  /Tags/20090301
這樣就把當(dāng)前場景和腳本數(shù)據(jù)定義為一個(gè)基線存放到Tags下的目錄中。
 通過Svn checkout命令檢出Tag。
Svn checkout /Tags/20090301
將服務(wù)器上的/Tags/20090301目錄下的所有內(nèi)容下載到本地目錄,這里包含了所有待執(zhí)行的腳本和場景文件。
 運(yùn)行場景。
以命令行方式啟動(dòng)場景。進(jìn)入LoadRunner安裝目錄下的bin啟動(dòng)以下命令:
Wlrun.exe -TestPath g:\Scenario\scenario1.lrs –Run
上面這個(gè)命令說明調(diào)用wlrun.exe啟動(dòng)場景,通過-TestPath參數(shù)啟動(dòng)g:\scenario\ scenario1.lrs場景文件,-Run參數(shù)說明啟動(dòng)該場景。
更多命令及Wlrun支持的參數(shù)如表6.26所示。
表6.26  場景執(zhí)行命令表
命令參數(shù)
說    明
TestPath
Path to the scenario, for example,
這里可以填寫場景的物理地址
C:\LoadRunner\scenario\Scenario.lrs
This argument can also be used for a scenario
residing in a Quality Center database. For example,
也可以填寫場景在TD/QC上的地址
"[TD]\Subject\LoadRunner\Scenario1"
If the path includes blank spaces, use quotation marks.
如果路徑中存在空格,那么使用引號
Run
Runs the scenario, dumps all output messages into
運(yùn)行場景,場景結(jié)束后將所有信息輸出到以下地址并關(guān)閉Controller
res_dir\output.txt and closes Controller
InvokeAnalysis
Instructs LoadRunner to invoke Analysis upon scenario termination. If this argument is not specified, LoadRunner uses the scenario default setting.
當(dāng)場景結(jié)束時(shí)自動(dòng)調(diào)用Analysis,如果該參數(shù)沒有被定義,則使用場景中的默認(rèn)設(shè)置。
ResultName
Full results path. 自定義場景結(jié)果的完整地址(包括路徑和名稱)
For example,
"C:\Temp\Res_01"
ResultCleanName
Results name. 自定義結(jié)果的名稱
For example,
"Res_01"
ResultLocation
Results directory.
自定義結(jié)果的路徑
For example, "C:\Temp"
進(jìn)行性能測試自動(dòng)化時(shí)還經(jīng)常遇到一個(gè)麻煩的問題就是測試環(huán)境的變動(dòng),為了進(jìn)行基準(zhǔn)測試,經(jīng)常需要在不同的環(huán)境下進(jìn)行同負(fù)載的測試,這時(shí)對于代碼的可維護(hù)性就有了較高的要求,這里可以通過命令參數(shù)的形式來解決。
在前面我們談到過如何使用命令行啟動(dòng)腳本,那么在場景中同樣也可以通過命令行導(dǎo)入環(huán)境信息,首先將所有的服務(wù)器地址信息替換成一個(gè)參數(shù)如{serverinfo},然后通過r_save_string(lr_get_attrib_string( "sinfo" ),”serverinfo”)函數(shù)將命令輸入的服務(wù)器地址信息載入再保存到參數(shù)中去。這樣在執(zhí)行場景的時(shí)候只需要通過修改啟動(dòng)場景的配置參數(shù)就可以實(shí)現(xiàn)場景運(yùn)行支持環(huán)境的變化。
這里需要先設(shè)計(jì)好場景,在場景中打開自動(dòng)生成測試數(shù)據(jù)目錄功能,當(dāng)然也可以使用命令行自行定義。腳本運(yùn)行后會(huì)得到res目錄,然后通過添加的方式將該數(shù)據(jù)添加到SVN服務(wù)器上。
 使用Svn add命令將性能測試數(shù)據(jù)提交至服務(wù)器。
例如我們將場景執(zhí)行后res目錄下的場景數(shù)據(jù)提交至服務(wù)器,輸入命令Svn add \res\,最后通過Svn commit命令提交數(shù)據(jù)。
在Windows平臺下可將上述操作添加進(jìn)BAT批處理文件,通過AT命令或者計(jì)劃任務(wù)設(shè)置為定時(shí)啟動(dòng)即可。
這里主要提出了一個(gè)簡單性能測試自動(dòng)化的方式,每日構(gòu)建需要相當(dāng)成熟的研發(fā)團(tuán)隊(duì)和開發(fā)流程,切勿生搬硬套。
關(guān)于配置管理的原理和SVN工具的使用及Shell腳本的開發(fā)請參考相關(guān)文檔。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
loadrunner 運(yùn)行場景
不同擴(kuò)展名的LoadRunner文件。
Linux下svn提交文件后自動(dòng)同步更新到網(wǎng)站目錄
svn 文件被鎖定無法操作(*** locked)
[svn]取消本地項(xiàng)目與VisualSVN關(guān)聯(lián)(刪除目錄中的.svn)
性能測試面試題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服