Jmeter性能测试面试基础问答
生活随笔
收集整理的這篇文章主要介紹了
Jmeter性能测试面试基础问答
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
性能測(cè)試基礎(chǔ)
簡(jiǎn)述實(shí)施軟件性能測(cè)試的流程?
a.性能需求分析挑選用戶使用最頻繁的功能來做測(cè)試,比如:登陸,搜索,提交訂單確定性能指標(biāo),比如:事務(wù)通過率為100%;90%的事務(wù)響應(yīng)時(shí)間不超過5秒;并發(fā)用戶為1000人時(shí)CPU和內(nèi)存的使用率在70%以下b.性能測(cè)試計(jì)劃確測(cè)試時(shí)間和測(cè)試環(huán)境和測(cè)試工具的選擇注明測(cè)試通過指標(biāo)以及業(yè)務(wù)場(chǎng)景準(zhǔn)備性能測(cè)試數(shù)據(jù)c.搭建性能測(cè)試環(huán)境注意這里測(cè)試環(huán)境一定要和線上正式環(huán)境保持一致d.通過性能測(cè)試用例,編寫性能測(cè)試腳本,準(zhǔn)備性能測(cè)試數(shù)據(jù)性能測(cè)試腳本進(jìn)行調(diào)優(yōu),設(shè)置檢查點(diǎn)、參數(shù)化、關(guān)聯(lián)、集合點(diǎn)、事務(wù),調(diào)整思考時(shí)間e.設(shè)計(jì)性能測(cè)試場(chǎng)景,監(jiān)控服務(wù)器,運(yùn)行測(cè)試場(chǎng)景f.分析性能測(cè)試結(jié)果,判斷性能瓶頸,反饋結(jié)果信息g.回歸性能測(cè)試h.編寫性能測(cè)試報(bào)告簡(jiǎn)述基準(zhǔn)測(cè)試、壓力測(cè)試、負(fù)載測(cè)試、并發(fā)測(cè)試
a、基準(zhǔn)測(cè)試基準(zhǔn)最簡(jiǎn)單的理解就是有基礎(chǔ)的標(biāo)準(zhǔn),這樣能通過對(duì)比發(fā)現(xiàn)系統(tǒng)的不同的與變化。一般情況下,基準(zhǔn)測(cè)試有以下幾種應(yīng)用場(chǎng)景。1)可以在指定的標(biāo)準(zhǔn)下通過基準(zhǔn)測(cè)試建立一個(gè)性能基準(zhǔn),這樣以后當(dāng)系統(tǒng)的環(huán)境、參數(shù)發(fā)送變化之后,在進(jìn)行一次相同標(biāo)準(zhǔn)下的測(cè)試,即可看出變化對(duì)性能的影響。例如,數(shù)據(jù)庫的基準(zhǔn)性能測(cè)試。2)系統(tǒng)進(jìn)行基準(zhǔn)測(cè)試可以在較早的階段發(fā)現(xiàn)性能問題。例如,如果對(duì)BestTest論壇進(jìn)行10個(gè)用戶并發(fā)測(cè)試時(shí),系統(tǒng)出現(xiàn)了死機(jī)現(xiàn)象,那么就沒比較進(jìn)行后續(xù)測(cè)試。3)某系統(tǒng)從來沒有進(jìn)行過任何性能測(cè)試,需要對(duì)該系統(tǒng)做一次性能評(píng)估作為后續(xù)開發(fā)調(diào)優(yōu)的參考。這是基準(zhǔn)測(cè)試常見的一種場(chǎng)景,也是大部分沒有做過性能測(cè)試的公司最需要的。基準(zhǔn)測(cè)試不難理解,但實(shí)踐起來常常被誤解。以對(duì)某個(gè)系統(tǒng)的數(shù)據(jù)搜索進(jìn)行性能基準(zhǔn)測(cè)試用例,這個(gè)系統(tǒng)的數(shù)據(jù)量會(huì)隨著時(shí)間的增長(zhǎng)而增長(zhǎng),所以必須頻繁地進(jìn)但行基準(zhǔn)測(cè)試,這樣子才能準(zhǔn)確地把握數(shù)據(jù)量的增長(zhǎng)對(duì)系統(tǒng)性能的影響。但是進(jìn)行的基礎(chǔ)測(cè)試又恰恰是在應(yīng)用程序級(jí)別的,并不能客觀地反應(yīng)全局的性能。所以,比較好的做法是每次只修改一個(gè)地方,這樣就能準(zhǔn)確地判斷出那個(gè)地方會(huì)對(duì)性能產(chǎn)生影響。b、并發(fā)測(cè)試并發(fā)測(cè)試是值通過模擬多個(gè)用戶并發(fā)訪問同一個(gè)應(yīng)用、存儲(chǔ)過程或數(shù)據(jù)記錄及其他并發(fā)操作,測(cè)試是否存在死鎖、數(shù)據(jù)錯(cuò)誤等故障。為了避免數(shù)據(jù)庫或者函數(shù)方法在并發(fā)下的錯(cuò)誤,需要專門針對(duì)每個(gè)模塊進(jìn)行并發(fā)測(cè)試。并發(fā)數(shù)如何確定?并發(fā)數(shù) = PV/PVTime * 頁面連接次數(shù) * HTTP響應(yīng)時(shí)間 * 因數(shù)/Web服務(wù)器數(shù)量。其中,PVTime是PV的統(tǒng)計(jì)時(shí)間,換算成秒,一天是86400s。頁面連接次數(shù)包括外部的JS、CSS、圖片等,一般為10。HTTP響應(yīng)時(shí)間一般為1s或更少。因數(shù)一般為5。假設(shè),BestTest官網(wǎng)每天有6萬PV,其余參數(shù)保持默認(rèn),那么推算出來的并發(fā)數(shù)大致為35注意**:PV(page view)即頁面瀏覽量。一個(gè)用戶有可能創(chuàng)造十幾個(gè)甚至更多的PV。它是目前判斷網(wǎng)站訪問流量最常見的計(jì)算方式,也是反映一個(gè)網(wǎng)站受歡迎程度的重要指標(biāo)。3、負(fù)載測(cè)試負(fù)載測(cè)試是值在一定的軟件、硬件及網(wǎng)絡(luò)環(huán)境下,運(yùn)行一種或多種業(yè)務(wù),在不同虛擬用戶數(shù)量的情況下,測(cè)試服務(wù)器的性能指標(biāo)是否在用戶的要求范圍內(nèi),以此確定系統(tǒng)所能承受的最大用戶數(shù)、最大有效用戶數(shù)以及不同用戶數(shù)下的系統(tǒng)響應(yīng)時(shí)間及服務(wù)器的資源利用率。負(fù)載測(cè)試強(qiáng)調(diào)的是在一定的環(huán)境下系統(tǒng)能夠達(dá)到的峰值指標(biāo),大多數(shù)的性能測(cè)試都是負(fù)載測(cè)試。例如:在各大網(wǎng)站上看到的各種顯卡測(cè)試,都是通過運(yùn)行3DMark或者某種游戲得到的最終數(shù)據(jù),通過這個(gè)數(shù)據(jù)來說明顯卡的峰值處理能力,這就是負(fù)載測(cè)試的一種。4、壓力測(cè)試壓力測(cè)試是指在一定的軟件、硬件及網(wǎng)絡(luò)環(huán)境下,模擬大量的虛擬用戶數(shù)向服務(wù)器產(chǎn)生負(fù)載,使服務(wù)器的資源處于極限狀態(tài)下并長(zhǎng)時(shí)間連續(xù)運(yùn)行,以測(cè)試服務(wù)器在高負(fù)載情況下是否能夠穩(wěn)定工作。與負(fù)載測(cè)試獲得峰值性能數(shù)據(jù)不同,壓力測(cè)試強(qiáng)調(diào)在極端情況下系統(tǒng)的穩(wěn)定性,這個(gè)時(shí)候出來能力已經(jīng)不重要了。性能測(cè)試中什么是思考時(shí)間,為什么要設(shè)置思考時(shí)間,jmeter如何設(shè)置?
什么是思考時(shí)間? 思考時(shí)間(Think Time)也稱為“休眠時(shí)間”,是指用戶在進(jìn)行操作時(shí),每個(gè)請(qǐng)求之間的時(shí)間間隔。對(duì)于交互系統(tǒng)來說,用戶不可能持續(xù)不斷地發(fā)出請(qǐng)求,一般情況下,用戶在向服務(wù)端發(fā)送一個(gè)請(qǐng)求后,會(huì)等待一段時(shí)間再發(fā)送下一個(gè)請(qǐng)求。性能測(cè)試過程中,為了模擬這個(gè)過程而引入思考時(shí)間的概念。在測(cè)試腳本中,思考時(shí)間為腳本中兩條請(qǐng)求語句之間的間隔時(shí)間。當(dāng)前對(duì)于不同的性能測(cè)試工具提供了不同的函數(shù)來實(shí)現(xiàn)思考時(shí)間。 jmeter定時(shí)器詳解(常見的兩種) 1、固定定時(shí)器Constant Timer 需要讓每個(gè)線程在請(qǐng)求之前按相同的指定時(shí)間停頓,就可以使用這個(gè)定時(shí)器;需要注意的是,固定定時(shí)器的延時(shí)不會(huì)計(jì)入單個(gè)sampler的響應(yīng)時(shí)間,但會(huì)計(jì)入事務(wù)控制器的時(shí)間 2、統(tǒng)一隨機(jī)定時(shí)器Uniform Random Timer 該計(jì)時(shí)器將每個(gè)線程請(qǐng)求暫停一個(gè)隨機(jī)的時(shí)間量,每個(gè)時(shí)間間隔的發(fā)生概率相同。總的延時(shí)等于隨機(jī)延時(shí) + 偏移延時(shí)值。 Random Delay Maximum(in milliseconds):隨機(jī)延遲最大值(以毫秒為單位) Constant Delay Offset(in milliseconds):恒定延遲偏移量(以毫秒為單位)什么是參數(shù)化?為什么要進(jìn)行參數(shù)化。Jmeter如何實(shí)現(xiàn)
什么是參數(shù)化? 業(yè)務(wù)中腳本中有登錄操作,需要輸入用戶名和密碼,假如系統(tǒng)不允許相同的用戶名和密碼同時(shí)登錄,或者想更好的模擬多個(gè)用戶來登錄系統(tǒng)。這個(gè)時(shí)候就需要對(duì)用戶名和密碼進(jìn)行參數(shù)化,使每個(gè)虛擬用戶都使用不同的用戶名和密碼進(jìn)行訪問。 參數(shù)的不同方式 jmeter中參數(shù)化方式很多,以下講解兩種常見的參數(shù)化方式 方式一:接著在之前創(chuàng)建的腳本的基礎(chǔ)上,右鍵點(diǎn)擊 配置元件---->CSV Date Set Config 推薦使用 方式二:使用函數(shù)助手進(jìn)行參數(shù)化什么是關(guān)聯(lián),為什么要做關(guān)聯(lián)?
什么是Jmeter關(guān)聯(lián),為什么需要關(guān)聯(lián)? 由于性能測(cè)試是基于接口的,HTTP協(xié)議是無狀態(tài)的,為了解決這個(gè)問題就有session和token的方式,在一般登錄后服務(wù)器生成之后,后續(xù)請(qǐng)求就需要攜帶session或者token的值,而我們這里所說的關(guān)聯(lián)其實(shí)就是使用獲取到服務(wù)器響應(yīng)中的session或者token為后續(xù)請(qǐng)求添加的過程,但是在有時(shí)候有的系統(tǒng)中還存在一些動(dòng)態(tài)的值也是需要關(guān)聯(lián)的,例如時(shí)間戳、一些特殊的驗(yàn)證字段等 那么Jmeter如何實(shí)現(xiàn)關(guān)聯(lián)呢?常見的session和token 在jmeter中使用 后置處理器--->正則表達(dá)式提取器 實(shí)現(xiàn)關(guān)聯(lián)的 需要在當(dāng)前事物控制器,添加HTTP cookie管理器,什么是集合點(diǎn)。集合點(diǎn)的原理是什么?jmeter如何設(shè)置集合點(diǎn)
為什需要集合點(diǎn),集合點(diǎn)有什么作用? 雖然我們的“性能測(cè)試”理解為“多用戶并發(fā)測(cè)試”,但真正的并發(fā)是不存在的,為了更真實(shí)的實(shí)現(xiàn)并發(fā)的操作,我們可以在需要壓力的地方設(shè)置集合點(diǎn)。以登錄功能為例,每到輸入用戶名和密碼登錄的地方,所有的虛擬用戶都相互之間等一等,然后一起訪問,這樣對(duì)服務(wù)器的沖擊力更大,例如:可以在秒殺、搶購等高并發(fā)場(chǎng)景使用 jmeter集合點(diǎn)設(shè)置 步驟一:接著在之前創(chuàng)建的腳本的基礎(chǔ)上,右鍵點(diǎn)擊 HTTP請(qǐng)求---->定時(shí)器---->Synchronizing Timer 步驟二: 設(shè)置集合點(diǎn)Number of Simulated Users to Group by(虛擬用戶組的數(shù)量): 每次釋放的線程數(shù)量(例如:可以設(shè)置有50個(gè)需要用戶一起開始登陸)。如果設(shè)置為0,等同于線程組中設(shè)置的線程數(shù)量。Timeout in milliseconds(超時(shí)時(shí)間,以毫秒為單位): 如果設(shè)置為0,Timer將會(huì)等待線程數(shù)達(dá)到了"Number of Simultaneous Users to Group"中設(shè)置的值才釋放。如果大于0,那么超過Timeout in milliseconds中設(shè)置的最大等待時(shí)間(毫秒為單位)后還沒達(dá) 到"Number of Simultaneous Users to Group"中設(shè)置的值,Timer將不再等待,釋放已到達(dá)的線程。Jmeter如何啟動(dòng)非圖形化界面執(zhí)行腳本生成測(cè)試報(bào)告?啟動(dòng)非圖形化界面運(yùn)行這樣做有什么意義?
命令行界面直接運(yùn)行腳本生成 可以通過如下命令,一次性完成測(cè)試執(zhí)行和生成HTML可視化報(bào)告的操作,進(jìn)入jmeter的bin目錄下,輸入如下命令:復(fù)制代碼 D:\tools\apache-jmeter-5.3\bin\jmeter.bat -n -t E:\性能測(cè)試腳本\蝸牛Boss.jmx -e -o D:\re -l login.log# -n:以非GUI形式運(yùn)行Jmeter # -t:source.jmx 腳本路徑 # -l:記錄樣本到文本,可以看成日志,文件名為.log即可 # -e:在腳本運(yùn)行結(jié)束后生成html報(bào)告 # -o:用于存放html報(bào)告的目錄因?yàn)閖meter本身是采用java開發(fā)的,比較消耗系統(tǒng)性能,如果采用圖形化界面進(jìn)行測(cè)試場(chǎng)景的執(zhí)行,會(huì)操作系統(tǒng)產(chǎn)生的壓力值偏小常見的性能測(cè)試指標(biāo)有哪些?
1、平均響應(yīng)時(shí)間:響應(yīng)時(shí)間越短越好 2、吞吐量:吞吐量反映的就是業(yè)務(wù)的處理能力,越大越好a.HPS:每秒鐘點(diǎn)擊數(shù)(可以直觀的理解為每秒鐘可以發(fā)出多個(gè)HTTP請(qǐng)求),單位次/秒 ,b.TPS:每次中能夠完成業(yè)務(wù)交易的次數(shù),單位是筆/每秒c.QPS:每秒鐘能夠處理查詢的次數(shù),單位是次/秒 3、資源利用率CPU:不能超過75%內(nèi)存:內(nèi)存中swap交換區(qū)間的使用完成意味著,物理內(nèi)存耗盡,一般要避免這種情況,物理內(nèi)存使用不要超過80%磁盤:磁盤繁忙率要低于70%。網(wǎng)絡(luò):帶寬使用率不能超過70%。寫出幾種監(jiān)控Linux服務(wù)器的方式
1.jmeter serveragen監(jiān)控服務(wù)器 2.Linux中top命令監(jiān)控 3.監(jiān)控工具 spolight總結(jié)
以上是生活随笔為你收集整理的Jmeter性能测试面试基础问答的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 11g R2 Rman备份
- 下一篇: 京东线报接口 全网一手线报全网(京东,淘