一.測試環境準備java
Oracle:10gmysql
JDBC驅動:classes12.jarsql
oracle安裝目錄下(oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar)文件複製到JMeter/lib目錄下數據庫
JMeter:jmeter-2.11apache
二.設計測試計劃並運行oracle
1.打開JMeter,點擊測試計劃sqlserver
點擊「瀏覽...」按鈕,將你的JDBC驅動添加進來。post
2.添加一個線程組,右鍵點擊「線程組」,在下面添加一個「JDBC Connection Configuration」測試
來配置一下JDBC Connection Configuration頁面。ui
Pool Timeout:鏈接超時能夠修改此時間
3.右鍵點擊「線程組」,在下面添加一個「JDBC request」。
須要修改的參數包括Variable Name,要與上面的 JDBC Connection Configuration填寫一樣的內容,如此處的:oracleConn。這裏表示 JDBC Connection Configuration創建一個名爲Oracle 的鏈接池,以後其它的JDBC Request都共用這個鏈接池.
注意:SQL語句中,可使用參數化.插入語句中的值也能參數化,以下圖:
注意:SQL語句後面不可能添加分號,不然報語法錯誤.
4.添加斷言,右鍵點擊線程組---->添加--->斷言---->響應斷言。
5.咱們來添加一些監聽器來行查看:
添加一個斷言結果:右鍵點擊線程組---->添加--->監聽器---->結果斷言。
添加一個圖形結果:右鍵點擊線程組---->添加--->監聽器---->圖形結果。
添加一個查看結果樹:右鍵點擊線程組---->添加--->監聽器---->查看結果樹。
下面是添加全部的列表:
6.在線程組頁面設置用戶數、啓動時間、循環次數,再點擊菜單欄「運行」----「啓動」
下面是結果:
至此,Jmeter進行壓力測試就到此爲此了,具體還要根據實際的項目來進行實施。
備註:Assertion Results對Jmeter壓測的throughout有嚴重的影響。
三.遇到的問題
一、出現:Java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL錯誤解決
原來是由於沒有加載包的緣故
解決方法:關閉jmeter,而後將class12.jar(電腦上搜索一下classes12.jar這個文件)複製到jmeter目錄下面的lib目錄中,從新啓動運行便可。
二、鏈接MySQL數據庫時,出現:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'錯誤
看起來彷佛是設置字符的問題,後來在JDBC鏈接配置那裏將Database URL加上字符編碼便可(?characterEncoding=UTF-8)
jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8
三、出現:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).
解決方法:出現這個緣由是由於鏈接超時,增大Pool TimeOUT就能夠了。
四、執行時提示:ORA-00911: invalid character。
解決方法:確保你在JDBC Request裏面的Query中輸入的SQL語句是正確的。注意:SQL語句後面不要添加分號。
四.驅動類
不一樣的驅動類對應的jar不一樣,必定要注意,下面介紹下:MSSQL下載sqljdbc4.jar放在apache-jmeter-2.6\lib下面
Datebase |
Driver class |
Database URL |
MySQL |
com.mysql.jdbc.Driver |
jdbc:mysql://host:port/{dbname} |
PostgreSQL |
org.postgresql.Driver |
jdbc:postgresql:{dbname} |
Oracle |
oracle.jdbc.driver.OracleDriver |
jdbc:oracle:thin:user/pass@//host:port/service |
Ingres (2006) |
ingres.jdbc.IngresDriver |
jdbc:ingres://host:port/db[;attr=value] |
MSSQL |
com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver |
jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" |
五.附上所用的jar包