notes

下载

下载地址

下载完后解压,双击 bin 目录下的 jmeter 可执行文件,就能运行。

配置终端快速启动

~/.bash_profile 中添加以下两句

export JMETER_HOME=/Users/xxxx/Downloads/apache-jmeter-5.1.1
export PATH=$M2_HOME/bin:$JMETER_HOME/bin:JAVA_HOME/bin:$PATH:.

执行 source ~/.bash_profile 就可以在终端直接输入 jmeter 启动。

创建第一个测试接口

点击 test plan -> add -> threads(users) -> threads group 创建一个线程组(用户组),jmeter使用一个线程代表一个用户,所以创建线程组就表示创建一个用户组,接下来就可以用用户组模拟多个用户同时对接口发起并发请求。

用户组创建完毕后,对右边的属性进行设置:

number of threads: 默认为1,说明用户数量为1(请求的并发数量为1)
ramp-up period: 默认为0,表示上面设置的线程数在多少秒内发送完毕,比如设置成10,线程数也设置成10,就表示10秒内发送10个请求,1秒发送1个请求。

接下来在右键 thread group 点击 add -> sampler -> http request 创建一个http请求文件

右边的属性里面可以设置一些 http 请求的 method,path,paramters,就不仔细说了。

提取响应json中的字段

以返回 json 格式作为例子,想要提取 http response 中的json字段作为之后的请求参数使用,必须创建一个 json extractor(json提取器)。

右键 http request 文件,add -> post processors(后置处理器) -> json extractor 创建一个 json extractor。

查看右边的属性设置:

names of created variables: 表示你要创建的变量名,如写 access_token
json path expressions: 表示json的解析路径,如前一个 http response 的 json 为 `{data:{access_token:"0213978126362"}}` ,那么这里就填 data.access_token 就好了

请求中使用提取的变量

右键线程组再创建一个 http request 文件。

好了,现在我们在同一个线程组中有两个请求文件。同一个线程组中的请求是按顺序执行的,就是从上到下顺序执行,也就是说我们在第二个请求中就可以使用上一步提取的变量了。

使用变量的方式是 ${变量名}

使用 csv 数据文件中的数据作为请求参数

如果我们要模拟100个用户同时登录的请求,就需要从 csv 文件中读取用户的用户名和密码作为请求的参数。

右键请求文件,点击 add -> config element -> csv data set config 创建csv数据集。 然后我们在桌面创建一个 csv 文件,在csv 文件中写入以下内容

15012345678,Esdf/19dmsdai0asbjsas
13787654321,DsACVWEWQasdasdqw@dDs

然后看数据集右边的属性设置:

filename: 选择刚创建的 csv 文件
variable names: 表示 csv 内容解析出来后的变量名,因为 csv 每行有两个变量,所以我们这边也要写两个,比如写:phone,custom_id
delimiter: 分隔符,默认为逗号(,)

设置完之后,就可以用 ${phone}${custom_id} 使用变量了