JMeter 接口测试必知的参数化实现方式

一:参数化定义

什么是参数化?从字面上去理解的话,就是事先准备好数据(广义上来说,可以是具体的数据值,也可以是数据生成规则),而非在脚本中写死,脚本执行时从准备好的数据中取值。

JMeter提供了多种参数化方式,下面就其中常用的4种展开阐述。

方式 适用场景
CSV Data Set Config 我们通常所指的参数化。数据存储在文件中,参数化取值范围大,灵活性强
User Parameter 适用于参数取值范围很小时
函数助手 _Random等函数,生成随机数字和随机字符串实现参数化
User Defined Variables 用户自定义变量,更多用于设置全局变量

 

 

二:参数化实现

2.1 CSV Data Set Config

在JMeter中提起参数化,我们默认就想到CSV Data Set Config(以下简称CSV),CSV能够读取文件中的数据并生成变量,被JMeter脚本引用,从而实现参数化。下面我们来详细探究一下。

CSV简介

线程组右键–>添加–>配置元件–>CSV Data Set Config,就创建了一个CSV,界面是这个样子的:

 

 

 

CSV实例

下面看一个实例。首先有userInfo.txt的文件,放置在bin目录中,内容如下:

 

 

 

 

 

 

  • 文件名:文件在bin目录中,使用相对目录
  • 变量名称:两列数据分别属于mobile和password两个变量
  • 分隔符:以逗号分割

在HTTP请求中引用CSV生成的变量的方式是${变量名}的方式:

 

 

 运行脚本,察看结果树:

 

 

 可以看到,文件中的数据被脚本成功引用。JMeter使用CSV实现参数化就是这么简单。

注意事项

CSV使用中最常见的一个问题是文件路径不对。当遇到这种问题时,因为运行脚本没有明显提示,许多人遇到后会感觉很懵,不知道问题在哪。其实,仔细观察会发现右上角黄色三角处数字在增加,点击该区域便打开了日志,日志里记录了相应错误:File userInfo2.txt must exist and be readable,也就是提示参数化文件不存在或路径不可达。

 

 

 

2.2 User Parameters

User Parameters,也就是用户参数,也能实现参数化。

创建方式:HTTP请求上右键–>添加–>前置处理器(Pre processors)–>用户参数。

通过【添加变量】添加mobile和password两个变量,通过【添加用户】添加3组数据:

 

 

 在HTTP请求中引用参数化的数据:

 

 

 运行脚本,设置好的数据被成功引用。

 

 

 

2.3 用户定义的变量

用户自定义的变量,也可以实现请求参数的参数化。

创建方式:线程组上右键–>配置元件(config element)–>用户定义的变量。

 

 

 

如上图,用起来也很简单,添加变量名和相对应的值就可以了。后面引用变量和前面一样,使用${mobile}的方式。

【用户定义的变量】一般并非用来做HTTP请求参数化,而是用来定义全局变量,比如参数化文件路径、host、url等。

【用户定义的变量】创建在【线程组】上,则在线程组内生效,如果创建在【Test Plan】上,则对所有线程组生效。

2.4 Random

函数助手中的Random函数,

创建方式:Tools–>函数助手对话框–>选择一个功能–>_Random:

 

 

 上图中,生成了一个表达式:${__Random(8000,9000,)},我们用这个表达式替换想要参数化的变量值,例如下图中的price变量:

 

 

 运行脚本,察看结果树,可以看到效果:

 

 

 这种方式适用于值在一定区间无规律随机取值的变量参数化,例如价格、数量、手机号码等,并不适用于有较强规则的变量进行参数化。

posted @ 2021-05-12 00:22  Jc_code  阅读(585)  评论(0编辑  收藏  举报