jmeter性能测试面试题二【多测师_王sir】
生活随笔
收集整理的這篇文章主要介紹了
jmeter性能测试面试题二【多测师_王sir】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.什么是性能測試?
測試系統(tǒng)有沒有性能問題
考慮時間,空間
服務(wù)端資源是否足夠?
響應(yīng)時間是否超時?
系統(tǒng)是否足夠穩(wěn)定?2.性能測試的核心原則是什么?
基于協(xié)議,多線程,場景設(shè)計
協(xié)議:所有的請求都是基于協(xié)議發(fā)出去 http,https,udp,tcp,mqtt
多線程:壓力測試是基于java多線程原理,通過線程去模擬用戶的行為
基于場景:控制器+定時器設(shè)計各種場景滿足壓測要求并發(fā)場景負載場景穩(wěn)定性壓力測試。。。。。。
jmeter工作原理:基于協(xié)議,通過多線程的方式模擬用戶行為,設(shè)計各種場景壓測服務(wù)端,得到性能數(shù)據(jù),分析性能瓶頸3.性能測試的應(yīng)用領(lǐng)域有哪些?
能力驗證:乙方向甲方交付項目時,聲明項目的性能數(shù)據(jù)。
例如:向甲方聲明能支撐500人1s內(nèi)同時登錄,響應(yīng)時間在2s以內(nèi)。出具性能測試報告去證明我聲明的能力。瓶頸分析:在能力驗證的過程中可能會發(fā)現(xiàn)一些瓶頸,通過技術(shù)手段分析瓶頸,得到分析數(shù)據(jù),為后續(xù)調(diào)優(yōu)做理論依據(jù)。響應(yīng)超時:什么負載量的時候出現(xiàn)超時現(xiàn)象?tps達到瓶頸,波動劇烈:tps瓶頸點在哪里?,在什么地方出現(xiàn)性能衰減?性能調(diào)優(yōu):在得到瓶頸分析數(shù)據(jù)之后,做性能調(diào)優(yōu)。降低超時,提高tps,減少抖動。。容量規(guī)劃:基于未來。為將來的用戶激增提前做準(zhǔn)備數(shù)據(jù)庫擴容服務(wù)端硬件優(yōu)化(增加cpu,擴充磁盤,提升帶寬,分布式,負載均衡。。。)4.壓力工具的工作原理是什么?
jmeter工作原理:基于協(xié)議,通過多線程的方式模擬用戶行為,設(shè)計各種場景壓測服務(wù)端,得到性能數(shù)據(jù),分析性能瓶頸5.性能測試基本思路是什么?測什么:明確測試目標(biāo)(明確需求)
怎么測:怎么設(shè)計場景?測試計劃,測試用例,測試方案數(shù)據(jù)準(zhǔn)備參數(shù)化,表達式,斷言場景設(shè)計(并發(fā),負載,壓測)得到性能測試結(jié)果
測試結(jié)果驗證驗證結(jié)果數(shù)據(jù)是否符合預(yù)期如果預(yù)期響應(yīng)時間是3s,但是實際結(jié)果響應(yīng)時間達到了5s 不合格預(yù)期最大tps需要達到500,但是實際最大的tps只有300 不合格6.交付一個性能測試項目,請闡述你的性能測試流程1:明確測試需求2:基于需求設(shè)計測試用例,測試方案,測試計劃3:準(zhǔn)備測試數(shù)據(jù),測試賬號(預(yù)估并發(fā)量),設(shè)計測試腳本(參數(shù)化,表達式,斷言,控制器)4:運行測試腳本,數(shù)據(jù)監(jiān)聽(響應(yīng)時間,tps,活動線程),結(jié)果分析(判斷性能瓶頸)5:基本性能瓶頸做調(diào)優(yōu)(tomcat線程池,jvm內(nèi)存,swap內(nèi)存,帶寬)6:調(diào)優(yōu)之后做性能回歸,和前期結(jié)果做對比,是否有明顯的優(yōu)化。7:代碼問題優(yōu)化(自己定位或者交給開發(fā)定位)8:性能測試報告。整理性能測試數(shù)據(jù)(包括調(diào)優(yōu)之前和調(diào)優(yōu)之后)9:構(gòu)建持久化的性能監(jiān)聽平臺,監(jiān)聽線上的服務(wù)性能性能測試貫穿項目始終,從需求分析到上線之后,都需要持續(xù)跟蹤分析發(fā)現(xiàn)問題,響應(yīng)解決問題7.測試哪些關(guān)鍵場景?瀏覽器層面:web端和app端(H5頁面)關(guān)注首屏?xí)r間(頁面打開到完全呈現(xiàn))腳本加載時間,cpu占用,fps頻率(幀頻率越高,流暢度越高)接口層面權(quán)限劃分普通用戶權(quán)限(非常多的的用戶)大并發(fā)場景:包括查詢,表單提交數(shù)據(jù)量也需要考慮(電商平臺,門戶網(wǎng)站)負載場景:用戶長期在線訪問,對資源的要求會很高管理員權(quán)限(幾個用戶)大數(shù)據(jù)量的場景(管理幾十萬用戶數(shù)據(jù))列表查詢時間,分頁時間數(shù)據(jù)下載(excel,數(shù)據(jù)導(dǎo)出)是否會內(nèi)存溢出mysql數(shù)據(jù)庫是否會死鎖,sql查詢是否異常超管(1個)大數(shù)據(jù)量的場景(管理幾十萬用戶數(shù)據(jù))8.前端性能測試關(guān)注哪些點?了解哪些前端性能優(yōu)化方法?首屏?xí)r間:頁面完全展現(xiàn)需要的時間白屏?xí)r間:頁面第一幀畫面出現(xiàn)之前的時間腳本加載時間,fps,cpu,network前端性能優(yōu)化:使用緩存,壓縮圖片,壓縮js,css,gc回收優(yōu)化,js前置9.解釋常用的性能指標(biāo)的名稱與具體含義用戶角度響應(yīng)時間(rt)從發(fā)起請求,到接口響應(yīng),到頁面渲染錯誤率(error)服務(wù)端角度rps(request persecond)每秒請求數(shù),用戶發(fā)起的tps(transaction persecond)每秒完成事物數(shù),服務(wù)端決定的通過rps指標(biāo),來測試tps,從而衡量服務(wù)端性能。瀏覽器層面qps(query perecond)每秒查詢接口數(shù)(uv pv)刷新一次頁面,調(diào)用了三個接口hps(hit persecond)每秒點擊率10.性能測試類型有哪些?按順序描述
并發(fā)數(shù)先確定基準(zhǔn)測試(得到性能數(shù)據(jù),為后續(xù)的回歸測試做理論依據(jù))單接口基準(zhǔn)測試容量基準(zhǔn)測試負載測試不斷增加負載量(壓力),一直到瓶頸點出現(xiàn),可以停止壓力測試1:穩(wěn)定性壓測假設(shè)瓶頸點在300tps,用對應(yīng)的負載量的80%-90%做持續(xù)性(幾小時或者幾天)的壓測。目的是發(fā)現(xiàn)穩(wěn)定性問題(內(nèi)存溢出等等)2:破壞性壓測用對應(yīng)負載量的100%或者150%做壓測,直接讓服務(wù)器出現(xiàn)異常。目的是及早的暴露問題失效恢復(fù)測試服務(wù)端出現(xiàn)異常之后能不能及時恢復(fù)11.什么是集合點?設(shè)置集合點有什么意義?jmeter中如何設(shè)置集合點?集合點更多的運用在并發(fā)測試為了讓壓力盡可能的落在同一個時間點12.什么是固定等待和隱式等待?固定等待:超時時間=0線程數(shù)一定要>=集合數(shù)。一定要集合完畢才發(fā)起請求隱式等待:超時時間>0達到超時時間范圍,無論集合多少線程都會發(fā)起請求13.什么是負載?有哪些負載模式?負載就是壓力1:用戶模式。不斷增加的用戶數(shù)帶來的壓力1個用戶1s內(nèi)發(fā)起20個請求,rps=20/s2:請求模式,不斷增加的請求數(shù)帶來的壓力10個用戶,1s用戶1s內(nèi)發(fā)起1個請求,rps=10/s不能單純的通用用戶去衡量壓力,直接通過每秒請求數(shù)去衡量壓力。直接從服務(wù)端考慮14.你在測試中遇到過哪些性能問題?h5頁面響應(yīng)時間過長h5的分頁經(jīng)常卡死,sql查詢過多,數(shù)據(jù)量過大導(dǎo)出excel時間過長,頁面503,后臺報內(nèi)存溢出功能涉及到算法的時候,一定要在測試環(huán)境用大量數(shù)據(jù)去模擬123456789234567893456789點擊按鈕,任意兩個數(shù)字之和等于5,就展示出來只要點擊,后臺cpu立刻就是300%15.你在性能場景設(shè)計中用到哪些方法?參數(shù)化,關(guān)聯(lián),斷言,jdbc連接16.什么是關(guān)聯(lián),如何動態(tài)關(guān)聯(lián)?有哪幾種關(guān)聯(lián)的方法?正則關(guān)聯(lián),json關(guān)聯(lián),xpath關(guān)聯(lián)保證接口上下游是銜接的17.jmeter負載測試中怎么保持session會話?${__setProperty(cookie${counter},${COOKIE_beegosessionID},)} 存儲session${__P(cookie,)} 從屬性表提取session18.什么是Ramp up?你如何設(shè)置?線程啟動的時間ramp越大,單位時間內(nèi)的壓力越小。ramp=0表示單位時間壓力無窮大,線程啟動時間無窮小。ramp=0不代表時間為0
19.如何識別性能瓶頸?1: 隨著負載不斷升高,tps也是不斷升高的,正常邏輯2:隨著負載不斷增加,tps不再增加,甚至下降。表示單位線程的tps實際在衰減。tps的瓶頸點20.非gui下如何參數(shù)化運行場景?----------------------------------------------------------------------------------
----------------------------------------------------------------------------------21.簡述堆區(qū)的空間分配和gc原理年輕代1個eden2個存活區(qū)(S1和S2)老年代GC(垃圾回收)內(nèi)存溢出:OOM(OUT OF memory)1:運行內(nèi)存>當(dāng)前空間剩余內(nèi)存2:垃圾不能及時回收
年輕代GC:
1:最初的對象是存活在eden;伊甸園空間滿了之后,會進行第一次GC;
2:第一次GC之后,依然存活的對象,會被丟到S1(第一個存活區(qū));
3:S1初次滿了之后,會進行第二次GC(年輕代GC)
4:第二次GC之后,依然存活的對象,會被丟到S2(第二個存活區(qū)),同時清空伊甸園和S1;
5:S2滿了之后,會進行第三次GC,依然存活的對象,會再次被丟到S1,同時清空伊甸園和S2;年輕代里面的垃圾碎片都是比較小;老年代的碎片比較大;讓垃圾盡可能的在年輕代里面進行回收;否則會影響老年代空間的整理;老年代GC:
1:年輕代的GC年齡超出閾值(默認16次),會把年輕代依然存活的對象扔到老年代;
2:對象的尺寸超出了閾值;對象尺寸超出了閾值,會直接進入老年代;
3:對象的大小超出了年輕代剩余的空間大小,直接進入老年代;老年代GC=fullGC(一般默認)
1:老年代剩余空間不足以對象進入;老年代會直接進行一次fullGC;
2:老年代的對象無法進行GC;老年代會進行一次fullGC;老年代的對象尺寸都比較大,所以gc時間會很長,同時所有線程會出現(xiàn)暫停;
jvm調(diào)優(yōu)是為了規(guī)避fullgc的頻繁出現(xiàn);會影響到tps;jstat -gcutil pid 1000 監(jiān)聽gc情況jmap -heap pid 查看內(nèi)存空間分配情況jvm參數(shù)調(diào)優(yōu)調(diào)堆內(nèi)存空間,調(diào)年輕代的gc年輕,調(diào)空間分配比例(老年代:年輕代 / eden:存活區(qū));調(diào)gc回收器,并行回收機制22.什么是內(nèi)存溢出1:運行需要的內(nèi)存大于空間剩余內(nèi)存;會出現(xiàn)內(nèi)存溢出2:垃圾無法進行GC;會出現(xiàn)內(nèi)存溢出23.簡述cpu的工作原理分析cpu參數(shù):lscpuCPU(s): 2 cpu個數(shù)Thread(s) per core: 1 每核的線程Core(s) per socket: 1 每個卡槽的核Socket(s): 2 每個cpu的卡槽雙cpu,4核多線程;每個cpu是雙核;cpu負載和利用率可運行的進程(雙r)+不可中斷的進程(block)running(運行中的)+runnable(等待運行的)+block(等待io)=cpu的負載利用率:cpu雙線程如果都在調(diào)度java進程,表示當(dāng)前cpu利用率是100%;cpu雙線程如果只有一個java進程在調(diào)度,表示當(dāng)前cpu利用率是50%;最理想的情況:每個cpu線程都調(diào)度一個java進程,此時的負載=4;不理想的情況:java進程數(shù)遠大于cpu線程數(shù),此時負載會遠遠超出cpu線程數(shù);不能及時調(diào)度的進程就會排隊;cpu會給運行中的和等待運行的進程數(shù)均勻分配時間片;cpu調(diào)度是以時間片為基準(zhǔn)的;假設(shè)調(diào)度時間為1ns,調(diào)度超出1ns之后,進程會被掛起;切換到下一個進程隊列越長,cpu時間片就越小,調(diào)度時間就會越短,切換的越快;切換的過于頻繁,cpu利用率就會很低,線程也會暫停進程是最小資源分配單元;線程最小調(diào)度單元;24.什么是上下文切換?哪些場景會存在上下文切換?
1:線程的切換
切換的時間加載寄存器和計數(shù)器
保存數(shù)據(jù)和位置信息,然后切換到下一個線程并讀取它的數(shù)據(jù)和位置信息
2:進程切換3:特權(quán)切換系統(tǒng)調(diào)用(切換兩次上下文)用戶空間向內(nèi)核空間發(fā)起申請,內(nèi)核空間返回api給用戶空間調(diào)用;26.什么是swap空間?oomkiller了解嗎?怎么開啟swap空間swap:從磁盤空間開辟的虛擬用戶空間。cat /proc/sys/vm/swappiness 查看swap比例當(dāng)內(nèi)存空間使用超出了比例,會啟用swap空間(內(nèi)存交換)so 換出 si 換入 swapon -a 啟用swapsudo sysctl vm.swappiness=10 臨時修改swappiness比例vim /etc/sysctl.conf 永久修改swappiness比例27.什么是進程優(yōu)先級?pr和ni ni范圍 -19---+20,ni值越小,進程優(yōu)先級越大;ni越大,進程優(yōu)先級越小;優(yōu)先級越高的進程,優(yōu)先調(diào)度cpu,時間片分配的越多;28.吞吐量大幅度波動有哪些原因?上下文切換的過快;gc次數(shù)過于頻繁;29.哪些現(xiàn)象說明了IO瓶頸?
await=io等待時間=io處理時間+io隊列時間
svctm=io處理時間
await與svctm的差值越大,表示隊列時間越長
util磁盤繁忙度,值越大,磁盤越繁忙;30.了解哪些資源監(jiān)控命令?top家族top,htop,atop,iftop(查看網(wǎng)絡(luò)),iotop(查看io)sysstat家族vmstat vmstat 1 10 mpstat mpstat -P ALL 1 10 查看邏輯cpuiostat iostat -x -k -d 1 10 查看io處理netstat 查看網(wǎng)絡(luò)情況pidstat 查看進程
31.如何用命令行生成測試報告?jmter -J{參數(shù)名} -r{host} -n -t XX.jmx -l XX.jtl -e -o httpreport簡歷:
1:斷句,言簡意賅,讓面試官能一眼找到關(guān)鍵詞
2:突出主題
3:突出能力
4:工作經(jīng)驗突出價值。從字里行間看出一個人在團隊中從事的角色和價值最low的詞匯:參與,做了,完成。。。正確的詞匯:負責(zé)XXX,帶領(lǐng)XXX,參與核心功能的XXX測試
5:項目經(jīng)驗要由遠及近,由低到高;看出一個人的經(jīng)歷和成長
6:細節(jié)問題:標(biāo)點,錯別字,字體調(diào)整,簡歷格式
7:技能一定要在項目經(jīng)驗里面體現(xiàn),關(guān)聯(lián)
總結(jié)
以上是生活随笔為你收集整理的jmeter性能测试面试题二【多测师_王sir】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线报天下免费补丁,使用补丁可解锁全部线报
- 下一篇: 运筹学 知识点总结 (十一)