1. 程式人生 > 其它 >效能測試-生成html測試報告、引數化、jvm監控

效能測試-生成html測試報告、引數化、jvm監控

1.生成HTML的測試報告

1.1配置

(1)找到jmeter 的安裝目錄,下的bin中的jmeter.properties(jmeter配置檔案)

(2) ctrl +f ,搜尋jmeter.save.saveservice.output_format,取消井號 並且 把等號後的xml改為csv,點選儲存

1.2生成

(1)在jmeter的安裝目錄下,新建tests資料夾,在tests資料夾中新建script和report資料夾,script是放指令碼的,report是放測試報告的,把jmeter指令碼放入script。

(2) 在cmd中 進入 tests目錄:

(3)再執行命令:

jmeter -n -t script/一碼通.jmx -l api.jtl -e -o performanceReport/

命令:

  a .指定 生成測試指令碼是script下的一碼通.jmx,效能測試的資料會寫到api.jtl中,然後解析成html報告

  b .其中 “一碼通” “api” “performanceReport”都是自定義的

1.3檢視報告

(1)回到tests下可以看到performanceReport目錄:

 (2)進入目錄看到html的測試報告:

注意:

(1)再一次使用命令生成htlm的測試報告時,要把之前的performanceReport檔案和api.jtl進行刪除。

(2)測試指令碼是要儲存到tests下的script中。

(3)測試指令碼如果改名字了,要把命令的名字也修改。

2.引數化

一個使用者登入很多次和多個使用者登入一次的區別:

這兩個操作的結果是不同的。牽扯到一個快取的問題。

快取: 核酸檢查為例,第一次獲取24小時核酸檢測的結果,客戶端真實的向服務端傳送請求來獲取資料,後面在24小時以內查詢,都不會獲取,直接使用快取的資料。

 

2.1模擬併發登入:

引數化: 在客戶端模擬向服務端傳送請求的過程中模擬不同的資料。

(1)配置元件——CSV資料檔案設定

 (2)造資料:

(3)設定CSV資料檔案設定

 (4)在登入請求引數中,呼叫定義的變數 

 (5)設定執行緒數

 (6)執行,六次登入的請求引數都是不同的(模擬了六個使用者的登入)

效能測試中針對登入你是怎麼測試的?

首先需要明確的是登入的效能測試目標,也就是每秒併發多少個使用者同時登入系統,在目標的基礎上,造具體的登入系統的使用者資料。因為在測試中每秒併發登入使用的是不同的使用者登入。

 

3.JVM監控

主流語言:

Java:sun 企業級市場佔據絕對性的優勢,特別是在新的架構模式下,它的技術元件非常完善。

Go:Google,Go是隨著k8s,容器技術而流行的語言。位元組跳動裡面的測試開發必須要懂go語言

Python:在大資料領域,資料分析領域,機器學習領域非常具備優勢。

C,C++:底層作業系統,以及驅動。

Net,C#:

 

使用Java語言開發的產品,普遍存在OOM問題。

 

Java是一個跨平臺(Linux,unix,windows)的語言,具體的來說就是在某一個平臺編寫的程式碼,能夠在其他的平臺上也是能夠執行的。

JVM監控工具主要監控Java應用程式是否會記憶體洩露,當然也可以監控該Java應用程式的CPU資源。比如該服務分配了0.1C的CPU,200M的記憶體,那麼當記憶體使用率達到200或者是超過200M,這個時候就記憶體洩露。

 

(1)啟動java應用程式

a.把jar包放到桌面

b.從cmd中進入桌面

c.啟動java應用程式: java -jar 包名

Java程式部署:

1、使用maven打包成.jar的檔案,然後使用如下命令來啟動: java -jar xxx.jar

2、使用maven打包成.war的檔案,然後使用如下命令來啟動 java -jar xxx.war

(開發給jar包或者war包,都使用這個命令部署)

 

(2)開啟jvisualvm

a.重新開啟一個控制檯,輸入jvisualvm:

b. 出現如下介面,點選這個jar包,再點選監視,就可以看到對這個應用程式的監控:

c.通過jmeter,向這個應用程式傳送請求:

d.觀察jvm的變化:

Java語言寫的那些程式容易記憶體洩露:

使用到檔案讀寫的,比如淘寶的下發優惠劵;檔案上傳,檔案下載,檔案傳輸。

 

如果記憶體洩露了,怎麼辦?

我們返回給開發,開發修改後,我們繼續使用原來的配置和資料、步驟來進行測試,驗證問題是否修改完畢。

 

JVM監控工具怎麼用的?

監控cpu、記憶體,主要關注是否記憶體洩漏,好的記憶體情況應該是呈正態分佈的。