
所以本篇主要说一下写脚本的思路以及函数助手中用到的函数
整体思路

要想构造数据,首先必须登录获取token,后续操作都依赖这个生成的token;
本次需要构造3种类型的数据,每种数据填写的字段不同,所以编写脚本时,利用【事务控制器】,把不同作用的脚本进行分类,例如登录操作、构造A类型数据、构造B类型数据,这样脚本运行时,结果看起来一目了然; 不同请求需要的headers可能不同,所以把【HTTP信息头管理器】添加在各个【事务控制器】下,只对其下的请求生效(或者再细分添加某个具体请求下); 根据参数实际情况选用【HTTP请求默认值】以及【JSON提取器】、【正则表达式提取器】以及【函数助手】等,帮助实现参数化
添加时间戳 timestamp

有些请求携带的参数中包含时间戳,可以是放在headers中,也可以是放在请求参数中,如下

依次点击【选项】-【函数助手对话框】,打开函数助手


点击【帮助】会默认打开浏览器显示该函数的说明文档,
谷歌硬核翻译如下

(1)不填写任何格式,直接点击【生成】,在结果区会展示一个13位的时间戳(毫秒级)

(2)如果要生成10位数字时间戳(秒级),则需要在格式字符中输入“/1000”

(3)生成特定格式的日期
帮助文档中提供了如下几种
YMD = yyyyMMdd
HMS = HHmmss
YMDHMS = yyyyMMdd-HHmmss
依次来试一下

HMS ,等价于 HHmmss

YMDHMS ,等价于 yyyyMMdd-HHmmss

也可以自己来自定义一下显示格式

之前说生成时间戳时,变量名是非必填的,下面看下填写变量名后是什么效果

注意:当点击【生成】后,“拷贝并粘贴函数字符串”后会出现一串变量名,这个可以理解为时间戳变量,把它放到请求参数中,就意味着获取到了当前时间,如下

有些请求会用到过去或将来的 某一个时间,
jmeter有一个函数可以满足这个需求【__timeShift】

谷歌硬核翻译帮助文档如下

下面来试验一下

(2)显示格式为时间戳(毫秒级),时间基准为当前时间,向后推移10分钟


(4)显示格式为 yyyy/MM/dd HH:mm:ss,时间基准为 2020/04/17 17:38:00,向前推 10分20秒
有2种写法:PT-10M-20S 或 -PT10M20S

ps.位移时间时,注意“-”添加的位置即可,“+”可以省略

生成随机数

一种是利用【__Random】函数(生成的随机数不唯一,可能会重复)

一种是利用【__UUID】函数(每次都会生成唯一的随机数)



喜欢记得来一个






