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