在一个接口测试中,需要提交的请求中要带时间,在看完jmeter帮忙文档,正好总结一下
1、需求
在一个XML请求中请求数据要带有时间,如下
<?xml version="1.0" encoding="utf-8"?><Message Version="1.0" IssueTime="201404130846007"><ID>/lte/pdetail</ID><Request><Pid>493</Pid></Request></Message>
如图中橘色标识的
2、文档
正好jmeter有个time函数,管方文档如下
解释为:
函数__time可以通过多种格式返回当前时间
函数参数 | 描述 | 是否必需 |
格式 | 设置时间所采用的格式 | 否 |
变量名 | 待设置变量名 | 否 |
如果省略了格式字符串,那么函数会以毫秒的形式返回当前时间。其他情况下,当前时间会被转成简单日期格式。包含如下形式:
YMD = yyyyMMdd
HMS = HHmmss
YMDHMS = yyyyMMdd-HHmmss
USER1 = whatever is in the Jmeter property time.USER1
USER2 = whatever is in the Jmeter property time.USER2
用户可以通过修改JMeter属性来改变默认格式,例如,time.YMD=yyMMdd
注:jmeter属性文件在jmeter启动目录jmeter.properties文件中,默认为如下:
# __time() function configuration
#
# The properties below can be used to redefine the default formats
#---------------------------------------------------------------------------
#time.YMD=yyyyMMdd
#time.HMS=HHmmss
#time.YMDHMS=yyyyMMdd-HHmmss
#time.USER1=
#time.USER2=
如果要自定义自己的格式,可以直接将time.USER1写上自己需要的格式,然后调用时,只需要调用${__time(USER1,)}即可,不过一般直接在Format中写格式,如:${__time(yyyy-MM-dd,)}
3、实践
直接在http请求参数中加上time函数就可调用,如下图中红色圈中所示:
实际的请求就为:
参考文档:http://jmeter.apache.org/usermanual/functions.html#__time