天天看點

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

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)

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

      添加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:密碼

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

      設定JDBC Connection Configuration完成後點選菜單 運作->啟動/Run--->Start

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

異常: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

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

6)運作測試:

      點選菜單 運作->啟動/Run--->Start

壓測JMeter---3、JMeter的元件---》3.3取樣器---》3.3.2 JDBC Request Sampler

      這種方式不需要導入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語句中的“;”去掉

希望對你有幫助,祝你有一個好心情,加油!

若有錯誤、不全、可優化的點,歡迎糾正與補充!

繼續閱讀