基本介紹:
JMeter是純Java的應用程序,由Apache軟件基金會開發,用來做負載功能測試的開源軟件。JMeter最初設計用于做web應用測試和FTP應用測試,后來擴展到功能測試、接口測試、數據庫服務測試等其他領域。
JMeter能夠對應用程序做功能測試、回歸測試,通過創建帶有斷言的腳本來驗證測試結果。JMeter可以對靜態的、動態的資源(文件、java程序、java對象、數據庫、http服務器、ftp服務器等)的性能進行測試。JMeter能夠對各種性能指標數據進行多維度的圖形報表分析,并可以生成圖形化的測試報告。
主要特點:
開源的、輕量級的性能測試工具
支持多種協議,即支持多種服務類型的測試
通過錄制/回放方式獲取測試腳本
跨平臺,安裝了java虛擬機就可運行
多線程并發、多維度數據統計、儀表展示、圖表展示
支持GUI/CLI操作和精確計時 (毫秒級)
采用多線程并發取樣,也可通過獨立的線程對不同的功能同時取樣
支持緩存和離線的方式分析測試結果
插件高擴展性
JMeter支持的協議:
Web:http、https
Webservice:soap/xml-RPC
Database:JDBC driver
Directory:LDAP
Message:JMS
Service:POP3、IMAP、SMTP、FTP
https -- 在http下加入了SSL層,即http的安全版
soap/ xml-RPC -- simple object access protocol、remote procedure call
LDAP -- lightweight directory access protocol
POP3 -- post office protocol - version 3
IMAP -- internet mail access protocol
JMeter常用術語:
采樣器(Samples):
用來向服務器發送請求
邏輯控制器(Logic Controllers):
控制測試腳本執行的順序
監聽器(Listeners):
收集并展示測試結果信息
配置元件(Configuration Elements):
設置腳本中的共用信息
斷言(Assertions):
驗證是否返回期望的信息
定時器(Timers):
設置腳本執行的時間間隔
前置處理器(Pre-Processors):
設置配置信息,在采樣器前執行
后置處理器(Post-Processors):
設置配置信息,在采樣器后執行
測試計劃(Test Plan):
整個測試的根節點,所有組件配置在其中
線程組(Thread Group):
配置并發線程數、并發時間、每個線程使用同樣的測試腳本
JMeter工作原理:
JMeter通過發送測試腳本到目標服務器來模擬用戶的請求,測試過程中收集各種性能指標,并圖像化展示結果數據。
JMeter安裝要求:
1. JMeter要求JVM1.5或更高版本
JMeter2.x—jdk1.6
JMeter3.0/3.1—最低jdk1.7
JMeter3.2/3.3—最低jdk1.8
2. 操作系統(Linux/Windows/Mac)
Windows:apache-jmeter-xx.zip
Linux/Mac:apache-jmeter-xx.tgz
配置JDK環境變量:
計算機右鍵-屬性-高級系統設置-環境變量
新建變量JAVA_HOME,變量值位 JDK安裝路徑D:Program FilesJavajdk1.8.0_91
編輯Path變量,在末尾加入%JAVA_HOME%in;%JAVA_HOME%jrein;
打開Cmd命令行窗口,輸入java –version 驗證
JMeter安裝配置(windows):
http://jmeter.apache.org/download_jmeter.cgi下載
解壓安裝文件
計算機右鍵-屬性-高級系統設置-環境變量
新建變量JMeter_HOME,JMeter安裝的路徑 , 如E:Jmeterjmeter-3.1in
編輯Path變量,在末尾加入%Jmeter_HOME%in;
打開cmd輸入jmeter --version驗證是否安裝成功
JMeter安裝配置(Linux):
http://jmeter.apache.org/download_jmeter.cgi
解壓安裝文件tar xzvf apache-jmeter-5.4.1.tgz
配置環境變量
vi /etc/profile --打開profile文件,添加以下內容
JMETER_HOME=/opt/jmeter/apache-jmeter-5.4.1
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin
配置文件生效 source /etc/profile
jmeter –v 驗證是否安裝成功
JMeter目錄結構:
/bin-可執行文件、配置文件
/bin/examples - CSV樣例
/bin/report-template - 報告模板
/bin/templates - 腳本模板
/bin-可執行文件、配置文件
/doc - Jmeter API文檔
/extras - 擴展插件目錄,提供了對Ant的支持
/lib - 插件目錄,存放Jmeter所依賴的外部jar
/lib/ext - Jmeter依賴的核心jar包、插件包
/lib/junit - junit測試腳本
/Licenses – 許可證書
/Printable_docs -用戶使用手冊
JMeter GUI運行模式:
在windows下運行jmeter.bat文件,直接啟動Jmeter的GUI模式。
1. 添加組件
測試計劃->線程組->Samples->查看結果數/聚合報告
2. 腳本調試
Soap UI中調試wsdl接口,Web Services Description Language, 是為描述Web服務發布的XML格式
3. 配置、執行、結果查看
JMeter 命令行運行模式:
在windows下運行cmd命令窗口,可以使用如下命令運行一個jmx文件,如下命令
Jmeter -n -t ../test.jmx -l jifenQuery.log -e -o E: Jmeter est estReport
參數說明:
-n:非GUI模式,即命令行的模式
-t:后跟測試文件,即jmx文件
-l:把測試的過程輸出到log文件
-e:生成報告
-o:測試報告存放目錄,必須是空目錄
JMeter 命令行運行模式運行結果:
測試結束后會在指定的目錄生成html格式的測試報告,打開文件index.html,即可在瀏覽器中展示圖形化的報告。
JDBC(Java Database Connectivity)- Java數據庫連接,是Java語言用來規范客戶端程序如何訪問數據庫的應用程序接口,允許便捷式訪問底層數據庫。
JDBC API(JDBC應用程序接口)位于JDK的java.sql包中,可以直接調用SQL命令,同時提供了增刪改查數據庫中數據的方法,JDBC是面向關系型數據庫的(MySQL、Oracle、Postgresql、SQLServer)。由于不同數據庫軟件是不同的,Java JDK不可能提供對每個數據庫的具體實現,所以JDBC API的具體實現由不同的數據庫生產廠商決定,這樣數據庫廠商可以根據JDBC API去實現各自的應用程序驅動。
解釋說明:
Java API:
提供對JDBC的管理連接
Java Driver API:
支持JDBC管理到驅動器連接
DriverManager:
管理數據庫驅動程序,查看驅動是否符合Java Driver API的規范
Driver:
驅動程序,處理相應的請求并返回數據庫連接
Connection:
數據庫連接,負責與數據庫通信
Statement(聲明):
執行SQL查詢和更新
PreparedStatement(預聲明):
執行包含動態參數的SQL查詢和更新
CallableStatement(調用聲明):
調用數據庫中的存儲過程
SQLException:
發生的異常情況
JDBC建立連接的步驟:
加載數據庫驅動程序 ->建立連接 ->執行語句 ->處理結果 ->關閉連接
JDBC Connection Configuration界面分成五個部分:
名稱和注釋:可隨便填寫、最好是有意義的
Variable Name for created pool:定義連接池(連接池可以理解為連接的緩沖池)變量名,將 連接池配置保存到該變量中,需與JDBC請求中變量名一致,可以配置多個不同的連接池變量。
Connection pool Config:連接池配置,默認即可。
Connection Validation by Pool:驗證配置,默認即可。Validation Query 一般選擇 select 1,驗證數據是否存在。
Database Connection Configuration:數據庫URL、驅動類型、用戶名、密碼,需按規定格式
不同數據庫的數據庫連接配置:
JDBC驅動列表:
如何添加和查看JDBC驅動:
將下載的jar包直接添加到jmeter安裝目錄的lib目錄中,其中ojdbc14.jar是oracle數據庫的驅動程序jar包
解釋說明:
名稱:
JDBC請求的名稱,可以自定義
variable name:
綁定JDBC連接配置中的變量,必須一致
select Statement:
查詢聲明,僅支持select語句,只執行一條語句
update statement:
更新聲明,支持create、insert、update、drop、delete、drop語句,只執行一條語句
callable statement:
以標準形式調用存儲過程
Prepared select statement:
用于為一條SQL生成測試計劃
Commit:
提交未存儲的數據(僅在內存,未寫入磁盤的數據)
Rollback:
回滾未存儲的數據
AutoCommit(false):
自動提交(假),操作一直在事務中,除非commit或rollback
AutoCommit(true):
自動提交(真),無論結果如何,直接自動提交。
參數綁定解釋說明
Parameter values:
在SQL語句中需要使用變化的值時,可以用“?”替代變化值;然后在Parameter values 輸入框中輸入變量名或實際值。
Parameter types:
SQL參數類型(例如INTEGER,DATE,VARCHAR,DOUBLE)或常量的整數值的逗號分隔列表。當使用 Parameter values替換參數時,需要定義這些參數的類型填寫參數類型。注:有多個?時,在Parameter values,Parameter types中用“,”依次隔開,Parameter types 必須填寫,否則請求失敗。
Variable Names:
以逗號分隔的變量名稱列表,用于保存Select語句的返回值
Result Variable Name:
如果指定,將創建一個包含行映射列的Object變量。每個映射都包含列名稱作為鍵,并包含列數據作為值。
Query timeout(s) :
設置查詢超時時間(秒),空值表示0(不限制)。默認為0
Handle ResultSet :
定義如何處理執行SQL語句返回的結果集
1.開發Oracle數據庫性能腳本
前置條件:有可用的oracle數據庫及表
測試場景:往數據庫大批量插入數據并查詢
步驟1:創建測試計劃,導入oracle數據庫驅動包
步驟2:添加線程組,設置線程數,啟動時間、循環次數
步驟3:在線程組下添加’JDBC Connection Configuration’配置元件,并設置相關信息
步驟4:創建JDBC Request,對數據庫做插入操作
步驟5:在JDBC request ‘insert’下添加CSV Data Set Config配置元件,參數化要插入的數據
步驟6:添加監聽器,添加”圖形結果”、”查看結果樹”、”聚合報告”
步驟7:執行,查看運行結果—查看結果樹、聚合報告、圖形結果
2.開發MySQL數據庫性能腳本
前置條件:有可用的mysql數據庫及表,
測試場景:往數據庫大批量插入數據并查詢
步驟1:創建測試計劃,導入mysql數據庫驅動包
步驟2:添加線程組,設置線程數,啟動時間、循環次數
步驟3:在線程組下添加’JDBC Connection Configuration’配置元件,并設置相關信息
步驟4:創建JDBC Request,對數據庫做插入操作
步驟5:在JDBC request ‘insert’下添加CSV Data Set Config配置元件,參數化要插入的數據
步驟6:添加監聽器,添加”圖形結果”、”查看結果樹”、”聚合報告”
步驟7:執行,查看運行結果—查看結果樹、聚合報告、圖形結果
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129818.html
摘要:在這篇文章中,我們將通過使用來測試數據庫訪問并生成對應的測試報告,來學習使用這款性能測試工具。這兩個參數可以用來控制具體測試的執行次數,比如將線程數設置為,重復執行次數設置為,那么相應測試將執行次。 ...
摘要:有了測試腳本,通過線程組來模擬真實用戶對服務器的訪問壓力。不同的是,這些類型的線程執行測試結束后執行定期的線程組。線程組中包含的線程數量在測試執行過程中是不會發生改變的。邏輯控制器元件只對其子節點中的取樣器和邏輯控制器作用。 工欲善其事必先利其器,要保證移動應用產品在上線之后能穩定運行于各種復雜環境,僅僅進行功能測試是遠遠不夠的,壓力測試越來越被應用開發商所重視。而壓力測試從傳統的內部...
摘要:將響應斷言放入請求下,會對該請求調用的響應結果進行斷言。異步調用,等待一定時間后獲取調用結果數據某支持客戶進行異步調用,先發送一個異步請求提交數據獲取一個,然后隔一斷時間后再使用獲取到的請求上一個請求的返回結果需要用到定時器組件。 由于segmentfault編輯器上傳圖片錯誤,小編試過多種方式試圖拯救,還是未能成功,所以如要看完整文章請至http://t.cn/R8njjaT mia...
用Jmeter做接口測試只需要掌握幾個核心功能就可以了。 并不一定要把它所有的功能都掌握,先掌握核心功能入行,然后再根據工作需要和職業規劃來學習更多的內容。這篇文章在前面接口測試框架(測試計劃--->線程組--->請求--->查看結果樹)的前提下,來介紹必須要掌握的幾個核心功能,力求用最短的時間取得最大的成果。 在前面的文章中我提到,用Jmeter做接口測試的核心是單接口測試的參數化和關聯接口測試...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20