一.測(cè)試環(huán)境準(zhǔn)備
Oracle:10g
JDBC驅(qū)動(dòng):classes12.jar
oracle安裝目錄下(oracle\product\10.2.0\db_1\jdbc\lib\classes12.jar)文件復(fù)制到JMeter/lib目錄下
JMeter:jmeter-2.11
二.設(shè)計(jì)測(cè)試計(jì)劃并運(yùn)行
1.打開(kāi)JMeter,點(diǎn)擊測(cè)試計(jì)劃
點(diǎn)擊“瀏覽...”按鈕,將你的JDBC驅(qū)動(dòng)添加進(jìn)來(lái)唆铐。
2.添加一個(gè)線程組,右鍵點(diǎn)擊“線程組”浴讯,在下面添加一個(gè)“JDBC Connection Configuration”
來(lái)配置一下JDBC Connection Configuration頁(yè)面。
Pool Timeout:連接超時(shí)可以修改此時(shí)間
3.右鍵點(diǎn)擊“線程組”丈咐,在下面添加一個(gè)“JDBC request”燎猛。
需要修改的參數(shù)包括Variable Name,要與上面的 JDBC Connection
Configuration填寫(xiě)同樣的內(nèi)容溉瓶,如此處的:oracleConn急鳄。這里表示 JDBC Connection
Configuration建立一個(gè)名為Oracle 的連接池,之后其它的JDBC Request都共用這個(gè)連接池.
注意:SQL語(yǔ)句中堰酿,可以使用參數(shù)化.插入語(yǔ)句中的值也能參數(shù)化攒岛,如下圖:
注意:SQL語(yǔ)句后面不可能添加分號(hào),否則報(bào)語(yǔ)法錯(cuò)誤.
4.添加斷言胞锰,右鍵點(diǎn)擊線程組---->添加--->斷言---->響應(yīng)斷言。
5.我們來(lái)添加一些監(jiān)聽(tīng)器來(lái)行查看:
添加一個(gè)斷言結(jié)果:右鍵點(diǎn)擊線程組---->添加--->監(jiān)聽(tīng)器---->結(jié)果斷言兢榨。
添加一個(gè)圖形結(jié)果:右鍵點(diǎn)擊線程組---->添加--->監(jiān)聽(tīng)器---->圖形結(jié)果嗅榕。
添加一個(gè)查看結(jié)果樹(shù):右鍵點(diǎn)擊線程組---->添加--->監(jiān)聽(tīng)器---->查看結(jié)果樹(shù)。
下面是添加所有的列表:
6.在線程組頁(yè)面設(shè)置用戶數(shù)吵聪、啟動(dòng)時(shí)間凌那、循環(huán)次數(shù),再點(diǎn)擊菜單欄“運(yùn)行”----“啟動(dòng)”
下面是結(jié)果:
至此吟逝,Jmeter進(jìn)行壓力測(cè)試就到此為此了帽蝶,具體還要根據(jù)實(shí)際的項(xiàng)目來(lái)進(jìn)行實(shí)施。
備注:Assertion Results對(duì)Jmeter壓測(cè)的throughout有嚴(yán)重的影響块攒。
三.遇到的問(wèn)題
1励稳、出現(xiàn):java.sql.SQLException:?No?suitable?driver?found?for?jdbc:oracle:thin:@127.0.0.1:1521:ORCL錯(cuò)誤解決
原來(lái)是因?yàn)闆](méi)有加載包的緣故
解決方法:關(guān)閉jmeter,然后將class12.jar(電腦上搜索一下classes12.jar這個(gè)文件)復(fù)制到j(luò)meter目錄下面的lib目錄中囱井,重新啟動(dòng)運(yùn)行即可驹尼。
2、連接MySQL數(shù)據(jù)庫(kù)時(shí)庞呕,出現(xiàn):com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:?Unknown?character?set:?'utf8mb4'錯(cuò)誤
看起來(lái)似乎是設(shè)置字符的問(wèn)題新翎,后來(lái)在JDBC連接配置那里將Database?URL加上字符編碼即可(?characterEncoding=UTF-8)
jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8
3程帕、出
現(xiàn):org.apache.avalon.excalibur.datasource.NoAvailableConnectionException:?Could?not?create?enough?Components?to?service?your?request?(Timed?out).
解決方法:出現(xiàn)這個(gè)原因是因?yàn)檫B接超時(shí),增大Pool?TimeOUT就可以了地啰。
4愁拭、執(zhí)行時(shí)提示:ORA-00911: invalid character。
解決方法:確保你在JDBC Request里面的Query中輸入的SQL語(yǔ)句是正確的亏吝。注意:SQL語(yǔ)句后面不要添加分號(hào)岭埠。
四.驅(qū)動(dòng)類
不同的驅(qū)動(dòng)類對(duì)應(yīng)的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.Driverjdbc:sqlserver://IP:1433;databaseName=DBname
或者
jdbc:jtds:sqlserver://localhost:1433/"+"library"
五.附上所用的jar包