無標(biāo)題文章

在性能測試種最常見的問題

在軟件性能測試期間融求,開發(fā)人員會(huì)尋找性能的癥狀和問題扁藕。速度問題——例如緩慢的響應(yīng)和長時(shí)間的加載時(shí)間——經(jīng)常會(huì)被觀察和處理沮峡。但是還能看到有一些其他的性能問題:

瓶頸效應(yīng)——發(fā)生在當(dāng)數(shù)據(jù)流被中斷或者停止的時(shí)候,因?yàn)闆]有足夠的能力處理工作負(fù)載亿柑。

較差的可擴(kuò)展性——如果軟件無法處理所需數(shù)量的并發(fā)任務(wù)邢疙,結(jié)果可能導(dǎo)致延誤,可能增加錯(cuò)誤望薄,或者發(fā)生其他無法預(yù)料的行為疟游,這影響到:

○ 磁盤使用情況○ CPU使用情況○ 內(nèi)存卸扣○ 操作系統(tǒng)受限○ 糟糕的網(wǎng)絡(luò)配置

軟件配置問題——通常設(shè)置不是設(shè)置在一個(gè)足夠的級別上來處理工作負(fù)載。

硬件資源不足——性能測試可能暴露出物理內(nèi)存限制或低效率的CPU痕支。

性能測試7步

?Image credit Gateway TestLabs

同樣也被曾作測試臺颁虐,測試環(huán)境是設(shè)置軟件、硬件和網(wǎng)絡(luò)來執(zhí)行性能測試的地方采转。為了使用性能測試測試環(huán)境聪廉,開發(fā)人員可以用下面七步:

確定測試環(huán)境

確定硬件、軟件故慈、網(wǎng)絡(luò)配置和可用的工具板熊,讓測試團(tuán)隊(duì)設(shè)計(jì)測試和盡早確定性能測試挑戰(zhàn)。性能測試環(huán)境選擇包括:

○ 有少量低規(guī)格服務(wù)器的生產(chǎn)系統(tǒng)子集察绷。

○ 有少量相同規(guī)范服務(wù)器的生產(chǎn)系統(tǒng)的子集干签。

○ 生產(chǎn)系統(tǒng)的復(fù)制品。

○ 實(shí)際生產(chǎn)系統(tǒng)拆撼。

確定性能標(biāo)準(zhǔn)

除了確定性能參數(shù)容劳,例如響應(yīng)時(shí)間,吞吐量和限制之外闸度,確定性能測試的成功標(biāo)準(zhǔn)是什么竭贩。

計(jì)劃和設(shè)計(jì)性能測試

確定性能測試方案,考慮賬戶用戶的可變性莺禁、測試數(shù)據(jù)和目標(biāo)參數(shù)留量。這將創(chuàng)建一到兩個(gè)模型。

配置測試環(huán)境

準(zhǔn)備測試環(huán)境的元素和監(jiān)控資源所需的設(shè)備。

執(zhí)行測試設(shè)計(jì)

開發(fā)測試楼熄。

執(zhí)行測試

除了運(yùn)行性能測試之外忆绰,監(jiān)控和抓取生產(chǎn)數(shù)據(jù)。

分析可岂,報(bào)告错敢,再測試

分析數(shù)據(jù),分享所發(fā)現(xiàn)的缕粹。使用同樣的參數(shù)和不同的參數(shù)再次運(yùn)行性能測試稚茅。

性能測試參數(shù)測量了什么

參數(shù)需要理解性能測試的質(zhì)量和效果。除非有測量平斩,否則無法提高》逅現(xiàn)在解釋下2種定義:

測量——收集的數(shù)據(jù),例如它響應(yīng)一個(gè)請求所花的秒數(shù)双戳。

參數(shù)——使用數(shù)據(jù)的計(jì)算結(jié)果虹蒋,決定結(jié)果的質(zhì)量,例如平均響應(yīng)時(shí)間(總響應(yīng)時(shí)間/請求)

有許多方法可以測量速度飒货、可擴(kuò)展性和穩(wěn)定性魄衅,但是每輪性能測試無法使用全部方法。在性能測試中所用的參數(shù)塘辅,下面的是經(jīng)常用到的:

響應(yīng)時(shí)間:發(fā)送一個(gè)請求和獲得一個(gè)響應(yīng)的總時(shí)間晃虫。

等待時(shí)間 :這也稱為平均延遲,這告訴開發(fā)人員在發(fā)送請求后接收第一個(gè)字節(jié)需要多長時(shí)間扣墩。

平均加載時(shí)間:從用戶的角度來看哲银,交付每個(gè)請求所需的平均時(shí)間是質(zhì)量的主要指標(biāo)。

峰值響應(yīng)時(shí)間:這是完成請求所需的最長時(shí)間的測量呻惕。峰值響應(yīng)時(shí)間明顯長于平均時(shí)間荆责,這可能表明出現(xiàn)問題的異常情況。

錯(cuò)誤率:這是一個(gè)與所有請求相比亚脆,計(jì)算產(chǎn)生錯(cuò)誤的請求的百分比做院。這些錯(cuò)誤通常發(fā)生在負(fù)載超過容量的時(shí)候。

并發(fā)用戶:這是最常見的負(fù)載測量——在任意時(shí)刻有多少活躍用戶濒持,也稱為負(fù)載大小键耕。

每秒請求:多少請求被處理。

事務(wù)通過/失敻逃:對成功或不成功請求的總數(shù)的測量屈雄。

吞吐量:以千字節(jié)每秒的速度度量,吞吐量顯示測試期間使用的帶寬量官套。

CPU利用率:CPU需要多少時(shí)間來處理請求酒奶。

內(nèi)存利用率:需要多少內(nèi)存來處理請求蓖议。

性能測試最佳實(shí)踐

也許性能測試最重要的小建議就是早測試,常測試讥蟆。一個(gè)單獨(dú)的測試將無法告訴開發(fā)人員他們所需知道的全部。成功的性能測試是許多的反復(fù)測試和小測試組成的纺阔。

在開發(fā)中盡可能的早測試瘸彤。當(dāng)項(xiàng)目結(jié)束時(shí),不要等待并急于進(jìn)行性能測試笛钝。

性能測試不僅僅針對已完成的項(xiàng)目质况。測試單個(gè)單元或模塊也是有價(jià)值的。

進(jìn)行多項(xiàng)性能測試玻靡,以確保一致的發(fā)現(xiàn)和確定參數(shù)的平均值结榄。

應(yīng)用常常涉及多個(gè)系統(tǒng),例如數(shù)據(jù)庫囤捻、服務(wù)器和服務(wù)臼朗。單獨(dú)測試各個(gè)單元,而且一起測試蝎土。

Image credit Varun Kapaganty

除了反復(fù)測試视哑,通過一系列性能測試的最佳實(shí)踐,性能測試將會(huì)更加成功誊涯。

讓開發(fā)人員挡毅、IT人員和測試人員一起參與創(chuàng)建一個(gè)性能測試環(huán)境。

記住真正的用戶將使用正在進(jìn)行性能測試的這個(gè)軟件暴构。確定結(jié)果將如何影響用戶跪呈,而不僅僅是測試環(huán)境服務(wù)器。

超越性能測試參數(shù)取逾。通過計(jì)劃一個(gè)測試環(huán)境來開發(fā)一個(gè)模型耗绿,這個(gè)測試環(huán)境盡可能多地考慮用戶活動(dòng)。

基線測量為確定成功或失敗提供了一個(gè)起點(diǎn)砾隅。

性能測試最好在盡可能接近生產(chǎn)系統(tǒng)的測試環(huán)境中進(jìn)行缭乘。

將性能測試環(huán)境與用于質(zhì)量保證測試的環(huán)境隔離開來。

任何性能測試工具都不需要做任何事情琉用。有限的資源可能會(huì)進(jìn)一步限制選擇堕绩。為了更適合研究性能測試工具。

盡可能保持測試環(huán)境的一致性邑时。

計(jì)算出的平均值將提供可執(zhí)行的參數(shù)骇塘。跟蹤異常值也有價(jià)值。這些極端的測量可能暴露出可能的失敗歌馍。

當(dāng)準(zhǔn)備報(bào)告分享性能測試結(jié)果時(shí)跛十,請考慮聽眾唐含。此外,還包括報(bào)告中的任何系統(tǒng)和軟件更改沫浆。

5個(gè)性能測試常犯的錯(cuò)誤

還有一些錯(cuò)誤會(huì)導(dǎo)致性能測試時(shí)不太可靠的結(jié)果:

測試時(shí)間不足

不包括開發(fā)人員

不使用與生產(chǎn)系統(tǒng)類似的QA系統(tǒng)

優(yōu)化軟件不足

沒有故障排除的計(jì)劃

性能測試錯(cuò)誤理論

性能測試的錯(cuò)誤理論可能導(dǎo)致錯(cuò)誤或遵循性能測試最佳實(shí)踐的失敗捷枯。根據(jù)Sofia

Palamarchuk的說法,這些理念在開發(fā)軟件時(shí)可能會(huì)耗費(fèi)大量金錢和資源:

性能測試是開發(fā)的最后一步

在前面性能測試最佳實(shí)踐部分中提到過专执,預(yù)期和解決性能測試問題應(yīng)該是軟件開發(fā)的早期部分淮捆。盡早執(zhí)行解決方案將比軟件開發(fā)結(jié)束時(shí)的主要修復(fù)成本要低。

硬件越多就能解決性能問題

增加處理器本股、服務(wù)器或內(nèi)存攀痊,簡單的增加成本,不解決任何問題拄显。更多有效的軟件可以在硬件增加或改善時(shí)更好的運(yùn)行和避免潛在的問題苟径。

測試環(huán)境“非常接近”

在一個(gè)類似于生產(chǎn)環(huán)境的測試環(huán)境中進(jìn)行性能測試,是一個(gè)性能測試的最佳實(shí)踐躬审。這些元素之間的差異可以顯著地影響系統(tǒng)性能棘街。在精確的生產(chǎn)環(huán)境中進(jìn)行性能測試可能是不可能的,但是嘗試匹配:

硬件組件

操作系統(tǒng)和設(shè)置

系統(tǒng)上使用的其他應(yīng)用程序

數(shù)據(jù)庫

現(xiàn)在什么有用承边,就全面的起作用

對于推算出的結(jié)果要小心蹬碧。不要采用小的性能測試結(jié)果,并且假設(shè)當(dāng)元素發(fā)生變化時(shí)炒刁,它們將是相同的恩沽。而且,它們是在對立面工作的翔始。不要根據(jù)負(fù)載測試來推斷最小的性能和需求罗心。所有的假設(shè)都應(yīng)該通過性能測試來驗(yàn)證。

一個(gè)性能測試方案就夠了

不是每個(gè)性能問題都可以在一個(gè)性能測試方案中檢測到城瞎。但是資源確實(shí)限制了可能發(fā)生的測試數(shù)量渤闷。在中間的是一系列性能測試,它們針對的是風(fēng)險(xiǎn)最高的情況脖镀,對性能會(huì)產(chǎn)生最大的影響飒箭。此外,問題可能出現(xiàn)在設(shè)計(jì)良好之外和設(shè)計(jì)良好的性能測試蜒灰。監(jiān)視生產(chǎn)環(huán)境也可以檢測性能問題弦蹂。

測試了每個(gè)部分等于測試了全部系統(tǒng)

雖然隔離功能用于性能測試是很重要的,但是單獨(dú)的組件測試結(jié)果并不會(huì)添加到整個(gè)系統(tǒng)范圍的評估中强窖。但是凸椿,測試一個(gè)系統(tǒng)的所有功能可能是不可行的。一個(gè)完全可能的性能測試必須使用可用的資源來設(shè)計(jì)翅溺。但是要注意沒有測試過的東西脑漫。

是什么對他們有用髓抑,對我們有用

如果一組用戶確實(shí)遇到了復(fù)雜的問題或性能問題,那么不要認(rèn)為這是對所有用戶的性能測試优幸。使用性能測試來確保平臺和配置如預(yù)期的那樣工作吨拍。

軟件開發(fā)人員經(jīng)驗(yàn)豐富,不需要性能測試

缺乏經(jīng)驗(yàn)并不是造成性能問題的唯一原因网杆。即使是過去開發(fā)過免費(fèi)軟件的開發(fā)人員也犯了錯(cuò)誤羹饰。特別是當(dāng)多個(gè)并發(fā)用戶在系統(tǒng)中時(shí),更多的變量開始發(fā)揮作用跛璧。

一個(gè)完整的加載測試說明了一切

在總負(fù)載中運(yùn)行一個(gè)測試來發(fā)現(xiàn)所有性能問題是很吸引人的。除了這種測試新啼,它往往會(huì)暴露出許多性能問題追城,以至于很難將注意力集中在單個(gè)解決方案上。從較低的負(fù)載開始燥撞,逐步向上擴(kuò)展可能看起來是一個(gè)不必要的緩慢過程座柱,但是它會(huì)產(chǎn)生更容易的結(jié)果,從而更有效地排除故障物舒。

測試腳本是實(shí)際的用戶

確保測試自動(dòng)化正在以真實(shí)用戶的方式使用該軟件色洞。當(dāng)性能測試參數(shù)被更改時(shí),這一點(diǎn)尤為重要冠胯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末火诸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子荠察,更是在濱河造成了極大的恐慌置蜀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悉盆,死亡現(xiàn)場離奇詭異盯荤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)焕盟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門秋秤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脚翘,你說我怎么就攤上這事灼卢。” “怎么了来农?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵芥玉,是天一觀的道長。 經(jīng)常有香客問我备图,道長灿巧,這世上最難降的妖魔是什么赶袄? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮抠藕,結(jié)果婚禮上饿肺,老公的妹妹穿的比我還像新娘。我一直安慰自己盾似,他們只是感情好敬辣,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著零院,像睡著了一般溉跃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上告抄,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天撰茎,我揣著相機(jī)與錄音,去河邊找鬼打洼。 笑死龄糊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的募疮。 我是一名探鬼主播炫惩,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阿浓!你這毒婦竟也來了他嚷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤芭毙,失蹤者是張志新(化名)和其女友劉穎爸舒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稿蹲,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扭勉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苛聘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涂炎。...
    茶點(diǎn)故事閱讀 40,675評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖设哗,靈堂內(nèi)的尸體忽然破棺而出唱捣,到底是詐尸還是另有隱情,我是刑警寧澤网梢,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布震缭,位于F島的核電站,受9級特大地震影響战虏,放射性物質(zhì)發(fā)生泄漏拣宰。R本人自食惡果不足惜党涕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巡社。 院中可真熱鬧膛堤,春花似錦、人聲如沸晌该。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朝群。三九已至燕耿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姜胖,已是汗流浹背誉帅。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谭期,地道東北人堵第。 一個(gè)月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓吧凉,卻偏偏與公主長得像隧出,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子阀捅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評論 2 360

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

  • 測試的基本概念 測試是軟件生存周期中十分重要的一個(gè)過程胀瞪,是產(chǎn)品發(fā)布、提交給最終用戶前的穩(wěn)定化階段饲鄙。 1凄诞、 測試的分...
    金金毛閱讀 2,335評論 0 1
  • spring官方文檔:http://docs.spring.io/spring/docs/current/spri...
    牛馬風(fēng)情閱讀 1,691評論 0 3
  • JAVA面試題 1、作用域public,private,protected,以及不寫時(shí)的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,160評論 1 0
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 2,996評論 1 3
  • 1.文件類型查看(file) 參數(shù) 實(shí)例 2.文件查看 2.1 less less是more的升級版本忍级,功能強(qiáng)大帆谍。...
    惡魔緣閱讀 198評論 0 0