測試計劃:是使用jmeter進行測試的起點,是其他測試元件的容器,一個完整的測試計劃
包括一個或多個線程組尼斧,邏輯控制器,取樣器试吁,監(jiān)聽器棺棵,配置元件
圖中標紅的是在使用JDBC request時使用的MySQL驅(qū)動的文件路徑
下載mysql-connector-java-5.1.40文件,下載后解壓
點擊“瀏覽”找到mysql-connector-java-5.1.40文件中的mysql-connector-java-5.1.40-bin.jar文件
線程組:線程組是每個任務(wù)都要線程去處理,所有任務(wù)必須在線程組下面創(chuàng)建
線程數(shù):設(shè)置發(fā)送請求的用戶數(shù)目烛恤,即并發(fā)數(shù)
Ramp-Up Period(in second):創(chuàng)建完所有線程的時間母怜,防止對服務(wù)器有太大的負載
循環(huán)次數(shù):請求得重復(fù)次數(shù)(所有請求數(shù)=并發(fā)數(shù)*循環(huán)次數(shù))
啟動時間:測試計劃的啟動時間
結(jié)束時間:測試計劃的結(jié)束時間
持續(xù)時間:測試計劃持續(xù)時間
配置元件:配置元件維護Sampler需要的配置信息,配置元件并不發(fā)送請求(除了HTTP代理服務(wù)器例外)缚柏,并根據(jù)實際的需要會添加或修改請求的內(nèi)容
配置元件“用戶定義的變量”會在測試的初始階段執(zhí)行(無論它處于測試樹的那個位置)
配置元件對其所在的測試樹分支有效
HTTP Cookie Manager
該屬性管理器用于管理Test Plan運行時的所有cookie苹熏。HTTP Cookie Manager可以自動存儲服務(wù)器發(fā)送給客戶端的所有Cookie,并在發(fā)送請求時附加合適的Cookie
同時币喧,也可以在HTTP Cookie Manager中手動添加一些cookie柜裸,這些手工添加的cookie會在發(fā)送請求時被自動附加到請求
如果在一個測試計劃內(nèi)有多個Cookie Manager,Jmeter目前無法指定哪個被使用粱锐。所以疙挺,一個測試計劃內(nèi)最好只有一個cookie manager。并且怜浅,一個manager里的cookie并不能被其它manager所引用铐然。所以在使用多個Cookie Managers時要謹慎。
如果選中紅框中的選項恶座,意味著線程在每次迭代時清除自己會話中的所有Cookie.
HTTP Header Manager
該屬性管理器用于定制Sampler發(fā)出的HTTP請求的請求頭的內(nèi)容搀暑。不同的瀏覽器發(fā)出的HTTP請求具有不同的Agent,訪問某些有防盜鏈的頁面時需要正確的Refer...這些情況下都需要通過HTTP Header Manager來保證發(fā)送的HTTP請求是正確的
HTTP Cache Manager
該屬性管理器用于模擬瀏覽器的Cache行為跨琳。為Test Plan增加該屬性管理器后自点,Test Plan運行過程中會使用Last-Modified、ETag和Expired等決定是否從Cache中獲取相應(yīng)的元素脉让。
注意:如果Test Plan中的某個Sampler請求的元素是被Cache的元素桂敛,則Test Plan在運行過程中會直接從Cache中讀取該元素,這樣Sampler得到的返回值就會是空溅潜。在這種情況下术唬,如果為該Sampler設(shè)置了Assertion檢查響應(yīng)體中的制定內(nèi)容是否存在,該Assertion就會失敗滚澜。
HTTP請求默認值
這個組件可以為我們的請求設(shè)置默認值粗仓,比如測試計劃里的所有請求都是發(fā)送到同一個服務(wù)器,這時我們就可以用這個組件配置好紅框內(nèi)標記參數(shù)就可以啦设捐,這些請求就會使用組件里的值借浊,在其他的請求中只需要配置請求的具體路徑就ok
HTTP請求
http請求是發(fā)送請求的組件,因為在HTTP請求默認值中已經(jīng)配置好服務(wù)器和端口號所以這里不需要配置萝招,如果未使用http請求默認值那就需要在這里配置
紅框1:這個是接口
紅框2:請求的方法(如果是get請求就不需要bodydata)
紅框3:這個是post請求的請求提蚂斤,把要傳給服務(wù)器的參數(shù)寫在這里
正則表達式提取器
提取器作用:從請求的響應(yīng)結(jié)果中取到需要的內(nèi)容,從而實現(xiàn)關(guān)聯(lián)
要檢查的響應(yīng)字段:正則表達式提取內(nèi)容的范圍
引用名稱:其他地方引用提取值的變量名稱即寒,具體的引用方式是${變量名}橡淆,eg:${token}
正則表達式:提取內(nèi)容的正則表達式,()表示提取母赵,對于要提取的內(nèi)容需要用小括號括起來
模板:用$$引用起來逸爵,如果在正則表達式中有多個提取表達式(多個括號括起來的東西),則可以是$1$凹嘲,$2$等等师倔,表示解析到的第幾個值給變量,正則表達式提取模式周蹭,值從1開始
匹配數(shù)字:0代表隨機趋艘,-1代表所有,其余正數(shù)代表將在已提取的內(nèi)容中凶朗,第幾個匹配的內(nèi)容
缺省值:正則匹配失敗瓷胧,取的值
響應(yīng)斷言
斷言:對取樣器返回的請求結(jié)果給出判斷,是否正確
用戶可以使用斷言來檢查從服務(wù)器獲得的響應(yīng)內(nèi)容棚愤,用來判斷請求響應(yīng)的結(jié)果是否如用戶所期望的
斷言會影響作用域內(nèi)的所有采樣器搓萧,如果要讓斷言只影響某個采樣器,需要將斷言作為該采樣器的子項
斷言中設(shè)置要測試的模式宛畦,則會對響應(yīng)的內(nèi)容(如http請求后瘸洛,服務(wù)器返回的內(nèi)容)進行與字符串進行匹配,如果返回的內(nèi)容包括了字符串次和,則認為該次測試通過反肋,否則就是失敗。一般通過監(jiān)聽器來監(jiān)聽響應(yīng)斷言
關(guān)于連接數(shù)據(jù)庫進行數(shù)據(jù)查詢及使用的操作
JDBC Connection Configuration
Database URL:數(shù)據(jù)庫URL踏施,jdbc:MySQL://主機ip或者服務(wù)器名稱:mysql監(jiān)聽的端口號/數(shù)據(jù)庫名稱
JDBC∈帷Driver Class:數(shù)據(jù)庫的驅(qū)動
username:數(shù)據(jù)庫登錄的用戶名
password:數(shù)據(jù)庫登錄的密碼
Variable Name:數(shù)據(jù)庫連接池的名字畅形,需要與JDBC Connection Configuration的連接池的名字保持一致
Query:填寫的sql語句末尾不要加“抓督;”
Parameter valus:參數(shù)值
Parameter types:參數(shù)類型
Variable names:保存sql語句返回結(jié)果的變量名
result Variable name:創(chuàng)建一個對象變量,保存所有的結(jié)果
監(jiān)聽器
聚合報告:
label:取樣器名稱
Samples:運行過程中一共發(fā)出了多少個請求
Average:平均響應(yīng)時間
median:響應(yīng)時間中間值
90%Line:一組數(shù)從小到大排列束亏,找到他的第90%個數(shù)铃在,那么這個數(shù)組中有90%的數(shù)將小于這數(shù)
Min/Max:最小/最大響應(yīng)時間
Error%:出錯率
Throughput:吞吐量,每秒/每分處理的Request數(shù)
KB/sec:每秒從服務(wù)器接收到的數(shù)據(jù)
注意:關(guān)于總體值并不是各列的累加碍遍,
圖形結(jié)果:
樣本數(shù)目:發(fā)出去的請求數(shù)
最新樣本:最近一個Request的響應(yīng)時間
平均:所有request響應(yīng)時間的平均值
偏離:所有request響應(yīng)時間的便準差
吞吐量:單位時間處理request的個數(shù)
中值:所有request響應(yīng)時間的中間值
查看結(jié)果樹
在連接數(shù)據(jù)庫時可能遇到的問題
1.Cannot?load?JDBC?driver?class?'com.mysql.jdbc.Driver定铜,jmeter中的JDBC request報這個錯
解決:因為沒有JDBC驅(qū)動,下載一個mysql-connector-java-5.1.40文件怕敬,下載后解壓揣炕,然后將mysql-connector-java-5.1.40文件中的mysql-connector-java-5.1.40-bin.jar文件配置在測試計劃中就好啦