Jmeter作为虽然作为一款和LoadRunner相媲美的性能测试工具,但参数化功能实在不咋地,这里我大概总结了一下Jmeter的参数化方法!
至于参数化的用途,我这里就不多说了,做测试的都明白吧!本文主要介绍最全、最强大的参数化方法,对参数化有一个彻底的认识,这里提供了多种参数化方法,
先看一下没有参数化的脚本:这里随便写一个Beanshell 作为测试代码!不懂代码的没关系,只要知道print 就是打印信息的意思~!
文章结尾我会上传测试代码,注意运行的时候修改脚本里面的路径哦!
运行结果:按照代码中写死的:Hello,Test!输出!
Jmeter参数化之用户变量
在测试计划里面添加一个用户自定义的变量,变量名:tmpStr,变量值:你好,测试!
或者新建一个用户自定义变量元件,来添加自定义变量,这里不做演示:
代码:
print(vars.get("tmpStr"));
vars 是Jmeter提供的一个全局变量对象,用户操作Jmeter中的变量!
运行结果如图所示:
Jmeter参数化之用户动态设置变量
通过脚本,可以随时注册Jmeter变量,这样就可以增加变量来源的灵活性!
代码:
vars.put("tmpStr2","你好,祖国!");//动态注册一个变量tmpStr2
print(vars.get("tmpStr2"));
运行结果:前面的报错信息是因为Jmeter脚本框对中文的支持不是很好,这个不影响运行结果,对于这个错误,我也是无语,目前用的版本是:2.13 r1665067,只要在BeanShell 脚本框输入一个中文字符,保存的时候就会在控制台报一大堆错误!毕竟工具是老外开发,对中文还是有瑕疵啊!
Jmeter参数化之函数读取数据
随便选取了几个函数作为实例,函数具体参数和百度查询
__Random:生成随机数
__RandomString:生成随机字符串
__time:获取当前时间
__UUID:生成唯一UID
__threadNum:线程ID
__CSVRead:从文件中读取一列
_StringFromFile:从文件中读取一行
代码:
运行结果:
Jmeter参数化之从文件中读取数据
添加一个CSV Data Set Config 配置元件
线程组循环次数设置为10
运行结果:
Jmeter参数化之从数据库读取数据
如图所示,bd_user表结构:
JDBCconfig:
JDBC request:
正则表达式提取器:
运行结果:
附上测试脚本,脚本我全部都禁用了,测试的时候需要启用,启用步骤:右键,启用