性能測(cè)試項(xiàng)目篇
1.性能測(cè)試怎么做的驮吱?
參考答案: 比如,我這個(gè)xxx項(xiàng)目的性能測(cè)試是這樣做的:
1.做性能需求分析而叼,挑選了用戶使用最頻繁的功能來做性能測(cè)試,比如:登陸豹悬,搜索葵陵,提交訂單,確定性能指標(biāo)瞻佛,比如:事務(wù)通過率為100%脱篙,90%的事務(wù)響應(yīng)時(shí)間不超過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.通過性能測(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é)果贝或,如果有問題(性能瓶頸),收集相關(guān)的日志和圖片提單給開發(fā)修改(*)
9.開發(fā)修改好后锐秦,回歸性能測(cè)試(*)
10.編寫性能測(cè)試報(bào)告(*)
2.如何確定系統(tǒng)能夠承載的最大用戶數(shù)傀缩?
參考答案:通過負(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í)間突然增長揍堕,那么這個(gè)拐點(diǎn)處對(duì)應(yīng)的用戶數(shù)就是系統(tǒng)能承載的最大用戶數(shù)料身。
?3.你們系統(tǒng)哪些地方(哪些功能)做了性能測(cè)試?
參考答案:我們選用了用戶使用最頻繁的功能來做性能測(cè)試衩茸,比如:登陸芹血,搜索,提交訂單楞慈。
4.你們的并發(fā)用戶數(shù)是怎么確定的幔烛?
參考答案: 1)、這種電商(面向互聯(lián)網(wǎng)用戶)的系統(tǒng)囊蓝,我們是會(huì)先上線一段時(shí)間饿悬,根據(jù)收集到的用戶訪問數(shù)據(jù)進(jìn)行預(yù)估的。 2)聚霜、從需求來的狡恬。
5.你們性能測(cè)試在哪里做的珠叔?
參考答案:我們會(huì)搭建一套獨(dú)立的性能測(cè)試環(huán)境進(jìn)行測(cè)試。
6.你們性能測(cè)試什么時(shí)間做弟劲?
參考答案:功能測(cè)試之后祷安,系統(tǒng)比較穩(wěn)定的時(shí)候再做。?***********************************************
7.怎樣分析性能測(cè)試結(jié)果兔乞?
參考答案: 思路:首先查看結(jié)果概況汇鞭,查看有沒有大面積失敗的事務(wù),有沒有大量Error的數(shù)报嵌,虛擬用戶數(shù)有沒有正常加載虱咧,點(diǎn)擊率和HTTP響應(yīng)曲率是否一致,如果都正常锚国,表明測(cè)試結(jié)果可信腕巡,可以繼續(xù)分析其他性能指標(biāo),比如血筑,確認(rèn)響應(yīng)時(shí)間绘沉,事務(wù)通過率,CPU等指標(biāo)是否滿足需求豺总;如果測(cè)試結(jié)果不可信车伞,要分析異常的原因,修改后重新測(cè)試喻喳。
在確定性能測(cè)試結(jié)果可信后另玖,如果發(fā)現(xiàn)以下問題,就按下面提供的思路來定位問題:
問題一:響應(yīng)時(shí)間不達(dá)標(biāo) 分析思路:添加“網(wǎng)頁細(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ù)庫服務(wù)器的CPU,內(nèi)存的使用率是否過高剔氏,因?yàn)檫^高的CPU塑猖,內(nèi)存必定會(huì)造成響應(yīng)時(shí)間過長,如果是web服務(wù)器的問題谈跛,就把web服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的用戶操作日志取下來羊苟,發(fā)給開發(fā)定位;如果是數(shù)據(jù)庫的問題感憾,就把數(shù)據(jù)庫服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的日志取下來蜡励,發(fā)給開發(fā)定位。 --------- 遇到下面這些問題阻桅,都可以說:把服務(wù)器對(duì)應(yīng)的日志取下來發(fā)給開發(fā)定位
?問題二:web服務(wù)器CPU超過性能測(cè)試指標(biāo)
分析思路:就把web服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的用戶操作日志取下來凉倚,發(fā)給開發(fā)定位。
問題三:數(shù)據(jù)庫CPU超過性能測(cè)試指標(biāo) 分析思路:把數(shù)據(jù)庫服務(wù)器對(duì)應(yīng)上對(duì)應(yīng)的日志取下來嫂沉,發(fā)給開發(fā)定位稽寒。
?問題四:內(nèi)存泄漏 分析思路:把內(nèi)存的heap數(shù)據(jù)取下來,在用MAT工具分析是哪個(gè)對(duì)象消耗內(nèi)存最多趟章,然后發(fā)給開發(fā)定位杏糙。
問題五:程序在單用戶場(chǎng)景下運(yùn)行成功,多用戶運(yùn)行則失敗蚓土,提示連不上服務(wù)器宏侍。
原因:程序沒有做多線程處理。
問題六:程序?qū)崿F(xiàn)的功能是蜀漆,隨機(jī)給用戶分配不同的任務(wù)谅河,單用戶運(yùn)行時(shí),能成功分配确丢;多用戶并發(fā)申請(qǐng)任務(wù)時(shí)绷耍,所有用戶得到的任務(wù)都是一樣的。
原因:程序存在線程同步的問題蠕嫁。
***********************************************
8.如果性能測(cè)試腳本出現(xiàn)錯(cuò)誤锨天,會(huì)從哪些方面分析呢?
參考答案:通過檢查回放日志剃毒,定位出錯(cuò)的位置病袄,然后做響應(yīng)的修改∽阜В回放腳本時(shí)腳本出錯(cuò)益缠,一般有兩種原因,第一基公、語法出錯(cuò)幅慌,比如,不小心多打了個(gè)符合轰豆;第二胰伍、關(guān)聯(lián)的左右邊界沒設(shè)置對(duì)齿诞,導(dǎo)致關(guān)聯(lián)失敗骂租;如果在運(yùn)行場(chǎng)景的時(shí)候祷杈,提示腳本出錯(cuò),一般就是參數(shù)化列表最后一行沒有回車渗饮,或者但汞,回車大于一個(gè),或者互站,參數(shù)值不夠用私蕾。
9.如何判斷系統(tǒng)的性能是變好了還是變壞了
參考答案:做回歸測(cè)試時(shí),看系統(tǒng)的TPS是不是增加了胡桃。
10.你們的性能測(cè)試需求哪里來的踩叭?
參考答案:我們的需求文檔上有的,不過有時(shí)候不太合理标捺,我們可能需要和BA進(jìn)行討論懊纳。比如,我之前做了一個(gè)公司內(nèi)部用的OA系統(tǒng)的性能測(cè)試時(shí)亡容,要求并發(fā)用戶200人嗤疯,我們整個(gè)公司都沒有100人,很明顯闺兢,做200人并發(fā)是沒有必要的茂缚,后來,我們只做了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ù)器返回來的值我擂,就用關(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é)果帶來影響的澈蚌。 2)、使用一個(gè)萬能的驗(yàn)證碼珠闰。
14.LoadRunner有哪些部件組成?
參考答案:1惜浅、VuGen腳本生成器2瘫辩、controller場(chǎng)景伏嗜,負(fù)載、壓力測(cè)試3伐厌、anylisise分析結(jié)果
15.簡述使用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)來做荡澎,服務(wù)器端,我們是用Jmeter來做的
17晤锹、性能測(cè)試指標(biāo)有哪些摩幔?
事物成功率、網(wǎng)絡(luò)占用率鞭铆、點(diǎn)擊率或衡、資源利用率、cpu使用率
18车遂、常見錯(cuò)誤的原因
1封断、服務(wù)器錯(cuò)誤
2、集合點(diǎn)策略的問題
3舶担、參數(shù)的組合策略
4坡疼、思考時(shí)間的錯(cuò)誤(思考時(shí)間未優(yōu)化