1. 程式人生 > >網際網路分散式架構技術

網際網路分散式架構技術

本文主要介紹一下常用的兩款測試工具:

  1. 效能測試壓測工具-Jmeter
  2. 效能測試監控工具-JProfiler

1. 效能測試壓測工具-Jmeter

1.2 Jmeter簡介

JMeter,一個100%的純Java桌面應用,由Apache組織的開放原始碼專案,它是功能和效能測試的工具。具有高可擴充套件性、支援Web(HTTP/HTTPS)SOAPFTPJAVA等多種協議的特點。

目前最新版本的jmeter3.3版本,要求jdk版本為1.8

Jdk版本為1.7的,可以下載3.1版本,功能基本一致

1.3 Jmeter安裝

下載Jmeter後,直接解壓,在bin目錄下,雙擊

jmeter.bat

1.4 使用說明

1.4.1 建立一個執行緒組

新增執行緒組並設定引數大小:測試計劃->新增->Threads ->執行緒組

1.4.2 建立一個Http請求(GET

新增HTTP請求:執行緒組下新增->Sampler ->HTTP請求

注意:同一個執行緒組內的多個請求是順序執行的,不同執行緒組的請求的並行執行的

1.4.3 建立一個Http請求(POST

新增HTTP請求:執行緒組下新增->Sampler ->HTTP請求

1.4.4 給請求新增header

新增響應斷言:HTTP請求->

新增->配置元件->HTTP資訊頭管理器

1.4.5 給請求新增一個斷言

新增響應斷言:HTTP請求->新增->斷言 ->響應斷言

1.4.6 檢視請求返回結果

新增檢視結果樹: HTTP請求-監聽器-檢視結果樹

1.4.7 指令碼引數化設定-內建函式

為了使測試資料動態化,更真實的模擬使用者請求,需要對介面資料做引數化

Jmeter的函式助手裡,有全部的函式以及相關文件

常用的內建函式:

  •   隨機數:__Random
  •   隨機字串: __RandomString
  •   時間戳:__time
  •   UUID__UUID

1.4.8 指令碼引數化設定
-CSV Data Set Config

新增CSV Data Set Config :執行緒組->新增->配置元件 -> CSV Data Set Config

1.4.9 引數化引用

HTTP請求裡,把需要做引數化的引數值,用${引數名}代替

1.4.10 Jmeter關聯-資料提取

工作中經常有這種測試需求:介面B的引數來源於介面A的返回值,這個時候如果要測試介面B,就需要先把A介面的資料提取出來

步驟:

1、先新增介面A的請求,A請求的返回值為{"skuId":123,"price":93.0,"stock":1977,"opt":abc,"result":true}

2、在A請求內部建立一個後置處理器-JSON Extractor,按照下圖填寫

解釋

Variable name:定義一個變數,儲存提取的資料

JSON Path expressionsjson表示式,用$代表整個json資料,$.stock標識json字串中keystock的值

Match Number:匹配數字,根據json表示式匹配出的資料可能有多個,這個數字表示獲取第幾個,如1代表匹配出的第一個資料;0代表隨機一個數據

3、新增請求B,在B請求的url中,直接用${引數名}來代表JSON提取器中定義的引數,如

1.4.11 Jmeter測試結果分析-聚合報告

1.4.12 Jmeter命令列模式

GUI模式下進行壓測,Jmeter本身的效能開銷非常大,因此官方建議真正壓測時在非GUI模式下進行

所以一般選擇在Linux下,或windows命令列下執行壓測

GUI模式下,可以先把修改下jmeterbin目錄下jmeter.properties

summariser.interval=10(實時展示效能資料的間隔時間s

GUI模式下先把jmx指令碼建立並除錯好,然後在命令列下執行命令:

jmeter -n –t test.jmx -l result.jtl

-n: 命令列模式

-tjmx指令碼路徑

-l:測試結果檔案路徑

命令列模式下結果分析:

1、通過檢視控制檯日誌

2、使用聚合報告開啟測試生成的jtl檔案,也可以獲取到效能資料

3、根據jtl檔案生成HTML報表

使用報表前先修改Jmeterbin目錄下reportgenerator.properties

修改jmeter.reportgenerator.overall_granularity=1000(報表統計的間隔時間)

執行以下命令後,就會在當前目錄下的output資料夾中生產html報表

jmeter –g test.jtl –o ./output

下載到本地用瀏覽器開啟即可檢視報告

TPS趨勢圖:

平均響應時間趨勢圖:

2. 效能監控分析工具-Jprofiler

2.1 Jprofiler簡介

JProfiler是一個商業授權的Java剖析工具,由EJ技術有限公司,針對Java EEJava SE應用程式開發的。

Jprofiler主要有兩部分組成:客戶端和Server

注意:Jprofiler server端啟動後對Java程式的效能影響較大,所以不能作為常規性的監控工具,只能在排查問題時使用

2.2 Jprofiler安裝和配置

2.2.1 服務端安裝配置

1.安裝

在伺服器上安裝JProfiler9.1.1 server

rmpivh jprofiler_linux_9_1_1.rpm

安裝成功後,jprofiler預設安裝在了/opt/jprofiler9目錄下

2.配置

tomcatcatalina.sh,把以下引數新增到JVM引數配置的地方,如

JAVA_OPTS="$JAVA_OPTS -agentpath:/opt/jprofiler9/bin/linux-x64/libjprofilerti.so=port=8849,nowait"

配置好後重啟tomcat

2.2.2 客戶端安裝配置

1. windows下安裝好jprofiler_windows_9_1_1.exe

2. 啟動Jprofiler,按照以下步驟操作

2.3 Jprofiler執行介面和常用功能