軟件性能測試Ⅵ

從軟件過程來看凡恍,軟件性能需求應(yīng)該是軟件項目啟動之前润脸,需求分析人員和客戶共同討論并確定下來的,這個需求對于性能測試人員來說倔矾,應(yīng)該是明確的妄均,無二義性,是一些列可操作的性能指標(biāo)

注意的是破讨,采取何種算法丛晦,何種方法細(xì)化性能需求并不是最重要的奕纫,最重要的是軟件方和客戶能夠達(dá)成理解一致

一份詳細(xì)的軟件性能需求說明是一個成功的性能測試的基礎(chǔ)提陶,否則可能辛辛苦苦得出的性能測試報告卻被客戶認(rèn)為說明不了系統(tǒng)的性能情況,在確定需求標(biāo)準(zhǔn)的時候匹层,有以下技巧

1隙笆、積極參與性能需求的指定和細(xì)化工作

性能測試工程師應(yīng)該比需求人員和客戶更明白軟件系統(tǒng)性能為何物,怎樣度量升筏,而且性能測試工程師還是性能測試的執(zhí)行者

2撑柔、抓大放小設(shè)計測試場景

大多常見的性能測試屬于負(fù)載測試,是模擬真實用戶的集體行為您访。實際上铅忿,在真實環(huán)境下,用戶的集體行為并不是十分明確的灵汪,甚至是混沌的檀训,帶有一定的隨機性。因此負(fù)載測試與基準(zhǔn)測試相比享言,在設(shè)計上并不是要求十分嚴(yán)格峻凫,與真實業(yè)務(wù)一絲不差,抓住用戶業(yè)務(wù)行為模型的主要特征览露,設(shè)置場景

設(shè)計性能測試場景

Controller有兩個視圖:設(shè)計視圖和運行視圖

1荧琼、設(shè)計視圖

設(shè)計視圖顯示場景中的所有Vuser組/腳本的列表、負(fù)載生成器計算機以及分配給每個組/腳本的Vuser數(shù),該視圖顯示有關(guān)場景計劃(手動場景)或目標(biāo)(面向目標(biāo)的場景)的基本信息

2命锄、運行視圖

場景一旦開始運行堰乔,Controller自動切換到運行視圖,運行視圖顯示有關(guān)運行的Vuser的Vuser組的信息以及聯(lián)機監(jiān)視器

設(shè)計性能測試場景主要是在設(shè)計視圖中完成的,性能測試中,場景的設(shè)計是十分重要的欠窒,它整個性能測試的成敗

在設(shè)計視圖中素征,場景有兩種:手工場景和面向目標(biāo)場景,其中手工場景還有百分比模式

1穆役、手工場景:創(chuàng)建虛擬用戶組,設(shè)置虛擬用戶數(shù)目以及其他Run-time信息。手工場景是常用的設(shè)計模式袜瞬,負(fù)載測試就常用它。手工場景符合性能測試常規(guī)思路身堡,第一步邓尤,設(shè)置虛擬用戶的數(shù)目、腳本以及它們運行的方式贴谎,第二步汞扎,運行,得出服務(wù)器的響應(yīng)時間等指標(biāo)

手工場景有一個百分比模式:在百分比模式里擅这,只需要設(shè)定總用戶數(shù)澈魄,Controller將總用戶數(shù)以百分比的方式分派去執(zhí)行不同的腳本

2、面向目標(biāo)場景:如果說手工場景是一板一眼的因果關(guān)系(先有條件仲翎,再得結(jié)果)痹扇,面向目標(biāo)場景就是一個稍微復(fù)雜一些的閉環(huán)回饋關(guān)系。在面向目標(biāo)場景中溯香,先定義測試要達(dá)到的目標(biāo)鲫构,然后LoadRunner自動基于這些目標(biāo)創(chuàng)建場景,運行過程中玫坛,會不斷地把結(jié)果和目標(biāo)相比較结笨,以決定下一步怎么走。

創(chuàng)建手工場景

創(chuàng)建虛擬用戶組是執(zhí)行同一腳本的虛擬用戶的集合湿镀。因此在Controller中炕吸,添加了一個腳本,就是添加了一個虛擬用戶組

設(shè)置集合點

如果在VU腳本中設(shè)置了集合點肠骆,Controller默認(rèn)的集合點策略:在所有Running狀態(tài)的Vuser達(dá)到集合點后才釋放算途。

百分比模擬創(chuàng)建手工場景

百分比模式場景是設(shè)定總虛擬用戶數(shù),然后以百分比的形式把虛擬用戶分配到各個腳本中蚀腿。這種場景設(shè)置非常適合業(yè)務(wù)模型明確的性能測試

創(chuàng)建面向目標(biāo)場景

面向目標(biāo)場景的特點是閉關(guān)回饋關(guān)系嘴瓤,在面向目標(biāo)場景中扫外,先定義測試達(dá)到的目標(biāo),然后LoadRunner自動基于這些目標(biāo)創(chuàng)建場景

Virtual Users

如果需要測試服務(wù)器的并發(fā)處理能力廓脆,即多少人可以同時運行Web應(yīng)用筛谚,那么推薦定義Virtual Users目標(biāo)類型。運行定義該目標(biāo)類型的場景和運行Manual類型的場景類似

Hits per Second

如果系那個測試Web Server的真正實力停忿,推薦定義目標(biāo)類型為:Hits per Second驾讲、Pagers per Minute 或者 Transactions per Second,這些類型都需要指定一個虛擬用戶的最小值和最大值的范圍

Controller試圖使用最少的虛擬用戶來達(dá)到定義的最大值席赂。如果使用了最多的虛擬用戶數(shù)吮铭,定義的目標(biāo)還沒有實現(xiàn),那么需要增加最大用戶數(shù)颅停,重新執(zhí)行場景

Transactions per Second

Transaction Name中應(yīng)該選定目標(biāo)Transaction谓晌,當(dāng)然這有一個前提,在腳本里應(yīng)該有設(shè)置Transaction癞揉,否則這里就顯示為空白

Transaction Response Time

如果想知道在多少用戶并發(fā)訪問網(wǎng)站時纸肉,事務(wù)的響應(yīng)時間達(dá)到性能指標(biāo)說明書中規(guī)定時間的最大值,推薦使用“Transaction Response Time”類型

Pages per Minute

理解加載機制

如果定義的類型是Pages per Minute喊熟、Hits/Transactions per Second柏肪,Controller首先用最小用戶數(shù)除以定義的目標(biāo),得到一個值芥牌,然后確定每個用戶應(yīng)該達(dá)到的Hits/Transactions 或者 Pages per Minute烦味,然后Controller開始按照策略加載用戶

多IP的實現(xiàn)原理以及模擬

當(dāng)運行場景時,虛擬用戶使用它們所在的Load Generator的固定的IP地址胳泉。同時每個Load Generator上運行大量的虛擬用戶拐叉,這樣就造成了大量的用戶使用同一IP同時訪問一個網(wǎng)站的情況岩遗,這種情況和實際運行的情況不符扇商,并且有一些網(wǎng)站會根據(jù)用戶IP來分配資源,這些網(wǎng)站會限制同一IP的登錄宿礁、使用等案铺。

查看虛擬IP是否實現(xiàn)

可以在VU腳本中使用lr_get_vuser_ip函數(shù)來得到當(dāng)前虛擬用戶的IP地址

運行場景

性能測試場景的運行和監(jiān)控都是在運行視圖中進行的

兩條線索是場景的控制和場景的查看,三個對象是場景梆靖、Vuser組和Vuser

場景控制

場景組:顯示每個虛擬用戶組及其當(dāng)前運行狀態(tài)

在場景組的左邊區(qū)域顯示虛擬用戶組的狀態(tài)控汉,右邊區(qū)域則是場景的控制,比如:開始返吻、停止姑子、復(fù)位、虛擬用戶控制等

停止方式在場景運行之前就需要在“Tools”菜單下的“Options”選項中設(shè)置好

控制整個虛擬用戶組

重新編號:重新對組中的Vuser編號测僵,從而更改它們的ID號街佑。ID號是場景運行時分配給虛擬用戶組的各個Vuser的谢翎。一般的,Vuser執(zhí)行的結(jié)果和其ID沒有聯(lián)系沐旨。如果在某個場景下森逮,30號的Vuser總是執(zhí)行出錯,那么就考慮重新編號試試

初始化組:將組中的Vuser分配給其指定的負(fù)載生成器磁携,這樣它們就可以執(zhí)行它們的腳本了褒侧。Vuser組的狀態(tài)將從“關(guān)閉”變?yōu)椤皰炱稹薄ⅰ罢诔跏蓟币昶ⅰ熬途w”闷供。如果Vuser組初始化失敗,該Vuser組的狀態(tài)將變?yōu)椤板e誤”

1统诺、高級——從同步點中手動釋放Vuser

在運行方案時这吻,在Controller釋放Vuser之前可以從集合中手動釋放它們

2、高級——向正在運行的場景中手動添加Vuser

在運行場景期間篙议,使用“運行/停止 Vuser”對話框可以手動控制新Vuser的添加

監(jiān)視場景

查看場景狀態(tài)信息可以知道哪個虛擬用戶執(zhí)行腳本的哪條語句出了錯唾糯,這遠(yuǎn)遠(yuǎn)是不夠的,做性能測試的目的是要找到軟件系統(tǒng)的瓶頸鬼贱,光憑客戶端的錯誤顯然還不夠移怯,必須監(jiān)控軟件系統(tǒng)各個節(jié)點的服務(wù)器的性能表現(xiàn),以判斷瓶頸到底出現(xiàn)在哪里

1这难、聯(lián)機監(jiān)視器

LoadRunner提供下列聯(lián)機監(jiān)視器

1)“運行時”監(jiān)視器顯示參與方案的Vuser的數(shù)目和狀態(tài)舟误,以及Vuser所生成的錯誤數(shù)量和類型

2)“事務(wù)”監(jiān)視器顯示方案執(zhí)行期間的事務(wù)速率和響應(yīng)時間

3)“Web資源”監(jiān)視器用于度量方案運行期間Web服務(wù)器上的統(tǒng)計信息。它提供關(guān)于方案運行期間的Web連接姻乓、吞吐量嵌溢、HTTP響應(yīng)、服務(wù)器重試和下載頁的數(shù)據(jù)

4)“系統(tǒng)資源”監(jiān)視器測量方案運行期間使用的Windows蹋岩、UNIX赖草、TUXEDO、SNMP和Antare FlameThrower資源剪个。要激活系統(tǒng)資源監(jiān)視器秧骑,必須在運行方案之前設(shè)置監(jiān)視器選項

5)“網(wǎng)絡(luò)延遲”監(jiān)視器顯示關(guān)于系統(tǒng)上的網(wǎng)絡(luò)延遲的信息。要激活網(wǎng)絡(luò)延遲監(jiān)視器扣囊,必須在運行安放之前設(shè)置要監(jiān)視的網(wǎng)絡(luò)路徑

6)“防火墻”監(jiān)視器用于度量方案運行期間防火墻服務(wù)器上的統(tǒng)計信息乎折。要激活防火墻監(jiān)視器,必須在運行方案之前設(shè)置要監(jiān)視的資源列表

7)“Web服務(wù)器資源”監(jiān)視器用于度量方案運行期間Apache侵歇、Microsoft IIS骂澄、iPlanet(SNMP)和iPlanet/Netscape Web服務(wù)器上的統(tǒng)計信息。要激活Web服務(wù)器資源監(jiān)視器惕虑,必須在運行方案之前設(shè)置要監(jiān)視的資源列表

等等...

2坟冲、在Controller中啟動監(jiān)控器

在運行過程中士修,可以監(jiān)視各個服務(wù)器的運行情況(DataBase Server、Web Server等)樱衷,監(jiān)視場景通過添加性能計數(shù)器來實現(xiàn)

3棋嘲、配置監(jiān)視器

創(chuàng)建監(jiān)視器后,可以配置監(jiān)視器矩桂,使之“個性化”沸移。通過LoadRunner可以配置聯(lián)機監(jiān)視器的設(shè)置≈读瘢可以設(shè)置圖的度量和屬性雹锣,例如采樣時間、線條顏色及圖的比例

1癞蚕、監(jiān)視器選項

在“Tools”>“Options”中的“Monitors”選項卡中進行全局采樣速率蕊爵、錯誤處理、調(diào)試和頻率設(shè)置


設(shè)定監(jiān)視器采樣頻率桦山、出錯處理等

2攒射、圖屬性

選擇“監(jiān)視器”>“聯(lián)機圖”>“配置”,或者右鍵單擊某個圖并選擇“配置”恒水,將打開“圖配置”對話框会放,其中顯示刷新率、顯示類型钉凌、X軸(圖的時間)以及Y軸比例


設(shè)定監(jiān)視器的顯示方式

高級——用戶自定義數(shù)據(jù)采集點

如果想采集的數(shù)據(jù)不在LoadRunner監(jiān)視器之列的話咧最,那就需要用戶自定義數(shù)據(jù)點。通過在腳本適當(dāng)位置插入自定義數(shù)據(jù)采集函數(shù)御雕,這樣每當(dāng)腳本運行到此處矢沿,就采集數(shù)據(jù)一次,在測試場景結(jié)束后酸纲,LoadRunner會生成圖表捣鲸,和其他監(jiān)視器數(shù)據(jù)一樣,反映被采集數(shù)據(jù)隨時間變化的趨勢福青。

主要的計數(shù)器

內(nèi)存是第一個監(jiān)視對象摄狱,確定系統(tǒng)瓶頸的第一個步驟就是排除內(nèi)存問題。內(nèi)存短缺可能會引起各種各樣的問題

內(nèi)存問題主要檢查應(yīng)用程序是否存在內(nèi)存泄漏无午。如果發(fā)生內(nèi)存泄漏,Process/private Bytes計數(shù)器和Process/Working Set 計數(shù)器的值往往會升高祝谚,同時Available Bytes 的值會降低

內(nèi)存泄漏應(yīng)該通過一個長時間的宪迟,用來研究分析當(dāng)所有內(nèi)存都耗盡時,應(yīng)用程序反應(yīng)情況的測試來檢驗

場景運行后

場景成功運行后交惯,可手工或自動設(shè)置開啟Analysis對結(jié)果數(shù)據(jù)進行分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末次泽,一起剝皮案震驚了整個濱河市穿仪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌意荤,老刑警劉巖啊片,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異玖像,居然都是意外死亡紫谷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門捐寥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笤昨,“玉大人,你說我怎么就攤上這事握恳÷髦希” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵乡洼,是天一觀的道長崇裁。 經(jīng)常有香客問我,道長束昵,這世上最難降的妖魔是什么寇壳? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮妻怎,結(jié)果婚禮上壳炎,老公的妹妹穿的比我還像新娘。我一直安慰自己逼侦,他們只是感情好匿辩,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榛丢,像睡著了一般铲球。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晰赞,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天稼病,我揣著相機與錄音,去河邊找鬼掖鱼。 笑死然走,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戏挡。 我是一名探鬼主播芍瑞,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褐墅!你這毒婦竟也來了拆檬?” 一聲冷哼從身側(cè)響起洪己,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竟贯,沒想到半個月后答捕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡屑那,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年拱镐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片齐莲。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡痢站,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出选酗,到底是詐尸還是另有隱情阵难,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布芒填,位于F島的核電站呜叫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏殿衰。R本人自食惡果不足惜朱庆,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闷祥。 院中可真熱鬧娱颊,春花似錦、人聲如沸凯砍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悟衩。三九已至剧罩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間座泳,已是汗流浹背惠昔。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挑势,地道東北人镇防。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像薛耻,于是被迫代替她去往敵國和親营罢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理饼齿,服務(wù)發(fā)現(xiàn)饲漾,斷路器,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • VU——用戶行為的模擬器2 LoadRunner之所以強大缕溉,很大原因是VU的功能強大考传。VU幾乎支持模擬當(dāng)今所有主流...
    WinterM9閱讀 963評論 0 1
  • 一:LoadRunner常見問題整理1.LR 腳本為空的解決方法:1.去掉ie設(shè)置中的第三方支持取消掉2.在系統(tǒng)屬...
    0100閱讀 4,118評論 0 11
  • “你是誰,你為什么會知道我是誰证鸥?”我一臉質(zhì)疑的問著他僚楞,映入眼簾的是一位五官秀氣,身材略高挑些的少年枉层,感覺這個聲音有...
    海嶼朝歌閱讀 203評論 0 0
  • 今天天氣很熱泉褐。 空調(diào)開到25℃,冰西瓜用勺子挖著吃鸟蜡,鍋里煮著綠豆湯膜赃,窗臺上的綠蘿長得正好。 如果這樣的夏天揉忘,有你在...
    慵覺閱讀 115評論 0 0