Jmeter工具使用總結
目錄
Jmeter函式總結
第一章 前言
第二章 常用函式的介紹
2.1. timeShift函式
2.2. time函式
2.3. groovy函式
第三章 常用用法
3.1. Jmeter讀取Excel
1) 添加執行緒組
2) 添加配置元件--》選擇CSV Data Set Config
3) 添加--》取樣器--》選擇BeanShell Sampler,使用vars.get方法獲取Excel的值
4) 添加--》取樣器--》選擇Debug Sampler,以便后面查看是否正常的獲取了Excel中的資料
5) 添加http請求,將Excel中獲取的資料作為引數傳遞
6) 添加一個查看結果樹,以查看執行之后的結果
7) 設定執行緒組
8) 遇到問題
3.2. Jmeter讀取txt
1) 添加執行緒組
2) 添加配置元件--》選擇CSV Data Set Config
3) 添加--》取樣器--》選擇BeanShell Sampler,使用vars.get方法獲取Excel的值
4) 添加--》取樣器--》選擇Debug Sampler,以便后面查看是否正常的獲取了Excel中的資料
5) 添加http請求,將Excel中獲取的資料作為引數傳遞
6) 添加一個查看結果樹,以查看執行之后的結果、
7) 設定執行緒組
第四章 常見問題
4.1. Jmeter請求引數時,中文出現亂碼
第一章 前言
近期作業程序中使用Jmeter函式較多,初步使用,遇到問題只能依賴度娘解決,近期抽時間將遇到的問題梳理了一下,并附上了解決方法,希望可以對大家有所幫助,
第二章 常用函式的介紹
2.1. timeShift函式
背景:近期測驗的一些業務的介面的傳參需要傳入與時間有關的一些數值
(比如需要毫秒級別的時間戳,比如1660270555043,對應的時間2022-08-12 10:15:55 ),
(再比如20220812101555848 對應的是2022-08-12 10:15:55),
使用 timeShift函式可以構造最新時間和指定時間戳,
示例:
|
場景 |
函式 |
結果 |
|
當前時間時間戳 (毫秒級) |
${__timeShift(,,,,)} |
1660270835790 |
|
2小時前時間戳 (毫秒級) |
${__timeShift(,,-PT2H,,)} |
1660263761872 |
|
指定格式, 輸出當前時間 |
${__timeShift(yyyyMMddHHmmssSSS,,,,)} |
20220812101555848 |
|
指定格式, 輸出2小時前時間 |
${__timeShift(yyyyMMddHHmmssSSS,,-PT2H,,)} |
20220812101555848 |
展開:
點擊[函式助手/Function Helper]系統彈出函式助手頁面,下拉選擇timeShift

格式 - 將顯示創建日期的格式,如果該值未被傳遞,則以毫秒為單位創建日期,
比如:
傳入yyyyMMddHHmmssSSS,輸出20220812101555848
傳入yyyy-MM-dd HH:mm:ss 輸出 2022-08-12 10:33:42
日期 - 這是日期值,用于如果要通過添加或減去特定天數,小時或分鐘來創建特定日期的情況,如果引數值未通過,則使用當前日期,(沒用對,自己打算再找找度娘)
移位 - 表示要從日期引數的值中添加或減去多少天,幾小時或幾分鐘,如果該值未被傳遞,則不會將任何值減去或添加到日期引數的值中,不使用符號時為增加,使用+ -號實作加減
“P1DT2H4M5S” 決議為“添加1天2小時4分鐘5秒”
“P-6H3M”決議為“-6小時+3分鐘”
“-P6H3M”決議為“-6小時-3分鐘”
“-P-6H + 3M”決議為“+6小時和-3分鐘”
“P1d” 決議為增加一天
“PT2H” 決議為增加兩小時
“PT30m”決議為增加30分鐘
“PT40S”決議為增加40秒
“P1dT2H30m40s”決議為增加一天兩小時三十分鐘四十秒
區域設定 - 設定創建日期的顯示語言,不是必填項
變數 - 創建日期的值將被分配給的變數的名稱,不是必填項
2.2 time函式
time函式同timeShirt函式用法大致相同,
示例:
|
場景 |
函式 |
結果 |
|
當前時間時間戳 (毫秒級) |
${__time(,)} |
1660272941726 |
|
當前時間時間戳 (秒級) |
${__time(/1000,) |
1660272952 |
|
指定時間格式 |
${__time(yyyy-MM-dd,)} |
2022-08-12 |
展開:
點擊[函式助手/Function Helper]系統彈出函式助手頁面,下拉選擇time函式

格式 - 將顯示創建日期的格式,如果該值未被傳遞,則以毫秒為單位創建日期,
比如:
傳入yyyyMMddHHmmssSSS,輸出20220812101555848
傳入yyyy-MM-dd HH:mm:ss 輸出 2022-08-12 10:33:42
變數 - 創建日期的值將被分配給的變數的名稱,不是必填項
time函式與timeShift函式區別:
*time函式即可以生成秒級別、也可以毫秒級別的時間戳,timeShift函式僅可以生成毫秒級別的時間戳;
*timeShift函式比time函式多了幾項傳參,比如可以傳入移位引數,構造幾天前/幾小時/幾分鐘對應時間值
推薦網址:(截圖很全)
https://blog.csdn.net/baidu_17201253/article/details/107730382?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-107730382-null-null.pc_agg_new_rank&utm_term=jmeter%E6%97%B6%E9%97%B4%E7%9B%B8%E5%87%8F&spm=1000.2123.3001.4430
2.3. groovy函式
問題:我需要一個傳參,將指定格式的時間轉為時間戳(毫秒級別),試了好幾個方法都不太合適,最后使用了同事提供的groovy函式
示例:比如將startDate的日期轉為時間戳
|
指定日期 |
轉為時間戳 |
輸出 |
|
startDate=2022-07-19 12:30:10 |
${__groovy(new java.text.SimpleDateFormat('yyyy-MM-dd HH:mm:ss').parse('${startDate}').getTime(),)} |
startTime=1658205010000 |


第三章 常用用法
3.1. Jmeter讀取Excel
背景:近期需要使用介面構造100條資料,就計劃使用excel存盤資料,然后將每次讀取的資料作為引數傳遞給介面,
步驟:
1) 添加執行緒組

2) 添加配置元件--》選擇CSV Data Set Config

附上Excel表格

3) 添加--》取樣器--》選擇BeanShell Sampler,使用vars.get方法獲取Excel的值

4) 添加--》取樣器--》選擇Debug Sampler,以便后面查看是否正常的獲取了Excel中的資料

5) 添加http請求,將Excel中獲取的資料作為引數傳遞

6) 添加一個查看結果樹,以查看執行之后的結果


7) 設定執行緒組
比如回圈次數設定5,系統會重復執行5次,依次讀取第前5條資料作為傳參,呼叫介面


8) 遇到問題
Csv格式添加資料,但是無法保存設定的格式,比如設定的時間格式樣式就丟失了

所以,最終未使用從excel中讀取資料,而是計劃從txt中讀取資料
3.2. Jmeter讀取txt
步驟基本上同章節3.1 Jmeter讀取Excel 一致,也是六大步驟,僅附上與excel 不同的截圖
1) 添加執行緒組
2) 添加配置元件--》選擇CSV Data Set Config

附上txt內容

3) 添加--》取樣器--》選擇BeanShell Sampler,使用vars.get方法獲取Excel的值
4) 添加--》取樣器--》選擇Debug Sampler,以便后面查看是否正常的獲取了Excel中的資料
5) 添加http請求,將Excel中獲取的資料作為引數傳遞
6) 添加一個查看結果樹,以查看執行之后的結果、
7) 設定執行緒組
第四章 常見問題
4.1. Jmeter請求引數時,中文出現亂碼
問題描述:使用jmeter時,又遇到了在介面引數輸入有帶中文的時候,執行介面后,出現亂碼的情況
解決方式:在請求中,content encoding寫為:utf-8

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/502126.html
標籤:其他
下一篇:edraw max(億圖圖示)
