命令行启动
命令行运行:
jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>
#例如:
jmeter -n -t E:\PerformanceTest\test.jmx -l testLogFile.jtl -e -o ./output
jmeter -n -t rest2.jmx -l rest2.jtl
常用函数
- 同一请求设置多个不重复参数
# 设置用户变量loop_num表示循环次数,para_num表示一个请求内的参数个数
"p1":${__BeanShell(${__threadNum}*${loop_num}*${para_num}-${loop_num}*${para_num}+${para_num}*${__BeanShell(${__counter(TRUE)}-1)})},
"p2":${__BeanShell(${__threadNum}*${loop_num}*${para_num}-${loop_num}*${para_num}+${para_num}*${__BeanShell(${__counter(TRUE)}-1)}+99)},
# 如果只有1000个数据,那么可以取余重用
"p1":${__BeanShell((${__threadNum}*${loop_num}*${para_num}-${loop_num}*${para_num}+${para_num}*${__BeanShell(${__counter(TRUE)}-1)})%1000)},
"p2":${__BeanShell((${__threadNum}*${loop_num}*${para_num}-${loop_num}*${para_num}+${para_num}*${__BeanShell(${__counter(TRUE)}-1)}+99)%1000)},
- 随机数
${__Random(min, max, variableName[optional])}
- 随机取变量
${__RandomFromMultipleVars(v1|v2|v3, variableName[optional])}
- 递增计数
${__counter(FALSE, variableName[optional])}
- 不重复字符串
${__UUID}
- 将字符串转为大写或小写:
${__lowercase(Hello,)}
${__uppercase(Hello,)}
- 随机字符串:
${__RandomString(3,abcde,variableName[optional])}
- 取字符串中的子串
__substring()
${__javaScript("${__time(,)}".substring(0\,10),)}
${__groovy(vars.get("myVar").substring(0\,2))}
- 从文件中按行取字符串
_StringFromFile
- 分割字符串
__split
${__javaScript( "aaa|bbb|ccc".split("|")[1],d1)}
属性
文件位置:jmeter.properties和user.properties
- 通过BeanShell读写
props.get("START.HMS");//变量通过vars,其它同
props.put("TOKEN",vars.get("token"));
- 通过函数取值
${__property(TOKEN,,)}