[Jmeter]sql查询&获取当前日期
在测试中,需要从数据库中sql语句查询获取数据与请求结果进行校验
sql语句中,需要查询sr_rep_org 表格中的数据:
该表的格式为:
如下查询时:
SELECT * FROM sr_rep_org WHERE date = '2016-10-10 09:57:07'
1
获得的数据为:
现在需要查询的是2016-10-09 的数据
查询的语句为:
SELECT * FROM sr_rep_org WHERE date LIKE '2016-10-09 %'
1
在Jmeter中请求时,需要将2016-10-09 做为变量,为当天的日期
一种方式是:
使用JavaScript语句获取当天日期,如下:
${__javaScript((new Date()).getFullYear()+'-'+ ((new Date()).getMonth()+1) + '-' + (new Date()).getDate(),)}
1
查询的语句为:
SELECT * FROM sr_rep_org WHERE date LIKE '${__javaScript((new Date()).getFullYear()+'-'+ ((new Date()).getMonth()+1) + '-' + (new Date()).getDate(),)} %'
1
查询结果为空,发现原来语句中当月份或者天数为各位数时,获取到的日期中月份或者天数并没有补齐两位数,但数据库中日期格式为YYYY-MM-DD,故请求失败
现在使用Jmeter提供的日期函数:
Jmeter提供的日期函数为:
${__time(,)} 1450056496991 //无格式化参数,返回当前毫秒时间
${__time(yyyyMMdd,)} 20151214 //返回年月日
${__time(HHmmss,)} 092816 //返回时分秒
${__time(yyyyMMdd-HHmmss,)} 20151214-092816 //全
故查询语句为:
SELECT * FROM sr_rep_org WHERE date LIKE '${__time(yyyy-MM-dd)} %'
即可获得正确的数据查询