在对数据库做sql压力测试时,我们需要对sql语句做一个参数化的处理。51Testing软件测试网xw/~a{
Jmeter自带的函数可以获取参数值,函数如下:
*pu(A_"n0_Random:产生随机数51Testing软件测试网,m? n$@X}aj!v{
_threadNum:线程号最为参数值
+]INpv$^+f}0_CSVRead:从csv文件中读取,可以指定读取的列51Testing软件测试网OM:ms}'vc
_StringFromFile:从文件中读取,一次读取一行,文件的格式必须是.dat文件
lU8M|Zp0以下面的select语句为例,对dfhruefhrhg对参数化处理,使每次执行时读取不同值51Testing软件测试网Uf |X(V;fl7LN
select b.sql_text from hr.aa a,hr.bb b where a.sql_id=b.sql_id and a.sql_id=‘dfhruefhrhg’
C,h6ClA0步骤1:准备一个csv文件存放参数值,hr.aa表中sql_id的值最为参数
N)O9eXJ0SQL>spool e:\sql_id.sql
bua}Sls f0SQL>select sql_id from hr.aa group by sql_id;51Testing软件测试网3BF6eGCj"{
SQL>spool off;51Testing软件测试网)EOJp PEJ
将sql_id.sql文件整理后重命名为sql_id.csv
8|XB0rl:fzj0步骤2:添加一个用户自定义变量51Testing软件测试网5N`;Sk[%?$C0}6G h
1.按ctrl+F快捷键弹出函数助手,选择_CSVRead函数
E:OK.@,W\#[c$~051Testing软件测试网zr?"Z0sP
其中CSV file to get values from填写csv文件的绝对路劲51Testing软件测试网
mv*Lx4J2@gb
CSV文件列号填写读取的csv文件的列数,列数从0开始51Testing软件测试网 Z*_Yg5k!R T:qjR
填写完之后点击生成
EM x?-p&`1\02.添加一个用户自定义变量:线程组–>添加–>配置原件–>用户自定义变量51Testing软件测试网R\v#_!wT.p/J
名称取为sql_id,变量值为上一步产生的函数字符串51Testing软件测试网%?QRFBk
步骤3:在jdbc请求中将dfhruefhrhg替换为产生的函数字符串${__CSVRead(E\sql_id.csv,0)}
T-^0u2HR?"p0select 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)}'
{d*?(f ?+W0变量值为${__CSVRead(E\sql_id.csv,0)}
WJF%e%f ?v0变量类型为varchar51Testing软件测试网T"F'oC l/x
Yg
步骤4:添加“察看结果树”,点击运行
q1Nb-\$d~Z2b U0