3、JMeter的元件
3.3Sampler(取樣器)
3.3.2 JDBC Request Sampler
用以發送JDBC請求,以JDBC協定請求通路資料庫
1)建立測試計劃:
一個測試都以一個測試計劃開始的,打開JMeter預設就有一個測試計劃;
2)添加線程組:
右鍵測試計劃,添加--->線程(使用者)--->線程組/Add--->Threads(Users)--->Thread Group
3)添加取樣器(Sampler):
右鍵線程組,添加--->取樣器--->HTTP請求/Add--->Sampler--->Http Request
4)添加監聽器:(調用接口的詳細情況展示)
右鍵線程組,添加--->監聽器--->察看結果樹/Add--->Listener--->View Results Tree
5)填寫取樣器具體請求資訊:
名稱:JDBC請求的名稱
注釋:可以寫該JDBC請求進行的具體測試操作
Variable Name Bound to Pool:綁定到池的變量名
Variable Name of Pool declared in JDBC Connection Configuration:JDBC連接配接配置中聲明的池的變量名(Oracle資料庫,我直接命名oracle)
添加myOracle連接配接池配置元件
右鍵JDBC Request,添加--->配置元件--->JDBC Connection Configuration
Variable Name for created pool:建立池的變量名,即建立JDBC Request裡的JDBC連接配接配置中聲明的池的變量名,兩個名稱相同
Max Number of Connections:最大連結池連接配接數
Max Wait (ms):最大等待時間
Time Between Eviction Runs (ms):空閑連接配接回收的時間間隔
Auto Commit:是否自動送出
Transaction Isolation:事務隔離級别,預設
Test While Idle:是否驗證連接配接的有效性
Soft Mid Evictable Idle Time(ms):連接配接池空閑連接配接的有效時間
Validation Query:測試語句,通過這裡填寫的sql進行測試
Database URL:jdbc:oracle:thin:@127.0.0.1:1521/XE(測試用的Oracle)
jdbc:mysql://127.0.0.1:3306/workdb
JDBC Driver class:oracle.jdbc.OracleDriver(測試用的Oracle)
com.mysql.jdbc.Driver
Username:使用者名
Password:密碼
設定JDBC Connection Configuration完成後點選菜單 運作->啟動/Run--->Start
異常:Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'
是jmeter安裝檔案中沒有驅動jar包導緻的,需要把JDBC驅動jar加到測試計劃中:
(連接配接Mysql資料庫,需要的jdbc驅動jar是:mysql-connector-java-5.1.41-bin.jar)
Oracle資料庫: 我的位址:C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar;
我導入這個jar後報下面異常1,是jar版本不比對,我把jar替換為了項目中ojdbc6.jar 成功;
導入JDBC驅動jar方式1(推薦):
單擊測試計劃--->浏覽選擇需要導入的jar
6)運作測試:
點選菜單 運作->啟動/Run--->Start
這種方式不需要導入JMeter新的jar包,但是導入jar位址變化時該位址需要變更;
導入JDBC驅動jar方式2(不推薦):複制的jar檔案放到JMeter安裝檔案的lib檔案夾下,重新開機JMeter再次調用,若jar版本比對可以正常調用;
===================================下面是異常解決===================================
異常1:Cannot create PoolableConnectionFactory (ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified
網上搜尋
解決方法1(我的情況不好使):修改系統資料庫
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
OracleOciLib=oci.dll
OracleSqlLib=orasql10.dll
OracleXaLib=oraclient10.dll
解決方法2(解決):換個相比對的jar包,我更換為項目中用到的ojdbc6.jar
異常2:Error preloading the connection pool
原因:jdbcconnection配置最大連結資料太大
解決:JDBC Connection Configuration配置元件中Max Number of Connections:最大連結池連接配接數修改為10或更小
異常3:ORA-00911: invalid character
原因:在執行的SQL語句中出現了無效字元,所在SQL語句無法通過文法分析過程導緻了錯誤結果
解決:将SQL語句中的“;”去掉
希望對你有幫助,祝你有一個好心情,加油!
若有錯誤、不全、可優化的點,歡迎糾正與補充!