1.性能測(cè)試怎么做的冈涧?
參考答案:
比如茂附,我這個(gè)xxx項(xiàng)目的性能測(cè)試是這樣做的:
1.做性能需求分析,挑選了用戶使用最頻繁的功能來(lái)做性能測(cè)試督弓,比如:登陸营曼,搜索,提交訂單愚隧,確定性能指標(biāo)蒂阱,比如:事務(wù)通過(guò)率為100%,90%的事務(wù)響應(yīng)時(shí)間不超過(guò)5秒狂塘,并發(fā)用戶為1000人录煤,CPU和內(nèi)存的使用率為70%以下(*)
2.性能測(cè)試計(jì)劃,明確測(cè)試時(shí)間(通常在功能穩(wěn)定后荞胡,如第一輪測(cè)試后進(jìn)行)和測(cè)試環(huán)境和測(cè)試工具的選擇
3.編寫性能測(cè)試用例
4.搭建性能測(cè)試環(huán)境妈踊,準(zhǔn)備好性能測(cè)試數(shù)據(jù)(*)
5.通過(guò)性能測(cè)試用例,編寫性能測(cè)試腳本
6.性能測(cè)試腳本進(jìn)行調(diào)優(yōu)泪漂,設(shè)置檢查點(diǎn)廊营、參數(shù)化、關(guān)聯(lián)萝勤、集合點(diǎn)露筒、事務(wù),調(diào)整思考時(shí)間敌卓,刪除冗余的腳本等(*)
7.設(shè)計(jì)性能測(cè)試場(chǎng)景慎式,使用nmon工具監(jiān)控服務(wù)器,運(yùn)行測(cè)試場(chǎng)景(*)
8.分析性能測(cè)試結(jié)果趟径,如果有問(wèn)題(性能瓶頸)瘪吏,收集相關(guān)的日志和圖片提單給開(kāi)發(fā)修改(*)
9.開(kāi)發(fā)修改好后,回歸性能測(cè)試(*)
10.編寫性能測(cè)試報(bào)告(*)
2.如何確定系統(tǒng)能夠承載的最大用戶數(shù)舵抹?
參考答案:通過(guò)負(fù)載測(cè)試肪虎,不斷增加用戶數(shù),隨著用戶數(shù)的增加惧蛹,各項(xiàng)性能指標(biāo)也會(huì)相應(yīng)產(chǎn)生變化扇救,當(dāng)出現(xiàn)了性能拐點(diǎn)刑枝,比如,當(dāng)用戶數(shù)達(dá)到某個(gè)數(shù)量級(jí)時(shí)迅腔,響應(yīng)時(shí)間突然增長(zhǎng)装畅,那么這個(gè)拐點(diǎn)處對(duì)應(yīng)的用戶數(shù)就是系統(tǒng)能承載的最大用戶數(shù)。
3.你們系統(tǒng)哪些地方(哪些功能)做了性能測(cè)試沧烈?
參考答案:我們選用了用戶使用最頻繁的功能來(lái)做性能測(cè)試掠兄,比如:登陸,搜索锌雀,提交訂單蚂夕。
4.你們的并發(fā)用戶數(shù)是怎么確定的?
參考答案:
1)腋逆、這種電商(面向互聯(lián)網(wǎng)用戶)的系統(tǒng)婿牍,我們是會(huì)先上線一段時(shí)間,根據(jù)收集到的用戶訪問(wèn)數(shù)據(jù)進(jìn)行預(yù)估的惩歉。
2)等脂、從需求來(lái)的。
5.你們性能測(cè)試在哪里做的撑蚌?
參考答案:我們會(huì)搭建一套獨(dú)立的性能測(cè)試環(huán)境進(jìn)行測(cè)試上遥。
6.你們性能測(cè)試什么時(shí)間做?
參考答案:功能測(cè)試之后争涌,系統(tǒng)比較穩(wěn)定的時(shí)候再做粉楚。
***********************************************?
7.怎樣分析性能測(cè)試結(jié)果?
參考答案:
? ? 思路:首先查看結(jié)果概況第煮,查看有沒(méi)有大面積失敗的事務(wù)解幼,有沒(méi)有大量Error的數(shù),虛擬用戶數(shù)有沒(méi)有正常加載包警,點(diǎn)擊率和HTTP響應(yīng)曲率是否一致,如果都正常底靠,表明測(cè)試結(jié)果可信害晦,可以繼續(xù)分析其他性能指標(biāo),比如暑中,確認(rèn)響應(yīng)時(shí)間壹瘟,事務(wù)通過(guò)率,CPU等指標(biāo)是否滿足需求鳄逾;如果測(cè)試結(jié)果不可信稻轨,要分析異常的原因,修改后重新測(cè)試雕凹。
在確定性能測(cè)試結(jié)果可信后殴俱,如果發(fā)現(xiàn)以下問(wèn)題政冻,就按下面提供的思路來(lái)定位問(wèn)題:
問(wèn)題一:響應(yīng)時(shí)間不達(dá)標(biāo)
分析思路:添加“網(wǎng)頁(yè)細(xì)分圖”,選中要細(xì)分的事務(wù)线欲,選擇”第一次緩沖時(shí)間”明场,查看事務(wù)所消耗的時(shí)間主要在網(wǎng)絡(luò)傳輸還是服務(wù)器,如果是網(wǎng)絡(luò)李丰,就結(jié)合Throughput(網(wǎng)絡(luò)吞吐量)圖苦锨,計(jì)算帶寬是否存在瓶頸,如果存在瓶頸趴泌,就要考慮增加帶寬舟舒,或?qū)?shù)據(jù)的傳輸進(jìn)行壓縮處理;如果不存在瓶頸,那么衰伯,可能是網(wǎng)路不穩(wěn)定導(dǎo)致虱而。如果主要時(shí)間是消耗在服務(wù)器上,就要分別查看web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的CPU莺治,內(nèi)存的使用率是否過(guò)高,因?yàn)檫^(guò)高的CPU帚稠,內(nèi)存必定會(huì)造成響應(yīng)時(shí)間過(guò)長(zhǎng)谣旁,如果是web服務(wù)器的問(wèn)題,就把web服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的用戶操作日志取下來(lái)滋早,發(fā)給開(kāi)發(fā)定位榄审;如果是數(shù)據(jù)庫(kù)的問(wèn)題,就把數(shù)據(jù)庫(kù)服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的日志取下來(lái)杆麸,發(fā)給開(kāi)發(fā)定位搁进。
--------- 遇到下面這些問(wèn)題,都可以說(shuō):把服務(wù)器對(duì)應(yīng)的日志取下來(lái)發(fā)給開(kāi)發(fā)定位
問(wèn)題二:web服務(wù)器CPU超過(guò)性能測(cè)試指標(biāo)
分析思路:就把web服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的用戶操作日志取下來(lái)昔头,發(fā)給開(kāi)發(fā)定位饼问。
問(wèn)題三:數(shù)據(jù)庫(kù)CPU超過(guò)性能測(cè)試指標(biāo)
分析思路:把數(shù)據(jù)庫(kù)服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的日志取下來(lái),發(fā)給開(kāi)發(fā)定位揭斧。
問(wèn)題四:內(nèi)存泄漏
分析思路:把內(nèi)存的heap數(shù)據(jù)取下來(lái)莱革,在用MAT工具分析是哪個(gè)對(duì)象消耗內(nèi)存最多,然后發(fā)給開(kāi)發(fā)定位讹开。
問(wèn)題五:程序在單用戶場(chǎng)景下運(yùn)行成功盅视,多用戶運(yùn)行則失敗,提示連不上服務(wù)器旦万。
? 原因:程序沒(méi)有做多線程處理闹击。
問(wèn)題六:程序?qū)崿F(xiàn)的功能是,隨機(jī)給用戶分配不同的任務(wù)成艘,單用戶運(yùn)行時(shí)赏半,能成功分配贺归;多用戶并發(fā)申請(qǐng)任務(wù)時(shí),所有用戶得到的任務(wù)都是一樣的除破。
? 原因:程序存在線程同步的問(wèn)題牧氮。
***********************************************
8.如果性能測(cè)試腳本出現(xiàn)錯(cuò)誤,會(huì)從哪些方面分析呢瑰枫?
參考答案:通過(guò)檢查回放日志踱葛,定位出錯(cuò)的位置,然后做響應(yīng)的修改光坝∈蹋回放腳本時(shí)腳本出錯(cuò),一般有兩種原因盯另,第一性含、語(yǔ)法出錯(cuò),比如鸳惯,不小心多打了個(gè)符合商蕴;第二、關(guān)聯(lián)的左右邊界沒(méi)設(shè)置對(duì)芝发,導(dǎo)致關(guān)聯(lián)失斝魃獭;如果在運(yùn)行場(chǎng)景的時(shí)候辅鲸,提示腳本出錯(cuò)格郁,一般就是參數(shù)化列表最后一行沒(méi)有回車,或者独悴,回車大于一個(gè)例书,或者,參數(shù)值不夠用刻炒。
9.如何判斷系統(tǒng)的性能是變好了還是變壞了
參考答案:做回歸測(cè)試時(shí)决采,看系統(tǒng)的TPS是不是增加了。
10.你們的性能測(cè)試需求哪里來(lái)的落蝙?
參考答案:我們的需求文檔上有的织狐,不過(guò)有時(shí)候不太合理,我們可能需要和BA進(jìn)行討論筏勒。比如,我之前做了一個(gè)公司內(nèi)部用的OA系統(tǒng)的性能測(cè)試時(shí)旺嬉,要求并發(fā)用戶200人管行,我們整個(gè)公司都沒(méi)有100人,很明顯邪媳,做200人并發(fā)是沒(méi)有必要的捐顷,后來(lái)荡陷,我們只做了50人并發(fā)。
11.如何實(shí)現(xiàn)200用戶的并發(fā)迅涮?
參考答案:先在腳本對(duì)應(yīng)的請(qǐng)求前面添加集合點(diǎn)废赞,再在controller中將集合點(diǎn)的釋放策略設(shè)置為等到200人到達(dá)集合點(diǎn)的時(shí)候在釋放。
12.什么情況下要做關(guān)聯(lián)叮姑,關(guān)聯(lián)是怎么做的唉地?
參考答案:當(dāng)腳本需要使用服務(wù)器返回來(lái)的值,就用關(guān)聯(lián)传透。
(手工關(guān)聯(lián)的步驟--可以這樣回答:錄制兩個(gè)腳本耘沼,對(duì)比找到需要關(guān)聯(lián)的值,在返回該值的函數(shù)前插入關(guān)聯(lián)函數(shù)朱盐,用關(guān)聯(lián)函數(shù)名替換腳本中的所有動(dòng)態(tài)值)
13.有驗(yàn)證碼的功能群嗤,怎么做性能測(cè)試?
參考答案:
1)兵琳、將驗(yàn)證碼暫時(shí)屏蔽狂秘,完成性能測(cè)試后,再恢復(fù)躯肌。注意:屏蔽驗(yàn)證碼是不會(huì)給性能測(cè)試的結(jié)果帶來(lái)影響的者春。
2)、使用一個(gè)萬(wàn)能的驗(yàn)證碼羡榴。
14.LoadRunner有哪些部件組成?
參考答案:VuGen(腳本生成器)碧查、Controller(場(chǎng)景、負(fù)載壓力測(cè)試)校仑、Analysis(分析結(jié)果)
15.簡(jiǎn)述使用Loadrunner的步驟
參考答案:
新建腳本 -- 選擇協(xié)議 — 腳本錄制設(shè)置 — 錄制腳本—調(diào)試腳本 — 場(chǎng)景設(shè)計(jì)和運(yùn)行 — 結(jié)果分析忠售。
16、你們性能測(cè)試做的是前臺(tái)還是后臺(tái)迄沫?
參考答案:
BS的項(xiàng)目:我們這個(gè)項(xiàng)目做的是后臺(tái)服務(wù)器的性能稻扬,瀏覽器端不做性能測(cè)試;
APP的項(xiàng)目:手機(jī)端和服務(wù)器端的性能都做羊瘩,手機(jī)端我們是用monkey(或者 AppPerformace)來(lái)做泰佳,服務(wù)器端,我們是用Jmeter來(lái)做的
17尘吗、性能測(cè)試指標(biāo)有哪些逝她?
事務(wù)成功率,網(wǎng)絡(luò)占用率睬捶,點(diǎn)擊率黔宛,資源利用率,CPU的使用率擒贸,響應(yīng)時(shí)間等