* jmeter参数化之一: 分类
jmeter的参数化分为四种
1) 所有环境配置常量
比如
server address, port, etc.
作用范围是所有testcase
2) 关于
test压力的配置参数
比如thread number, loop number, etc.
作用范围是特定的testcase
3) virutal user特定的量, 一般是
测试逻辑相关的数据
比如user name, password, etc
作用范围是某一个vu, 但是无论loop是多少, 值都是一样的
4) 每次引用都不一样的量, 一般是测试逻辑相关的数据
比如queryKey, etc
没有作用范围, 每一次对该变量的引用都是不一样的.
* jmeter参数化之二: 静态量
对于第一种和第二种来说, 为了达到最好的参数化效果,需要下面两步.
1) 创建环境配置参数文件, 和压力配置参数文件, 在调用jmeter的时候把参数传入
jmeter -t mytc1.jmx -q testenv.properties -q mytc1.properties
2) 创建testplan级别的UserDefinedVariables
为上面两个文件里的每一项创建一个条目, 比如
serverAddr ${__P(serverAddr, www.abc.com)}
threadNum ${__P(threadNum, 1)}
这样做的好处是, 在ide里调试的时候, 即使没有配置文件, testplan仍旧可以运行, 使用此处定义的"缺省值"
* jmeter参数化之三: virtual user特定的量
使用Pre Processor -> User Parameters控件. 该控件参数的形式是
VariableName User1 User2 ... Usern
loginName LUcy Dean ... Jack
passWord 123 231 ... 321
每个virutal user取的值永远都是一样的, 无论loop是多少
*jmeter参数化之三:每次引用都不一样的量
最重要的是CSVDataSet, 这样你可以使用外部的datasource. 使用CSVDataSet需要注意两点
1) csv文件和jmx文件要在同一个目录
2) csv的column名字(也就是引用的名字)需要配置, 在Variables Name配置项, 名字用逗号','分隔.
另外还有随机数Random Variable, 可以是virutal user特定,也可以是每次引用都不一样, 取决于你的配置.