常用API/过滤器

常用API

API 地址 参数 参数是否必须 说明 用例
时间戳 api://util/timestamp ts,form,dt
默认返回当前时间戳和时间
如果参数带时间戳ts, 返回ts所对应时间;
如果参数带时间格式form,返回相应格式的本机和北京时间,默认"form=%Y-%m-%d %H:%M:%S"
如果参数带时间字符串 dt, 返回 dt 对应的时间信息,
dt 优先级大于 ts, 指定 dt 须同时指定 form
Unicode转中文 api://util/unicode html_unescape,content html_unescape: 是否进行 html 反转义, 默认为 False,
启用该参数需对 content 进行 urlencode 编码
content: 要转码的内容
Url转中文 api://util/urldecode unquote_plus,encoding,content unquote_plus: 是否将加号(+)解码为空格( ),
默认为 False, 仅在 encoding 为 utf-8 时生效.
encoding: 指定编码, 默认为 utf-8
content:要转码的 urlencoded 内容,
如果 content 为非 utf-8 编码的 urlencoded 字符串, 请再次进行 urlencode 编码后再传入
正则表达式 api://util/regex data,p data: 原始数据
p: 正则表达式
字符串替换 api://util/string/replace p,s,t p: 正则表达式
s: 要替换的字符串
t: 要替换的内容
延时 api://util/delay seconds seconds:延时指定时间
大于30s均视为延时30.0s
RSA加密/解密 api://util/rsa key,
data
f
key:RSA私钥,Get方式请删除换行符
data:要加密或解密的数据
f:encode为加密,decode为解密
HTTP/HTTPs
/Socks5代理
scheme://username:password@
hostname:port
scheme,
username,
password,
hostname,
port
是(username, password除外) scheme:协议头,可选输入http, https,socks5
username:代理账户名,如无账户验证请删除'username:password@'部分
password:代理账户密码
hostname:可选输入IPv4地址,IPv6地址,域名
port:端口号,如端口号为80或443可删除':port'部分
GB2312编码 api://util/gb2312 content content: 要转码的内容
OCR识别 api://util/dddd/ocr img或imgurl, old img: 要识别的Base64图片内容
imgurl: 要识别的web图片Url地址
old: 是否采用旧模型, 默认为False
extra_onnx_name: 自定义Onnx文件名, 默认为空
目标检测 api://util/dddd/det img或imgurl img: 要检测的Base64图片内容
imgurl: 要检测的web图片Url地址
滑块识别 api://util/dddd/slide imgtarget,
imgbg,
simple_target,
comparison
imgtarget: 小滑块的Base64或url图片内容
imgbg: 背景图片的Base64或url图片内容(推荐使用 Post 方式)
simple_target: 小滑块图片是否包含过多背景, 默认为False
comparison: imgtarget是否不为小滑块, True表示为带坑位原图, False表示为小滑块, 默认为False

常用参数及过滤器

参数/过滤器 说明 用例 参考值
{{_proxy}} 代理, 用于HAR模板单个请求的测试. 格式:
scheme://username:password@hostname:port
支持HTTP/HTTPs/Socks5代理
\ \
{{__log__}} 日志, 用于单个模板任务的日志记录和输出.
支持多行日志, 用'\r\n'分隔
\ \
{{int(value, default=0, base=10)}} 将 value 转为整数,
base: 进制, 默认为10
default: 转换失败时的默认值, 默认为0
{{int("123", base=10)}} 123
{{float(value, default=0)}} 将 value 转为浮点数,
default: 转换失败时的默认值, 默认为0
{{float("123.456")}} 123.456
{{bool(value)}} 将 value 转为布尔值,
value 为("yes", "on", "1", "true", 1)时为True, 不区分大小写
{{bool("Yes")}} True
{{utf8(value)}} 当 value 为字符串时, 将其转为 utf-8 编码的字节流 {{utf8("你好")}} b'\xe4\xbd\xa0\xe5\xa5\xbd'
{{unicode(value, html_unescape=False)}} 将字符串 value 由 Unicode 转为中文,
html_unescape: 是否对 value 进行 html 反转义, 默认为 False
注意: 当 value 不为字符串类型时, 先尝试对其进行 utf-8 解码, 解码失败则对其进行 str() 转换.
可用于转换字节流为字符串
{{unicode("\u4f60\u597d")}} 你好
{{quote_chinese(value, sep="", encoding="utf-8", decoding="utf-8")}} 将 value 中所有 ord()>=128 的字节用 urlencode 表示 (注意和 urlencode 有区别),
sep: 分隔符, 默认为"", if
encoding: 编码, 默认为 utf-8,
decoding: 解码, 默认为 utf-8
{{quote_chinese("123中文QAQ&/:")}} 123%E4%B8%AD%E6%96%87QAQ&/:
urlencode(value,encoding="utf-8", for_qs=False) 将 value 字符串进行url编码,
encoding: 编码, 默认为 utf-8,
for_qs: 是否将斜杠 / 编码为 %2F, 将 %20 替换为 +, 默认为 False
{{ urlencode("http://www.baidu.com?name=张三&age=18 ") }} http%3A//www.baidu.com%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D18%20
b2a_hex(data[, sep[, bytes_per_sep=1]]) 将字节流 data 转为十六进制表示,
sep: 分隔符, 默认为空
bytes_per_sep: 每隔多少个字节添加一个分隔符, 默认为1
{{unicode(b2a_hex(utf8('1234567890abcdef'), sep=' ', bytes_per_sep=2))}} 31 32 33 34 35 36 37 38 39 30 61 62 63 64 65 66
a2b_hex(hexstr) 将十六进制 ASCII 字符串表示的 hexstr 转为字节流 {{unicode(a2b_hex('31323334353637383930616263646566'))}} 1234567890abcdef
b2a_uu(data, *, backtick=False) 将字节流 data 转为 uu 编码,
backtick: 是否使用反引号表示 0,
默认为False, 即使用空格表示 0
注意: data 的长度最多为45, 返回值包含换行符
{{unicode(b2a_uu(utf8('1234567890abcdef'), backtick=True))}} '0,3(S-#4V-S@Y,&%B8V1E9@``\n'
a2b_uu(data) 将单行 uu 编码的字符串 data 转为字节流 {{unicode(a2b_uu('0,3(S-#4V-S@Y,&%B8V1E9@``'))}} 1234567890abcdef
b2a_base64(data, *, newline=True) 将字节流 data 转为 base64 编码,
newline: 是否添加换行符, 默认为True
{{unicode(b2a_base64(utf8('1234567890abcdef'), newline=False))}} MTIzNDU2Nzg5MGFiY2RlZg==
a2b_base64(data) 将 base64 编码的字符串 data 转为字节流 {{unicode(a2b_base64('MTIzNDU2Nzg5MGFiY2RlZg=='))}} 1234567890abcdef
b2a_qp(data, *, quotetabs=False, istext=True, header=False) 将字节流 data 转为带引号的可打印编码,
quotetabs: 是否对制表符和空格进行编码, 默认为False
istext: 是否不对换行符进行编码, 默认为True
header: 是否将空格编码为下划线, 默认为False
{{unicode(b2a_qp(utf8('1234567890abcdef \n123'), quotetabs=True, istext=False, header=True))}} 1234567890abcdef=20=0A123
a2b_qp(data, *, header=False) 将带引号的可打印编码 data 转为字节流,
header: 是否将下划线解码为空格, 默认为False
{{unicode(a2b_qp('1234567890abcdef=20=0A123', header=True))}} 1234567890abcdef \n123
crc_hqx(data, value) 计算字节流 data 的 CRC 校验值,
value: 初始 CRC
{{crc_hqx(utf8('1234567890abcdef'), 0)}} 62028
crc32(data[, value]) 计算字节流 data 的 CRC 校验值,
value: 初始 CRC, 默认为0
{{crc32(utf8('1234567890abcdef'), 0)}} 1554196281
{{format(value, format_spec="")}} 格式化输出,
value: 要格式化的值,
format_spec: 格式化字符串,
默认为空, 详见: format-specification-mini-language
{{format(123.456, "0.2f")}} 123.46
{{b64encode(value, encoding="utf-8")}} 计算 value 的 base64 编码值,
encoding: 编码, 默认为 utf-8
{{b64encode("hello")}} aGVsbG8=
{{b64decode(value, encoding="utf-8")}} 计算 value 的 base64 解码值,
encoding: 编码, 默认为 utf-8
{{b64decode("aGVsbG8=")}} hello
{{to_uuid(value, namespace='6ba7b811-9dad-11d1-80b4-00c04fd430c8')}} 计算 value 的 uuid5 生成值;
namespace: uuid所使用的命名空间,
默认为: 6ba7b811-9dad-11d1-80b4-00c04fd430c8
{{to_uuid("hello")}} 074171de-bc84-5ea4-b636-1135477620e1
{{md5(value)}} 计算 value 的 md5 值 {{md5("123")}} 202cb962ac59075b964b07152d234b70
{{sha1(value)}} 计算 value 的 sha1 值 {{sha1("123")}} 40bd001563085fc35165329ea1ff5c5ecbdbbeef
{{password_hash(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds, ident=ident)}} 计算 password 的 加密hash 值;
hashtype: Hash 类型 ("md5", "sha256", "sha512", "blowfish"), 默认为 sha512
salt: password 盐值
salt_size: password 盐值尺寸
rounds: password hash迭代次数
ident: blowfish 算法版本, 默认为 2b
{{password_hash("hello")}} $6$rounds=656000$KSQu5IKoWLdHDYqJ$W.MQWC3LsuzRsQ35.07h48Mr3TMJ9Cjj0du.5mGEW2yOFkQlxi/ySwwG5Z4SKVewpWn8PFPZLUuTrAwcV0ke0.
{{hash(value,hashtype)}} 计算 value 的 hash 值;
hashtype: Hash 类型, 默认为 sha1
{{hash("123","sha256")}} a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3
{{aes_encrypt(word, key, mode, iv, output_format='base64', padding=True, padding_style='pkcs7')}} 计算 word 的 AES 加密值;
word: 待加密文本
key: 密钥, 长度应为16, 24或32
mode: 加密模式, ("ECB","CBC","CFB","OFB","CTR","GCM")
iv: 初始化向量, 长度为16
output_format: 输出格式, 默认为 base64
padding: 是否使用填充, 默认为 True
padding_style: 填充方式, 默认为 pkcs7
{{aes_encrypt("hello", "1234567890123456", "ECB", "1234567890123456", "hex")}} ebb7c703e675db3da397038b4c17823c
{{aes_decrypt(word, key, mode, iv, input_format='base64', padding=True, padding_style='pkcs7')}} 计算 word 的 AES 解密值;
word: 待解密文本
key: 密钥, 长度应为16, 24或32
mode: 加密模式, ("ECB","CBC","CFB","OFB","CTR","GCM")
iv: 初始化向量, 长度为16
input_format: 输入格式, 默认为 base64
padding: 是否使用填充, 默认为 True
padding_style: 填充方式, 默认为 pkcs7
{{aes_decrypt("ebb7c703e675db3da397038b4c17823c", "1234567890123456", "ECB", "1234567890123456", "hex")}} hello
{{timestamp(type)}} 调用 time.time() 函数, 获取时间戳
type: 'int'表示输出整数, 'float'表示输出小数, 默认为'int'
{{timestamp('float')}} 1599990277.4615508
{{date_time(date,time,diff)}} date: 0/1表示是否显示日期, 默认为 1;
time: 0/1表示是否显示时分秒, 默认为 1;
diff: 时间差, 单位为h, 默认为 0
{{date_time(0,1,10)}}(在 18:06 测试) 04:06:21
{{is_num(value)}} 判断 value 是否为数字
不支持科学计数
{{is_num('0.5')}} True
{{add(*args)}} 对多个数据进行求和运算 {{add(3,2)}} 5.0
{{sub(*args)}} 对多个数据进行减法运算 {{sub(3,2)}} 1.0
{{multiply(*args)}} 对多个数据进行乘法运算 {{multiply(3,2)}} 6.0
{{divide(*args)}} 对多个数据进行除法运算 {{divide(3,2)}} 1.5
{{Faker(locale="zh_CN").function()}} 调用python包faker里的Faker类来创建伪数据,
locale为生成数据的文化选项,
需同时调用其提供的方法, 如name(),
Docs: https://faker.readthedocs.io/
{{Faker(locale='zh_CN').name()}} 苗桂芝
{{regex_replace(value, pattern, replacement, count, ignorecase, multiline)}} 匹配替换为指定文本, re.sub 方法实现;
value: 要被查找替换的原始字符串,
pattern: 正则中的模式字符串
replacement: 匹配后替换字符串
count: 替换次数, 默认为 0 (全部替换)
ignorecase: 忽略大小写, 默认为 False
multiline: 多行匹配, 默认为 False
{{regex_replace("账号: 123456789A!", "[a-z|0-5]", "*", 0, True, False)}} 账号: *****6789*!
{{regex_findall(value, pattern, ignorecase, multiline)}} 匹配文本并返回列表形式的字符串, re.findall 方法实现;
value: 要被查找的原始字符串,
pattern: 正则中的模式字符串
ignorecase: 忽略大小写, 默认为 False
multiline: 多行匹配, 默认为 False
{{regex_findall("账号: 123456789A!", "[a-z|0-5]", True, False)}} ['1', '2', '3', '4', '5', 'A']
{{regex_search(value, pattern, *args, **kwargs)}} 匹配文本并返回列表形式的字符串, re.search 方法实现;
value: 要被查找的原始字符串,
pattern: 正则中的模式字符串
*args: 形如 "\\1", "\\g"
**kwargs: 形如 ignorecase=True, multiline=False
{{regex_search("账号: 123456789A!", "账号: ([0-5])([0-5]+).*([a-z]+)", "\\2", "\\3", ignorecase=True)}} ['2345', 'A']
{{regex_escape(value, re_type)}} 转义 value正则表达式 中的特殊字符, re.escape 方法实现;
value: 要被转义的原始正则表达式,
re_type: 转义类型("python", "posix_basic") 默认为 python
{{regex_escape("^f.*o(.*)$")}} \\^f\\.\\*o\\(\\.\\*\\)\\$
{{ternary(value, true_val, false_val, none_val)}} 为 True/False/None 定义不同的值;
value: 原始表达式/原始布尔值 或 原始变量,
true_val: 当 value为True 时返回该值
false_val: 当 value为False 时返回该值
none_val: 当 value为None或未定义 时返回该值, 默认为 None
{{ternary(variable == "needs_restart", "restart", "continue") }} continue
{{random(min, max, unit)}} 随机生成从 min 到 max 的 unit 位小数 {{random(0,10,4)}} 0.8696
{{shuffle(mylist, seed=None)}} 随机打乱列表 mylist, seed 为随机种子 {{shuffle([1,2,3,4,5,6,7,8,9,10])}} [2, 1, 3, 4, 5, 6, 7, 8, 9, 10]
{{type_debug(value)}} 返回 value 的类型名, 用于调试 {{type_debug(unicode(""))}} str
{% for variable in variables %} 开始一个 for 循环 \ \
{% endfor %} 结束 for 循环 \ \
{% for value in range(start, stop, step) %} 开始一个基于 range 的 for 循环,
range() 为 Python 函数
start: 开始值, 默认为 0
stop: 结束值, 默认为 0
step: 步长, 默认为 1
value: 循环中的值, 可不预先定义
\ \
{% for value in list(variable) %} 开始一个基于 list 的 for 循环,
list() 为 Python 函数
variable: 要转换为列表的变量
value: 列表中的元素, 可不预先定义
\ \
{% while int(loop_index0) < While_Limit and Conditional_Expression %} 开始一个 while 循环,
循环超时默认为 30 分钟
While_Limit: 循环最大次数
Conditional_Expression: 条件表达式
\ \
{% endwhile %} 结束 while 循环 \ \
{{ loop_length }} 当前 for 循环的长度,
结果为字符串形式
\ \
{{ loop_index }} 当前 for/while 循环的索引, 从 1 开始计数,
结果为字符串形式
\ \
{{ loop_index0 }} 当前 for/while 循环的索引, 从 0 开始计数,
结果为字符串形式
\ \
{{ loop_revindex }} 当前 for 循环的索引, 从 1 开始倒序计数,
结果为字符串形式
\ \
{{ loop_revindex0 }} 当前 for 循环的索引, 从 0 开始倒序计数,
结果为字符串形式
\ \
{{ loop_first }} 是否为当前 for 循环的开始,
结果为 True 或 False 的字符串形式
\ \
{{ loop_last }} 是否为当前 for 循环的结束,
结果为 True 或 False 的字符串形式
\ \
{{ loop_depth }} 当前 for/while 循环的嵌套深度, 从 1 开始计数,
结果为字符串形式
\ \
{{ loop_depth0 }} 当前 for/while 循环的嵌套深度, 从 0 开始计数,
结果为字符串形式
\ \
{% if Conditional_Expression %} 开始一个 if 判断
Conditional_Expression: 条件表达式
\ \
{% else %} if 判断条件不成立 \ \
{% endif %} 结束 if 判断 \ \
safe 关闭 html 自动转义 {{ "<em>name</em>" | safe }} <em>name</em>
length 长度 {{ "abc" | length }} 3
wordcount 计算字符串中单词的个数 {{ "abc def" | wordcount }} 2
striptags 删除字符串中所有的html标签, 如果出现多个空格, 将替换成一个空格 {{ "<a>123</a> <p>456</p>" | striptags }} 123 456
upper 将字符串转为大写 {{ "abc" | upper }} ABC
lower 将字符串转为小写 {{ "ABC" | lower }} abc
capitalize 将字符串首字母大写 {{ "abc" | capitalize }} Abc
title 将字符串中每个单词的首字母大写 {{ "abc def" | title }} Abc Def
trim 删除字符串两端的空白字符 {{ " abc " | trim }} abc
ltrim 删除字符串左端的空白字符 {{ " abc " | ltrim }} abc
rtrim 删除字符串右端的空白字符 {{ " abc " | rtrim }} abc
reverse 反转字符串等可迭代对象 {{ "abc" | reverse }} cba
first 返回字符串等可迭代对象的第一个元素 {{ "abc" | first }} a
last 返回字符串等可迭代对象的最后一个元素 {{ "abc" | last }} c
join(d="", attribute=None) 将列表等可迭代对象的元素用指定字符连接,
d: 连接符, 默认为空
attribute: 指定属性, 该值不为 None 时获取该属性的值, 默认为 None
{{ ["a","b","c"] | join(",") }} a,b,c
pprint 优雅地打印变量或对象, 用于调试 {{ {"a":1,"b":2} | pprint }} {'a': 1, 'b': 2}
default(default_value, boolean) 如果变量或字符串为空, 则将变量或返回值设置为 default_value 默认值,
boolean: 是否在变量或字符串评估为 False 时将变量或返回值设置为 default_value 默认值, 默认为 False
{{ undefined | default("abc") }} abc
indent(width=4, first=False, blank=False) 缩进字符串,
width: 缩进宽度, 默认为 4
first: 是否缩进第一行, 默认为 False
blank: 是否缩进空行, 默认为 False
{{ "abc\ndef\nghi\n" | indent(2, True, True) }} " abc\n def\n ghi\n "
min(case_sensitive=False, attribute=None) 返回字符串或列表等可迭代对象中的最小值,
case_sensitive: 是否区分大小写, 默认为 False
attribute: 指定属性, 该值不为 None 时获取具有该属性最小值的对象, 默认为 None
{{ ["a","b","c"] | min }} a
max(case_sensitive=False, attribute=None) 返回字符串或列表等可迭代对象中的最大值,
case_sensitive: 是否区分大小写, 默认为 False
attribute: 指定属性, 该值不为 None 时获取具有该属性最大值的对象, 默认为 None
{{ ["a","b","c"] | max }} c
replace(old, new, count=None) 将字符串中的 old 替换为 new,
count: 替换次数, 默认为全部替换
{{ "123" | replace("1","a") }} a23
round(precision=0, method="common") 对数字进行四舍五入,
precision: 精度, 默认为 0
method: 舍入方法, common 为四舍五入, ceil 为向上取整, floor 为向下取整, 默认为 common
{{ 1.234 | round(2, "common") }} 1.23
sort(reverse=False, case_sensitive=False, attribute=None) 对字符串或列表等可迭代对象进行排序,
reverse: 是否倒序, 默认为 False
case_sensitive: 是否区分大小写, 默认为 False
attribute: 指定属性, 该值不为 None 时获取具有该属性最大值的对象, 默认为 None
{{ "acDcsrd" | sort | join(",") }} a,c,c,D,d,r,s
truncate(length=255, killwords=False, end='...') killwords=True 时在第 length 处截断,最后补上一个 end {{ "abcd" | truncate(2, True,'q') }} aq
wordwrap(width=79, break_long_words=True, wrapstring=None, break_on_hyphens=False) 将字符串按照指定宽度进行换行,
width: 换行宽度, 默认为 79
break_long_words: 是否在长单词处换行, 默认为 True
wrapstring: 换行符, 默认为 None, 表示使用 "\n" 换行,
break_on_hyphens: 是否在连字符处换行, 默认为 False
{{ "12345678-90 abcdefgh" | wordwrap(5, True, " ", True) }} 12345 678- 90 ab cdefg h