Jmeter中的参数化测试主要包括两部分内容:利用生成或预制的的参数发起请求,以及从接口返回值中获取参数,后者获取参数后还可以交给下一步请求使用。
User Defined Variables元件可以自定义参数常量,该配置可以赋予测试计划全局,也可以赋予线程组。
对于需要引用变量的位置,我们可以使用占位符${}
的形式引用。
Jmeter提供了CSV Data Set Config元件,用于从CSV文件中加载测试数据。我们一般将这个组件放在测试计划的头部或是线程组的头部。
假设我们有如下CSV数据文件users.csv
:
100232
100233
100234
Jmeter中我们可以这样编写读取逻辑:
如上配置,我们生成了一个userId
变量,如果有多个变量这里可以使用逗号分隔。此外其中有个Ignore first line配置,对于有表头的CSV文件可以打开这个配置,忽略掉文件的第一行。
此时,CSV中的每一行数据会被循环应用到每一次请求中,我们可以和设置普通变量一样,使用${}
占位符引用。
Jmeter中的Post Processors包含了很多Extractor,我们可以在采样器的下一级创建这些后置处理器。它们可以用于从接口返回值中读取参数,常用的有JSON Extractor、XPath Extractor等。
以JSON Extractor为例,我们使用JSONPATH表达式从中提取数据就可以了,数据会以变量的形式传给下一个元件。
下面例子中,我们会在“查询用户信息接口”采样器执行完后从中提取值,作为变量由下面2个IF控制器进行判断。