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