適用於測試計劃中不須要隨迭代發生改變的參數(只取一次值的參數)設置在此處。例如,被測應用的host和port值。html
添加-配置元件-用戶定義的變量
mysql
添加變量名稱和變量值正則表達式
在須要使用參數位置使用${ip}替代sql
添加-前置處理器-用戶參數
數據庫
1)定義參數名稱和參數值
2)每次迭代更新一次:選中該選項,則參數的值在每一個迭代中保持不變,在新的迭代開始時取下一個可用值; 若是取消取中該選項,則參數的值在每一個其做用域內的Sampler發出請求時取下一個可用值。apache
在須要使用參數位置使用${prductid}替代oracle
添加-配置元件-CSV數據文件設置
dom
1) 文件名:參數文件路徑。
2) 文件編碼:視項目接收文件編碼,通常是UTF-8,可與開發確認。
3) 變量名稱(使用逗號間隔):文件中的每列參數名稱,多個使用逗號分隔。
4) 忽略首行(只在設置了變量名稱後才生效):若是文件中第一行爲參數名稱,選擇True,若是文件第一行即是參數值,選擇False。
5) 分隔符(用’\t’代替製表符):文件中每一個參數值之間使用什麼間隔,這裏就填什麼。
6) 是否容許帶引號?:若是選擇True,csv文件中有引號,則變量引用後也帶引號;若是選擇False,csv文件中有引號,可是變量實際引用後會自動去掉引號。
7) 遇到文件結束符再次循環?:若是選擇True,文件結束後繼續從頭開始循環取用數據。通常選擇True。
8) 遇到文件結束符中止線程?:若是選擇False,第一次取文件結束後不中止線程。通常選擇False。
線程共享模式:「全部線程」表示做用於全局;「當前線程組」表示只做用於該線程組;「當前線程」表示只做用於該線程。函數
在請求體中引用變量,格式:${變量名}sqlserver
選項-函數助手對話框
1)選擇一個功能:__CSVRead
2)函數參數名稱
3)點擊【生成】按鈕,生成函數字符串
將函數字符串複製後,粘貼到請求體中,例如
${__CSVRead(D:apache-jmeter-5.2.1binexamplesuser&pwd.txt,0)}
1)函數助手對話框選擇一個功能:__Random
做用:生成一個區間的隨機數,如圖
2)函數助手對話框選擇一個功能:__RandomDate
做用:隨機生成一個範圍內的時間日期
3)函數助手對話框選擇一個功能:__RandomString
做用:隨機生成一個字符串
1)查看mysql版本
下載mysql jar包,在數據庫客戶端執行如下sql查詢
SELECT version();
2)查看jar包支持的mysql版本:http://dev.mysql.com/doc/connector-j/en/connector-j-versions.html
3)官網下載地址:
https://dev.mysql.com/downloa...
選擇「Platform independent」
4)將jar包放在jmeter安裝目錄的lib目錄下
添加-配置元件-JDBC Connection Configuration
1)名稱:自定義
2)Variable Name Bound to Pool
* Variable Name for created pool:填入一個變量名,須要和JDBC request、JDBC PreProcessor、JDBC PostProcessor中的變量名一致。
3)Connection Pool Configuration:數據庫鏈接池的配置,通常默認便可
* Max Number of Connections:數據庫最大鏈接數 * Max Wait(ms):數據庫鏈接最長等待時長 * Time between Eviction Runs(ms):當前鏈接池中某個鏈接在該設置空閒時間後沒有被使用,將被物理關閉 * Auto Commit:自動提交。有三個選項,true、false、編輯(本身經過jmeter提供的函數設置) * Transaction Isolation:事務間隔級別設置,主要有如下幾個選項: * TRANSACTION_NODE 事務節點 * TRANSACTION_READ_UNCOMMITTED 事務未提交讀 * TRANSACTION_READ_COMMITTED 事務已提交讀 * TRANSACTION_SERIALIZABLE 事務序列化 * DEFAULT 默認 * TRANSACTION_REPEATABLE_READ 事務重複讀 * 編輯 * Preinit Pool:
4)Init SQL Statemnets separated by new line
5)Connection Validation by pool
* Test While Idle:當空閒時測試鏈接是否斷開 * Soft Min Evictable Idle Time(ms):至少在池中保持鏈接的時長 * Validation Query:通常選擇select 1
6)database Connection Configuration
* Database URL:jdbc:mysql://mysql\_host\_ip:mysql\_port/mysql\_db\_name * JDBC Driver class:com.mysql.jdbc.Driver * Username:數據庫用戶名 * Password:數據庫密碼 * Connection Properties:
註釋:
MySQL
com.mysql.jdbc.Driver
jdbc:mysql://host:port/{dbname}
PostgreSQL
org.postgresql.Driver
jdbc:postgresql:{dbname}
Oracle
oracle.jdbc.OracleDriver
jdbc:oracle:thin:user/pass@//host:port/service
Ingres (2006)
com.ingres.jdbc.IngresDriver
jdbc:ingres://host:port/db[;attr=value]
MSSQL
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://IP:1433;databaseName=DBname
或者
net.sourceforge.jtds.jdbc.Driver
jdbc:jtds:sqlserver://localhost:1433/"+"library"
添加-取樣器-JDBC Request
1)Variable Name Bound to Pool
2)SQL Query
添加-後置處理器-正則表達式提取器
從接口返回體中獲取返回值,用於下一個接口的請求參數
1)引用名稱:在HTTP等請求中,引用此數據,須要用到的名稱。
2)正則表達式:用於將須要的數據提取出來,()裏面的內容是須要提取的,.表示匹配任何字符串,+表示匹配一次或屢次,?表示在找到第一個匹配項後中止。
3)模板:表示使用提取到的第幾個值,$-1$:表示取全部值,$0$:表示隨機取值,$1$:表示取第1個,$2$:表示取第二個,以此類推:$n$:表示取第n個。
4)匹配數字(0表明隨機):0 表明隨機取值,1 表明所有取值。
5)缺省值:若是正則表達式沒有搜找到值,則使用此缺省值,null表示爲空。
&{name_gN}表示第N括號中的內容
添加-取樣器-HTTP請求
添加-監聽器-查看結果樹
執行後結果以下:
添加-配置元件-計數器
1)名稱:自定義
2)Starting value:起始值
3)遞增:每次迭代增長的值
4)Maximum value:最大值,達到最大值後,從新設置爲初始值,默認的最大值爲Long.MAX_VALUE,2^63-1(若是持續壓測,建議最好不要設置最大值)
5)數字格式:可選格式,好比000,格式化爲001,002;默認格式爲Long.toString(),可是默認格式下,仍是能夠看成數字使用。
6)引用名稱:用於控制在其它元素中引用該值,形式:$(reference_name}
7)與每用戶獨立的跟蹤計數器:全局的計數器,若是不勾選,即全局的,全部用戶統一按照計數器循環;若是勾選,即獨立的,則每一個用戶按照計數器循環。
8)每次迭代復原計數器:可選,僅勾選與每用戶獨立的跟蹤計數器時可用;若是勾選,則每次線程組迭代,都會重置計數器的值。
1)場景設置
2)結果