Jmeter 腳本編寫一般分五個步驟:
1. 添加線程組
2. 添加 http 請求
3. 在 http 請求中寫入接入 url细睡、路徑、請求方式和參數(shù)
4. 添加查看結(jié)果樹
5. 調(diào)用接口、查看返回值
HTTP 請求默認(rèn)值
當(dāng)Web 服務(wù)器中的 協(xié)議 和 服務(wù)器名稱或 IP 這兩個值都是一樣的情況下彼硫,使用HTTP 請求默認(rèn)值來管理這些公共的配置數(shù)據(jù)
添加步驟:線程組——添加——配置元件——HTTP 請求默認(rèn)值 然后進(jìn)行如下配置,并把該元件放置到請求前面
斷言設(shè)置
設(shè)置步驟:選中一個請求凌箕,如 http-get ,然后右鍵選擇:添加——斷言—響應(yīng)斷言拧篮。
各個匹配模式含義如下:
? 包括:響應(yīng)內(nèi)容包括需要匹配的內(nèi)容即代表響應(yīng)成功,支持正則表達(dá)式
? 匹配:響應(yīng)內(nèi)容要完全匹配需要匹配的內(nèi)容即代表響應(yīng)成功陌知,大小寫不敏感他托,支持正則表達(dá)式。
? Equals:響應(yīng)內(nèi)容要完全等于需要匹配的內(nèi)容才代表成功仆葡,大小寫敏感赏参,需要匹配的內(nèi)容是字符串正則表
達(dá)式
? Substring:返回結(jié)果包含指定結(jié)果的字串,但是 subString 不支持正則字符串
? 否:不進(jìn)行匹配
參數(shù)設(shè)置
Jmeter 支持通過 Query String Parameters 或者 Request body 請求體來傳遞參數(shù)
get 方式:
post方式:
在 Post 請求中參數(shù)一般在 body 中傳遞沿盅,Jmeter 也支持在 body 中傳遞參數(shù)把篓。如傳遞 Json 格式的參數(shù),在 Body
Data 編輯框輸入如下參數(shù):
{"username":"wx"}
另外還需要指定參數(shù)的格式腰涧,因此需要添加 HTTP 信息頭管理器
添加步驟:選定請求——添加——配置元件——HTTP 信息頭管理器韧掩,然后在管理器里面添加參數(shù)類型
結(jié)果:
變量
在請求過程中,有時我們需要在請求中設(shè)置一些變量來測試不同的場景窖铡。
Jmeter 支持以下類型變量:
? 用戶自定義變量
? 函數(shù)生成變量
? BeanShell 變量
? 數(shù)據(jù)文件變量
用戶自定義變量
設(shè)置步驟: 選中請求——添加——前置處理器——用戶參數(shù) 設(shè)置變量名稱為 user 疗锐,值為123
函數(shù)生成變量
Jmeter 有許多內(nèi)置的函數(shù),可以生成隨機(jī)數(shù)费彼。創(chuàng)建步驟:點(diǎn)擊菜單欄選項——函數(shù)助手對話框——下拉選擇
__Random() 函數(shù) 函數(shù)配置如下:
BeanShell 變量
Jmeter 有哪些 Bean Shell滑臊?
? 定時器: BeanShell Timer
? 前置處理器:BeanShell PreProcessor
? 采樣器: BeanShell Sampler
? 后置處理器:BeanShell PostProcessor
? 斷言: BeanShell 斷言
? 監(jiān)聽器: BeanShell Listener
方法如下:
它是測試用例與 BeanShell 交互的橋梁,常用方法:
// 定義 jmeter 變量
vars.put(String key箍铲,String value);
// 從 jmeter 中獲取變量
vars.get(String key);
log :寫入信息到 jmeber.log 文件雇卷,使用方法:
log.info(“hello 51zxw!”);
BeanShell 實(shí)踐案例
1.創(chuàng)建請求名為 beanshell_test 的 Http 請求,請求地址為: http://httpbin.org/get 同時設(shè)置傳遞的參數(shù)為
beanshell_user
2.創(chuàng)建 BeanShell PreProcessor 變量設(shè)置如下所示:
CSV 數(shù)據(jù)文件變量
CSV 數(shù)據(jù)文件變量是指從外部 csv 文件讀取數(shù)據(jù)出來作為變量。
設(shè)置步驟: 選擇請求——添加——配置元件——CSV 數(shù)據(jù)文件設(shè)置
創(chuàng)建 csv 文件(最好不用用記事本創(chuàng)建关划,推薦用 Nodepad++)文件編碼為 UTF-8 文件內(nèi)容如下:
user_data.csv
51zxw,8888
CSV 數(shù)據(jù)文件設(shè)置如下:
在 Post 請求中引用變量數(shù)據(jù)如下:
CSV 參數(shù)化
CSV 數(shù)據(jù)文件設(shè)置如下:
修改線程組的線程數(shù)量小染,因?yàn)閿?shù)據(jù)中有 4 組數(shù)據(jù),所以設(shè)置為 4.