如何定义
在 用例集、用例、取样器中,可通过 variables 定义变量
变量引用方式:${变量名}
如
testclass: httpsampler
variables:
var1: value1
config:
body:
name: ${var1}
在执行过程中会自动将 name的值替换为变量var1的值value1
函数
当 一个数据的值需要动态生成时,可通过函数在测试过程中动态生成
函数引用方式:__函数名称(参数1,参数2,参数3,……) 或 __函数名称(参数1=val1,参数2=val2,参数3=val3,……)
当使用第一种引用方式时,需严格按照函数实现时设置的参数顺序来定义参数
如
testclass: httpsampler
variables:
var1: __RandomString(10)
config:
body:
name: ${var1}
password: __RandomString(length=10,string=abcdefghijklmn1234567890)
在执行过程中会自动先执行函数生成 变量var1的值,再将name的值替换为变量var1的值
内置函数
Digest
生成信息摘要,通常为MD5,支持四个参数
参数:
* algorithm: 算法,允许为空,默认为md5
* content: 待编码的原始内容,非空
* salt:盐,允许为空
* upper: 是否将结果转为大写,允许为空,默认 false
GoogleAuthCode
生成谷歌身份验证器的验证码,支持一个参数
参数:
* secret: 谷歌验证器安全码,非空,通过该安全码生成谷歌验证码
Json
将传入的参数转换为 json对象
无固定参数,仅支持keyword形式,将参数转换为 json对象
JsonRead
通过 json path 读取数据
参数
* json: json对象
* path: jsonpath
Random
生成(伪)随机数,支持一个参数
参数:
* bound: 最大值,允许为空,当传入的bound值小于1或空值时,则不限制返回的数据(可能为正数,也可能为负数)
RandomString
获取随机字符串,支持三个参数,且三个参数都允许为空
参数:
* length: 返回的随机字符串长度,允许为空,默认:10
* string: 基础字符串,允许为空,如果传了该参数,则从该参数中获取字符作为种子生成随机字符串
* upper: 是否将生成的字符串转为大写,允许为空,默认:false
TimeShift
对时间进行操作,支持两个参数,且两个参数都允许为空,当两个参数都未传递时,则返回当前时间戳
参数:
* format: 指定日期时间格式,如果该参数未传递,则返回时间戳
* amount: 表示要从日期参数的值中添加或减去多少天,几小时或几分钟。如果该值未被传递,则不会将任何值减去或添加到日期参数的值中。
* PT20.345S: 解析为 20.345秒
* PT15M: 解析为 15分钟
* PT10H: 解析为 10小时
* P2D: 解析为 2天
* P2DT3H4M: 解析为 2天3小时4分钟
* P-6H3M: 解析为 -6小时+3分钟
* -P6H3M: 解析为 -6小时-3分钟
* -P-6H+3M: 解析为 +6小时-3分钟
Timestamp
获取当前时间,支持一个参数,当格式化参数未传递时,则返回当前时间戳
参数:
* format: 指定日期时间格式,如:yyyy-MM-dd、yyyy-MM-dd HH:mm:ss、yyyyMMdd、yyyyMMddHHmmss
UrlDecode
将传入的字符串进行 url decode,支持一个参数
参数:
* content: 待url decode的字符串,非空
UrlEncode
将传入的字符串进行 url encode,支持一个参数
参数:
* content: 待url encode的字符串,非空
Uuid
返回一个UUID,无参数
Faker
使用 JavaFaker 库生成假数据,支持两个参数
参数:
* key:假数据类型,格式为JavaFaker 库的 ClassName.MethodNmae,如:Name.fullName,详细请参考 http://dius.github.io/java-faker/apidocs/index.html
* locale:本地化,允许为空,默认值 zh-CN,详见:https://github.com/DiUS/java-faker/blob/master/README.md