1、性能測(cè)試包含了哪些軟件測(cè)試(至少舉出3種)鸯隅?
負(fù)載測(cè)試澜建;壓力測(cè)試;容量測(cè)試
負(fù)載測(cè)試(Load Testing):負(fù)載測(cè)試是一種主要為了測(cè)試軟件系統(tǒng)是否達(dá)到需求文檔設(shè)計(jì)的目標(biāo)蝌以,譬如軟件在一定時(shí)期內(nèi)炕舵,最大支持多少并發(fā)用戶數(shù),軟件請(qǐng)求出錯(cuò)率等跟畅,測(cè)試的主要是軟件系統(tǒng)的性能咽筋。
壓力測(cè)試(Stress Testing):強(qiáng)度測(cè)試也就是壓力測(cè)試,壓力測(cè)試主要是為了測(cè)試硬件系統(tǒng)是否達(dá)到需求文檔設(shè)計(jì)的性能目標(biāo)徊件,譬如在一定時(shí)期內(nèi)奸攻,系統(tǒng)的cpu利用率,內(nèi)存使用率虱痕,磁盤(pán)I/O吞吐率睹耐,網(wǎng)絡(luò)吞吐量等,壓力測(cè)試和負(fù)載測(cè)試最大的差別在于測(cè)試目的不同部翘。
容量測(cè)試(Volume Testing):確定系統(tǒng)最大承受量硝训,譬如系統(tǒng)最大用戶數(shù)勺拣,最大存儲(chǔ)量押搪,最多處理的數(shù)據(jù)流量等。
或者在下面選擇幾項(xiàng):
1)并發(fā)測(cè)試 - 測(cè)試多用戶并發(fā)訪問(wèn)同一個(gè)應(yīng)用澳叉、模塊表牢、數(shù)據(jù)時(shí)是否產(chǎn)生隱藏的并發(fā)問(wèn)題
2)基準(zhǔn)測(cè)試 - 比較新的或未知測(cè)試對(duì)象與已知參照標(biāo)準(zhǔn)(如現(xiàn)有軟件或評(píng)測(cè)標(biāo)準(zhǔn))的性能窄绒。
3)爭(zhēng)用測(cè)試:- 核實(shí)測(cè)試對(duì)象對(duì)于多個(gè)主角對(duì)相同資源(數(shù)據(jù)記錄、內(nèi)存等)的請(qǐng)求的處理是否可以接受崔兴。
4)性能配置 - 核實(shí)在操作條件保持不變的情況下彰导,測(cè)試對(duì)象在使用不同配置時(shí)其性能行為的可接受性。
5)負(fù)載測(cè)試- 核實(shí)在保持配置不變的情況下敲茄,測(cè)試對(duì)象在不同操作條件(如不同用戶數(shù)位谋、事務(wù)數(shù)等)下性能行為的可接受性。
6)強(qiáng)度測(cè)試- 核實(shí)測(cè)試對(duì)象性能行為在異逞吡牵或極端條件(如資源減少或用戶數(shù)過(guò)多)之下的可接受性掏父。
7)容量測(cè)試- 核實(shí)測(cè)試用戶同時(shí)使用軟件程序的最大數(shù)量
2、請(qǐng)問(wèn)什么是性能測(cè)試秆剪、負(fù)載測(cè)試赊淑、壓力測(cè)試爵政?
性能測(cè)試是通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試陶缺。負(fù)載測(cè)試钾挟、壓力測(cè)試參考答案如上題。
3饱岸、在給定的測(cè)試環(huán)境下進(jìn)行掺出,考慮被測(cè)系統(tǒng)的業(yè)務(wù)壓力量和典型場(chǎng)景?
負(fù)載測(cè)試苫费。
負(fù)載測(cè)試是用來(lái)測(cè)定系統(tǒng)飽和狀態(tài)汤锨、確定閥值。其特點(diǎn)有:
1)這種方法的目的是找到系統(tǒng)處理能力的極限百框;通過(guò)“檢測(cè)闲礼、加壓、閥值”手段找到如“響應(yīng)時(shí)間不超過(guò)10秒”琅翻,“平均CPU利用率低于65%”等指標(biāo)位仁。
2)這種性能測(cè)試方法需要在給定的測(cè)試環(huán)境下進(jìn)行柑贞,通常也需要考慮被測(cè)系統(tǒng)的業(yè)務(wù)壓力量和典型場(chǎng)景方椎、另外HP Mercury LoadRuner在使用該方法進(jìn)行“加壓”的時(shí)候必須選擇典型場(chǎng)景。
3)這種性能測(cè)試方法一般用來(lái)了解系統(tǒng)的性能容量钧嘶,或者是配合性能調(diào)優(yōu)的時(shí)候來(lái)使用棠众。特別是該的Weblogic 和庫(kù)的性能調(diào)優(yōu)。
4有决、什么時(shí)候可以開(kāi)始執(zhí)行性能測(cè)試闸拿?
在產(chǎn)品相對(duì)比較穩(wěn)定,功能測(cè)試結(jié)束后书幕。靈活性比較強(qiáng)新荤。
5、簡(jiǎn)述性能測(cè)試的步驟台汇。(文末有刷題筆記共享)
熟悉應(yīng)用
了解應(yīng)用的架構(gòu)苛骨、功能邏輯
測(cè)試需求:
1)需要將開(kāi)發(fā)給定的需求轉(zhuǎn)為吞吐量和響應(yīng)時(shí)間。
2)根據(jù)測(cè)試目的苟呐,細(xì)化需求
測(cè)試準(zhǔn)備:
測(cè)試準(zhǔn)備包括測(cè)試客戶端機(jī)器準(zhǔn)備痒芝、測(cè)試數(shù)據(jù)準(zhǔn)備、測(cè)試腳本準(zhǔn)備牵素。
測(cè)試執(zhí)行:
測(cè)試的執(zhí)行中严衬,需要監(jiān)控測(cè)試客戶端和服務(wù)器性能,監(jiān)控服務(wù)器端應(yīng)用情況:
1)客戶端的系統(tǒng)資源(cpu笆呆、io请琳、memory)情況
2)服務(wù)端的系統(tǒng)資源(cpu粱挡、io、memory)情況
3)服務(wù)器的jvm運(yùn)行情況
4)服務(wù)端的應(yīng)用情況俄精,看是否有異常
5)響應(yīng)時(shí)間抱怔、吞吐量等指標(biāo)
6)系統(tǒng)資源監(jiān)控,linux下可以采用的工具有:vmstat嘀倒、top屈留、meminfo等。
7)JVM的監(jiān)控测蘑,可以用jprofiler工具灌危,linux下面的jmap、jhat等碳胳。
8)響應(yīng)時(shí)間勇蝙、吞吐量等,由grinder提供挨约。
上述這些信息味混,一般在測(cè)試結(jié)束后,均需要?dú)w檔整理诫惭,已備后續(xù)詳細(xì)分析翁锡。
我們自己開(kāi)發(fā)一套腳本,用于以固定的頻率獲取測(cè)試客戶端和服務(wù)器的vmstat和top輸出夕土、grinder的log馆衔,并從中截取有用信息保存,用于事后分析怨绣。
每次測(cè)試運(yùn)行完以后角溃,肯定會(huì)增加很多數(shù)據(jù),需要考慮本次執(zhí)行對(duì)數(shù)據(jù)量的影響篮撑,如果數(shù)據(jù)量的變化對(duì)后續(xù)測(cè)試會(huì)有影響减细,則需要清理數(shù)據(jù)。
六赢笨、你如何識(shí)別性能瓶頸未蝌?
RBI方法:重點(diǎn)測(cè)試“吞吐量”指標(biāo),因?yàn)镽BI認(rèn)定80%的系統(tǒng)性能瓶頸由吞吐量造成质欲。按照網(wǎng)絡(luò)树埠、硬件、數(shù)據(jù)庫(kù)嘶伟、應(yīng)用服務(wù)器怎憋、代碼的順序自上而下分析性能工具:IBM、HP、OpenSource工具都支持绊袋。需使用分析模塊毕匀、根據(jù)Weblogic、Oracle區(qū)別有專(zhuān)門(mén)的工具實(shí)現(xiàn)RBI癌别。
七皂岔、性能測(cè)試時(shí),是不是必須進(jìn)行參數(shù)化展姐?為什么要?jiǎng)?chuàng)建參數(shù)躁垛?LoadRunner中如何創(chuàng)建參數(shù)?
是圾笨。模擬用戶真實(shí)的業(yè)務(wù)操作教馆。創(chuàng)建參數(shù)列表,用參數(shù)替換固定的文本擂达。
八土铺、你如何設(shè)計(jì)負(fù)載?標(biāo)準(zhǔn)是什么板鬓?
負(fù)載測(cè)試計(jì)劃多少用戶數(shù)量悲敷、使用什么類(lèi)型的機(jī)器、以及在什么環(huán)境下進(jìn)行俭令。主要基于兩個(gè)重要的文檔后德,任務(wù)分布圖和事務(wù)信息,任務(wù)分布圖告訴我們?cè)谪?fù)載時(shí)間段內(nèi)唤蔗,某一個(gè)事務(wù)使用的用戶數(shù)探遵,高峰使用率及低峰使用率均來(lái)自該文檔窟赏;事務(wù)信息告訴我們事務(wù)名及優(yōu)先級(jí)妓柜,在設(shè)計(jì)場(chǎng)景時(shí)可以參考。
九涯穷、解釋5個(gè)常用的性能指標(biāo)的名稱與具體含義棍掐。
響應(yīng)時(shí)間、并發(fā)用戶數(shù)拷况,吞吐量作煌,性能計(jì)數(shù)器,TPS赚瘦,HPS
響應(yīng)時(shí)間:指的是“系統(tǒng)響應(yīng)時(shí)間”定義為應(yīng)用系統(tǒng)從發(fā)出請(qǐng)求開(kāi)始到客戶端接收到響應(yīng)所消耗的時(shí)間粟誓。把它作為用戶視角的軟件性能的主要體現(xiàn)。
最大并發(fā)用戶數(shù):有兩種理解方式起意,一種是從業(yè)務(wù)的角度來(lái)模擬真實(shí)的用戶訪問(wèn)鹰服,體現(xiàn)的是業(yè)務(wù)并發(fā)用戶數(shù),指在同一時(shí)間段內(nèi)訪問(wèn)系統(tǒng)的用戶數(shù)量。
另一種是從服務(wù)器端承受的壓力來(lái)考慮悲酷,這里的“并發(fā)用戶數(shù)”指的是同時(shí)向服務(wù)器端發(fā)出請(qǐng)求的客戶數(shù)套菜,該概念一般結(jié)合并發(fā)測(cè)試(Concurrency Testing)使用,體現(xiàn)的是服務(wù)端承受的最大并發(fā)訪問(wèn)數(shù)设易。
吞吐量:是指“單位時(shí)間內(nèi)系統(tǒng)處理的客戶請(qǐng)求的數(shù)量”逗柴,直接體現(xiàn)軟件系統(tǒng)的性能承載能力。
性能計(jì)數(shù)器(Counter)是描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)顿肺。例如戏溺,對(duì)Windows 系統(tǒng)來(lái)說(shuō),使用內(nèi)存數(shù)(Memory In Usage)屠尊,進(jìn)程時(shí)間(Total Process Time)等都是常見(jiàn)的計(jì)數(shù)器于购。
思考時(shí)間(Think Time),也被稱為“休眠時(shí)間”知染,從業(yè)務(wù)的角度來(lái)說(shuō)肋僧,這個(gè)時(shí)間指的是用戶在進(jìn)行操作時(shí),每個(gè)請(qǐng)求之間的間隔時(shí)間控淡。從自動(dòng)化測(cè)試實(shí)現(xiàn)的角度來(lái)說(shuō)嫌吠,要真實(shí)地模擬用戶操作,就必須在測(cè)試腳本中讓各個(gè)操作之間等待一段時(shí)間掺炭,體現(xiàn)在腳本中辫诅,具體而言,就是在操作之間放置一個(gè)Think 的函數(shù)涧狮,使得腳本在執(zhí)行兩個(gè)操作之間等待一段時(shí)間炕矮。
TPS:Transaction per second,每秒鐘系統(tǒng)能夠處理的交易或者事務(wù)的數(shù)量者冤。它是衡量系統(tǒng)處理能力的重要指標(biāo)肤视。
點(diǎn)擊率:HPS,每秒鐘用戶向WEB服務(wù)器提交的HTTP請(qǐng)求數(shù)涉枫。
十邢滑、描述不同的角色(用戶、產(chǎn)品開(kāi)發(fā)人員愿汰、系統(tǒng)管理員)各自關(guān)注的軟件性能要點(diǎn)困后。
用戶:重點(diǎn)關(guān)注打開(kāi)速度及響應(yīng)時(shí)間
開(kāi)發(fā):重點(diǎn)關(guān)注響應(yīng)時(shí)間和數(shù)據(jù)庫(kù)交互
管理員:重點(diǎn)關(guān)注用戶感受到的軟件性能;如何利用管理功能進(jìn)行性能調(diào)優(yōu)衬廷;如何利用其他軟硬件手段進(jìn)行性能調(diào)優(yōu)
十一摇予、請(qǐng)分別針對(duì)性能測(cè)試、負(fù)載測(cè)試和壓力測(cè)試試舉一個(gè)簡(jiǎn)單的例子吗跋?
性能測(cè)試?yán)樱汗鹃_(kāi)發(fā)了一個(gè)小型項(xiàng)目管理系統(tǒng)侧戴,上線前需要做負(fù)載、壓力、大數(shù)據(jù)量救鲤、強(qiáng)度測(cè)試等久窟。
負(fù)載測(cè)試:逐步加壓,從而得到“響應(yīng)時(shí)間不超過(guò)10秒”本缠,“服務(wù)器平均CPU利用率低于85%”等指標(biāo)閥值斥扛。
壓力測(cè)試:逐步加壓,從而使“響應(yīng)時(shí)間超過(guò)10秒”丹锹,“服務(wù)器平均CPU利用率高于90%”等指標(biāo)來(lái)確定系統(tǒng)能承受的最大負(fù)載量稀颁。
十二、請(qǐng)問(wèn)您是如何得到性能測(cè)試需求楣黍?怎樣針對(duì)需求設(shè)計(jì)匾灶、分析是否達(dá)到需求?
在查看需求文檔租漂,從中提取性能測(cè)試需求阶女,與用戶交流,了解實(shí)際使用情況哩治。結(jié)合業(yè)務(wù)信息設(shè)計(jì)操作場(chǎng)景總結(jié)出需測(cè)試的性能關(guān)鍵指標(biāo)秃踩。執(zhí)行用例后根據(jù)提取關(guān)鍵性能指標(biāo)來(lái)分析是否滿足性能需求
最后
在這里,也就弱弱介紹一個(gè)真正的學(xué)習(xí)python自動(dòng)化的小卡片吧业筏,超適合的進(jìn)階課程:教程+案例+筆記憔杨,這種可以系統(tǒng)的學(xué),見(jiàn)效快蒜胖,最重要的可以給你增加信心消别,你更容易把這門(mén)技術(shù)學(xué)到手。一個(gè)人摸索台谢,可能遇到很多過(guò)不去問(wèn)題寻狂,有些自己過(guò)不去的,容易失去信心跟耐心对碌,很容易放棄的荆虱,這是我的個(gè)人經(jīng)歷。
面試朽们,面試題是必不可少的一個(gè)環(huán)節(jié),給大家推薦一份大佬的刷題筆記:點(diǎn)擊查看主頁(yè)或者簡(jiǎn)信留言作者免費(fèi)的哦
學(xué)習(xí)的路上很孤單也挺累诉位,但發(fā)工資的那一刻骑脱,真香!
大家加油苍糠!同時(shí)也求個(gè)贊(/≧▽≦/)