|
|
@@ -178,6 +178,7 @@ mql语句扩展说明:
|
|
|
filecount 当前文件的总计数
|
|
|
dircount 当前目录的总计数
|
|
|
topcount 整个执行进程的总计数
|
|
|
+ rand 0 ~ 1000000 之间的随机整数
|
|
|
now 当前时间,格式标记 t 相当于 2006-01-02 15:04:05
|
|
|
mql语句中第一个 /** 到 最后一个 **/ 之间的内容可以标注执行若干预定义动作,多个动作标注用空格分隔
|
|
|
如 /** output() sleep(1) **/ 表示忽略当前语句执行过程中的任何报错,执行完成后等待一秒后再继续执行下一语句
|
|
|
@@ -191,10 +192,10 @@ mql语句扩展说明:
|
|
|
fork(G) 新建并行线程分支,执行当前语句的同时,继续执行后续语句,G 为线程组名,配合 wait 使用
|
|
|
wait(G) 执行当前语句前,等待之前创建的分支结束,G 为线程组名,对应由 fork 创建的所有同名线程分支,G 为空表示所有
|
|
|
beforerun(F,...) 执行当前语句前,执行一系列预定义函数,以通过一些简单逻辑处理产生模拟数据,目前支持的函数包括
|
|
|
- set(S,V) 设置变量,S 为变量名,V为变量值
|
|
|
+ set(S,V) 设置变量,S 为变量名,V为变量值,目前仅支持时间值和整数值
|
|
|
add(S,V,u) 累加变量,S 为变量名,V为增量值,u为可选的变量单位,如时间段单位 second,minute,hour
|
|
|
mod(S,V) 变量取模,相当于 S = S % V
|
|
|
- case(C,F) 根据条件 C 执行函数 F
|
|
|
+ case(C,F) 根据条件 C 执行函数 F,C为比较判断表达式,目前仅支持等于“=”判断
|
|
|
------------- 针对错误处理的相关动作
|
|
|
retry(N) 出错重试 N 次,N为自然数,默认为 0,
|
|
|
onerror(O,E,...) retry后仍然有错时的处理方法,E为特定的错误信息关键字,不指定则为任意错误,O为处理方法,包括:
|
|
|
@@ -1165,6 +1166,11 @@ func (mt *MQLTest) runAction(basedir, ffpath, mqlkey, mqlsn string,
|
|
|
}
|
|
|
v = v.Add(d)
|
|
|
mt.setValue(basedir, ffpath, mqlkey, mqlsn, staticactions, ak, v)
|
|
|
+ default:
|
|
|
+ av := cast.ToInt(va)
|
|
|
+ bv := cast.ToInt(vb)
|
|
|
+ nv := av + bv
|
|
|
+ mt.setValue(basedir, ffpath, mqlkey, mqlsn, staticactions, ak, nv)
|
|
|
}
|
|
|
case "mod":
|
|
|
var a, b, va, vb any
|