在对数据库做sql压力测试时,我们需要对sql语句做一个参数化的处理。51Testing软件测试网cn Y}*spF5t
Jmeter自带的函数可以获取参数值,函数如下:51Testing软件测试网 g,l4?jw `,D/A
_Random:产生随机数51Testing软件测试网1ah Y3E6I6Gf @'h
_threadNum:线程号最为参数值51Testing软件测试网'\
c(C.t,A+v(hqW&h
_CSVRead:从csv文件中读取,可以指定读取的列51Testing软件测试网
nF*s.i5H_ RQ-R ?"jN-f
_StringFromFile:从文件中读取,一次读取一行,文件的格式必须是.dat文件
_L Q"TI-f0以下面的select语句为例,对dfhruefhrhg对参数化处理,使每次执行时读取不同值51Testing软件测试网F3Z7Nnw(L|)C
select b.sql_text from hr.aa a,hr.bb b where a.sql_id=b.sql_id and a.sql_id=‘dfhruefhrhg’
~(^
D:v [
{0步骤1:准备一个csv文件存放参数值,hr.aa表中sql_id的值最为参数51Testing软件测试网:j3M)~
K c#^5{ l
SQL>spool e:\sql_id.sql51Testing软件测试网,q)o6V)e5V3x@
SQL>select sql_id from hr.aa group by sql_id;
h ?L,BP F|0SQL>spool off;
)\0?Ut'M$F8O%okU
f0将sql_id.sql文件整理后重命名为sql_id.csv
v+N7p:Qu0步骤2:添加一个用户自定义变量
*]#U(?)eIf N01.按ctrl+F快捷键弹出函数助手,选择_CSVRead函数51Testing软件测试网-v}K5h?|I(~b&g
kV#|%X#Ff*Hs&x
M0其中CSV file to get values from填写csv文件的绝对路劲51Testing软件测试网&\!xW,\*p
CSV文件列号填写读取的csv文件的列数,列数从0开始
1sK2g:vin(g~$A+J'a0填写完之后点击生成
EiR k6ux'_02.添加一个用户自定义变量:线程组–>添加–>配置原件–>用户自定义变量
7v[)OF.c"[0名称取为sql_id,变量值为上一步产生的函数字符串51Testing软件测试网N;H%g8CR:{0^F
步骤3:在jdbc请求中将dfhruefhrhg替换为产生的函数字符串${__CSVRead(E\sql_id.csv,0)}
VyERy.v-V iJY+w+`0select b.sql_text from hr.aa a,hr.bb b where a.sql_id=b.sql_id and a.sql_id=‘${__CSVRead(E\sql_id.csv,0)}'
"i%{1_s8K0{y[0变量值为${__CSVRead(E\sql_id.csv,0)}
8C%M[N0\ {6b x m v0变量类型为varchar51Testing软件测试网p@6Z];j^5F0]0a#T
步骤4:添加“察看结果树”,点击运行
!r
G;?8wLA:[;V&xS0