前言:在了解jmeter之前,需要了解的最重要的一件事就是在jmeter中所有使用的符號(hào)都需要為英文符號(hào) !并且所有參數(shù)在填寫的時(shí)候都要注意前后是否有空格!
一、jmeter腳本的基本元件
功能 | 用途 |
---|---|
線程組 | 模擬用戶哟沫,確定模擬多少人鲫售,每人做多少次 |
線程數(shù) | 模擬人數(shù) |
多線程 | 多個(gè)人同時(shí)操作 |
循環(huán)數(shù) | 模擬1個(gè)重復(fù)幾次 |
HTTP請(qǐng)求默認(rèn)值 | 設(shè)置請(qǐng)求報(bào)文的默認(rèn)值吉懊,ip、端口、協(xié)議 |
http請(qǐng)求 | 生成和發(fā)送http請(qǐng)求報(bào)文,ip舔涎、端口、協(xié)議逗爹、方法亡嫌、路徑、參數(shù) |
監(jiān)聽器>查看結(jié)果樹 | 負(fù)責(zé)查看請(qǐng)求報(bào)文掘而、響應(yīng)報(bào)文 |
斷言>響應(yīng)斷言 | 1.設(shè)置預(yù)期結(jié)果挟冠,2.跟實(shí)際結(jié)果對(duì)比 |
-
組成一個(gè)最基本的jmeter腳本所需的4個(gè)基本元件
-
線程組
添加一個(gè)線程組 -
http請(qǐng)求
在線程組里面添加一個(gè)http請(qǐng)求 -
響應(yīng)斷言
在http請(qǐng)求中添加一個(gè)響應(yīng)斷言 -
查看結(jié)果樹
最后在線程組里面添加一個(gè)查看結(jié)果樹
-
一個(gè)最基本的jmeter腳本
- 以上4個(gè)基本元件就組成了一個(gè)最簡單可執(zhí)行的jmeter腳本,可以手動(dòng)進(jìn)行大部分的接口測試了
二、http請(qǐng)求默認(rèn)值
http請(qǐng)求設(shè)置參數(shù)
-
在測試計(jì)劃下添加一個(gè)http請(qǐng)求默認(rèn)值用于為其他HTTP請(qǐng)求設(shè)置默認(rèn)值,為了偷懶,這是很有必要的 ヾ(?°?°?)??,在這個(gè)測試計(jì)劃下的所有http請(qǐng)求都可以用這個(gè)默認(rèn)參數(shù),也可以自行填寫參數(shù)
三袍睡、jmeter的核心
jmeter的核心就是變量!變量儲(chǔ)存在變量池當(dāng)中;
在jmeter中知染,生成變量現(xiàn)有以下幾種方法:
函數(shù)助手
用戶自定義變量
Csv數(shù)據(jù)文件設(shè)置
正則表達(dá)式提取器
計(jì)數(shù)器
JDBC Connection Configuration(jdbc 連接配置)
-
JDBC request
在這里只說明一下函數(shù)助手、用戶自定義變量斑胜、CSV數(shù)據(jù)文件設(shè)置持舆、正則表達(dá)式提取器這四種情況- 函數(shù)助手需要選擇_RandomString功能,然后在Random string length一欄中可以選擇變量的長度伪窖,在Chars to use for random string generation 一欄中可以填寫變量取值的范圍逸寓,需要自己填寫所有取值的來源數(shù)據(jù);
- 用戶自定義變量覆山,自定義填寫變量名與賦予這個(gè)變量名自定義的值竹伸;
-
如下圖所示,圖中標(biāo)出了兩種變量用戶自定義與函數(shù)助手 兩種變量的設(shè)置方法;
用戶自定義與函數(shù)助手的設(shè)置-
CSV數(shù)據(jù)文件設(shè)置
這個(gè)是比較重要的一個(gè)變量勋篓,用于調(diào)用外部CSV文件進(jìn)行參數(shù)化吧享,讀取CSV文件中的數(shù)據(jù),依次的讀取出來,存到對(duì)應(yīng)的變量中,并給后續(xù)的元件使用 ,具體操作如下圖:
CSV數(shù)據(jù)文件的配置
-
-
注意變量名需要用譬嚣,號(hào)分隔開
還需要進(jìn)行循環(huán)次數(shù)設(shè)置,以此進(jìn)行多次循環(huán)
循環(huán)次數(shù)的設(shè)置- 正則表達(dá)式提取器
正則表達(dá)式提取器的作用簡單來說就是提取上個(gè)接口響應(yīng)中的數(shù)據(jù),來給其他元件使用
具體操作如下圖所示
- 正則表達(dá)式提取器
四钢颂、使用變量
剛才講述了如何在jmeter中生成變量,接下來簡單描述一下如何在jmeter中使用變量
- 直接使用:用${變量值}來直接取用變量拜银。
- 使用vars.get("變量名");方法來取用變量殊鞭。
- 使用vars.put("變量名","變量值");方法來改變這個(gè)變量值;
五尼桶、如果(if)控制器的使用
-
在如果控制器中填寫一個(gè)if語句<font size=4>(注1)</font>進(jìn)行判斷:如果滿足if控制器里的條件,就執(zhí)行if控制器內(nèi)部的元件,如果不滿足if控制器里的條件,則跳過這個(gè)if控制器及以下元件;