更新时间:2023-10-12 GMT+08:00
分享

高级响应配置

Mock服务支持使用以下内置函数或变量引用生成动态响应。

引用变量

通过"{xxx}"设置引用变量,可以引用接口路径中的参数(路径变量),或是从请求参数中提取的变量。

如下图所示,"{device_id}"表示引用接口路径中的{device_id}变量值作为id的返回值。"{ uuid }"表示引用了请求中#saveAs("uuid")提取的uuid变量值。

延迟响应

通过#sleep(x)设置延迟响应。

如下图所示,#sleep(2)表示暂停2秒,即2秒之后再执行下一个指令。#write("xxx")表示返回xxx信息。

生成时间戳

通过#dateTime("yyyy-MM-dd'T'HH:mm:ss.SSSZ")设置按指定格式(Java SimpleDateFormat支持的格式)返回当前时间。

例如:响应体配置为{…"Now":#datetime("yyyy-MM-dd HH:mm:ss.SSS")…},消息匹配成功后,返回:{…"Now":"2020-06-14 07:18:43.779"…}。

递增函数

通过#seq("xxxx")设置获取递增数值变量。函数中仅有一个参数,表示递增数值变量,变量的起始值为0,增量为1。

每次消息匹配成功后,返回数值会增1。例如下图所示,配置规则为{…"id":#seq("number")…},首次消息匹配成功后返回{…"id":"0"…};第n次消息匹配成功后返回{…"id":"n-1"…}。

响应体中的其它参数值可以引用该变量,例如下图所示的规则{…"uuid":"{number}"…}。

上图中id和uuid的返回值有可能不一样,因为json是无序的,变量引用可能先执行,也可能后于#seq函数执行。

按格式递增

通过#seqf("haha_%s","id")可实现在格式化文本中设置递增数值变量。函数中有两个参数,第一个参数是格式化文本,第二个参数表示递增数值变量,变量的增量为1。

例如:配置规则为{…"str":#seqf("haha_%s","id")…},首次消息匹配成功后返回:{…"str":"haha_0"…};第n次消息匹配成功后返回:{…"str":"haha_n-1"…}。

字符串子串

通过#substring("xxx",x,x)获取字符串的子串。函数中有三个参数:第一个参数是指定字符串,可以是双引号引出的一个字符串,也可以是一个局部变量(双引号+花括号引出);第二个参数是起始字符的索引值(含);第三个参数是终止字符的索引值(不含)。

例如:假定id是一个局部变量,值为helloworld。配置规则为{…"result1":#substring("{id}",2,7),"result2":#substring("devops",0,3)…},消息匹配成功后返回{…"result1":"llowo","result2":"dev"…}。

拼接字符串

通过#append("xxx","xxx")实现字符串顺序拼接。函数有至少两个参数,每个参数都是一个字符串,该字符串可以是一个由双引号引出的字符串,也可以是一个局部变量(双引号+花括号引出),还可以是一个substring函数调用。

例如:假定id是一个局部变量,值为helloworld,name是另一个局部变量,值为zhaoyong1985。配置规则为{…"result":#append(#substring("{id}",2,5), "devops", "{name}")…},消息匹配成功后返回{…"result":"llodevopszhaoyong1985"…}。

Mock语法说明

在响应体中可以采用APIMock语法满足一些特定场景的需求。

MockJS语法支持请参考Mock语法说明

分享:

    相关文档

    相关产品