JMeter使用记录1 -- JDBC测试

场景:使用jmeter对web应用和mysql数据库进行压力测试 

 

JMeter是一款非常强大的测试工具,可以用来测试web,数据库,从07年用过之后一直对它情有独钟,下面记录下在一个项目中对它的简单使用。 

 

项目分数据库测试和web应用测试 

数据库测试比较简单,将要测试的数据库的jdbc driver放到jmeter的lib文件夹,新建线程组,配置起100线程,循环10次,10秒启动所有线程,加入一个jdbc connection configuration,加入要进行的CRUD操作,点击启动按钮,然后通过summary report看performance。 

Test Plan 
csMSVVebTest 
csMSJoacTest 
Counter 
JOBC Connection Configuration 
preapred insert userinfo Requ 
select userinfo Request 
prepared select userinfo Req 
update userinfo Request 
preapred update userinfo Req 
preapred delete userinfo Req 
Summary Report 
View Resutts Tree

 
 

建立线程组,启动100个线程(10s起完),每个线程循环执行所有步骤10次,某个步骤出错也继续执行: 

线 程 组 
名 称 : 
CSMS 」 08CTest 
在 取 样 詣 误 后 要 行 的 动 作 
线 程 性 
线 程 訕 : 1 佣 
Ramp-Up Period ()n seconds) : 佣 
环 次 訕 囗 永 远 10 
〔 ) StartNextThreadLOOP 
O 侮 止 线 程 
O 侮 止 
〔 ) StopTestNOW 
DDelayThreadcreationuntilneeded 
囗 i! 周 席

 
 

jdbc connection configuration: 

JDBC Connection Configuration 
JOBC Connection Configuration 
Variable Name Bound to Pool 
Variable Name: CSMSOatabase 
Connection Pool Configuration 
Max Number of Connections: 10 
Pool Timeout: 10000 
Idle Cleanup Interval (ms): 60000 
Auto Commit: True 
Transaction Isolation: DEFAULT 
Connection Validation by Pool 
Keep-Alive: True 
Max Connection age (ms): 5000 
Validation Query: Select 1 
Database Connection Configuration 
Database URL: i doc: mys ql://l ocalh ost:3306/CustomerSecu rityM an agementSystem7us eun code—tru e&amp, amp, ch aracterEn codin 
JD8C Driver class: commysqlJdbcDriver 
Username: root 
Password: •

 

CRUD中C,由于数据某些字段要求唯一性,所以加入了一个计数器(counter),来保证字段在数据库的唯一性: 

JDBC Request 
preapred insert userinfo Request 
Variable Name Bound to Pool 
Variable Name: CSMSOataOase 
SQL Query 
Query Type: AutoCommit(true) 
Query: 
insert into userinfo 
phoneNumber, realname, registerTime, name) values 
(e,ø, 'jmeter' '2a2a-a5-2a', 'test 
test '75728', 'jmeter',' 
2a14-a5-2a' ? ) 
Parameter values: 
Parameter types: VARCHAR,VARCHAR

 
 

Counter: 

il-äk-* 
Z&•: Counter 
i*tq 1 
1000000 
Number format 000000 
Reset counter on each Thread Group Iteration

 

执行ctrl+R,在summary report里面可以看测试数据汇总 

Label 
preapred insert 
select userinfo Rm 
prepared select 
update userinfo 
preapred update 
preapred delete 
Summary Report 
ET. : Summary Report 
std Dev 
16 85 
5866 
66 
Log/Display Only: C] 
# Samples 
Average 
2gs 
106 
6261 
1442 
Error % 
000% 
000% 
000% 
000% 
000% 
000% 
000% 
Throughput 
gÆ/sec 
103sec 
Iff6/sec 
Iff6/sec 
10Æ/sec 
ITO/sec 
5J0/sec 
C] Successes 
KB/sec 
015 
3 57 
3 72 
oog 
012 
012 
Configure 
Avg Bytes 
160 
357 0 
35g7 
110 
110 
1273

 

在view result tree中可以看每次请求的交互,方便debug 

View Results Tree 
preapred insert userinfo 
preapred insert userinfo 
preapredinseftuserinfo 
preapred insert userinfo 
preapred insert userinfo 
preapred insert userinfo 
preapred insert userinfo 
select userinfo Request 
select userinfo Request 
select userinfo Request 
select userinfo Request 
select userinfo Request 
select userinfo Request 
select userinfo Request 
prepared select userinfo 
prepared select userinfo 
prepared select userinfo 
prepared select userinfo 
preapred insert userinfo 
prepared select userinfo 
prepared select userinfo 
Thread Name: CSMSJ08CTest 1-2 
sample start: 2014-06-2g 17 23 51 CST 
Load time: 70 
Latency O 
Size in bytes: 16 
Headers size in bytes: O 
Body size in bytes: 16 
Sample Count: 1 
Error Count: O 
Response code: 200 
Response message: OK 
Response headers: 
commysqljdbcJD8C4Connection@547a8f5e 
SampleResult fields 
ContentType: text/plain 
oataEncoding: UTF-8

 
 

更多debug,可以通过jmeter界面,选项-》log viewer来帮助debug jmeter运行时遇到的问题,要希望log viewer里面显示更多的log,可以修改bin文件夹下面的jmeter.properties 

log_level.jmeter=INFO  
log_level.jmeter.junit=DEBUG 
#log_level.jmeter.control=DEBUG 
#log_level.jmeter.testbeans=DEBUG 
#log_level.jmeter.engine=DEBUG 
#log_level.jmeter.threads=DEBUG 
#log_level.jmeter.gui=WARN 
#log_level.jmeter.testelement=DEBUG 
#log_level.jmeter.util=WARN 
#log_level.jmeter.util.classfinder=WARN 
#log_level.jmeter.test=DEBUG 
#log_level.jmeter.protocol.http=DEBUG 
# For CookieManager, AuthManager etc: 
#log_level.jmeter.protocol.http.control=DEBUG 
#log_level.jmeter.protocol.ftp=WARN 
#log_level.jmeter.protocol.jdbc=DEBUG 
#log_level.jmeter.protocol.java=WARN 
#log_level.jmeter.testelements.property=DEBUG 
log_level.jorphan=INFO 

posted @ 2017-11-28 11:50  春田花花同学会  阅读(171)  评论(0编辑  收藏  举报