效能測試-生成html測試報告、引數化、jvm監控
1.生成HTML的測試報告
1.1配置
(1)找到jmeter 的安裝目錄,下的bin中的jmeter.properties(jmeter配置檔案)
(2) ctrl +f ,搜尋jmeter.save.saveservice.output_format,取消井號 並且 把等號後的xml改為csv,點選儲存
(1)在jmeter的安裝目錄下,新建tests資料夾,在tests資料夾中新建script和report資料夾,script是放指令碼的,report是放測試報告的,把jmeter指令碼放入script。
(2) 在cmd中 進入 tests目錄:
(3)再執行命令:
命令:
a .指定 生成測試指令碼是script下的一碼通.jmx,效能測試的資料會寫到api.jtl中,然後解析成html報告
b .其中 “一碼通” “api” “performanceReport”都是自定義的
1.3檢視報告
(1)回到tests下可以看到performanceReport目錄:
(2)進入目錄看到html的測試報告:
注意:
(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、記憶體,主要關注是否記憶體洩漏,好的記憶體情況應該是呈正態分佈的。