Jmeter接口测试实战(二):一粒云项目

目录

1.Jmeter完成文件上传

2.Jmeter完成文件下载

3.Jmeter完成文件列表的获取

4.Jmeter JSON Extractor获取数组类型的数据

5.正则表达式获取数组类型的数据

6.Jmeter获取文件列表与下载接口串联测试

7.Jmeter上传文件与下载接口串联测试


1.Jmeter完成文件上传

1.1.查看接口文档

登录接口:

Jmeter接口测试实战(二):一粒云项目_第1张图片

文件的上传接口:

Jmeter接口测试实战(二):一粒云项目_第2张图片

1.2.首先完成登录功能

  • 测试计划-->HTTP请求默认值

Jmeter接口测试实战(二):一粒云项目_第3张图片

  • 测试计划-->线程组(文件的上传)
  • 线程组(文件的上传)-->HTTP请求(登录)

Jmeter接口测试实战(二):一粒云项目_第4张图片

  • HTTP请求(登录)-->HTTP信息头管理器

Jmeter接口测试实战(二):一粒云项目_第5张图片

  • 测试计划-->察看结果树

Jmeter接口测试实战(二):一粒云项目_第6张图片

登录成功后,下面来完成文件的上传功能!

1.2.获取token信息

从文件的上传接口文档,我们可以看到请求头ct需要一个token信息,token信息可以从登录的响应结果里获取到

  • HTTP请求(登录)-->后置处理器-->正则表达式提取器

Jmeter接口测试实战(二):一粒云项目_第7张图片

 如果想要查看是否提取到token信息,可以添加一个Debug Sampler

  • 线程组(文件的上传)-->Debug Sampler,运行结果如下:

Jmeter接口测试实战(二):一粒云项目_第8张图片

可以看到,能获取到token信息!

1.3.完成单个文件的上传

  • 线程组(文件的上传)-->HTTP请求(单个文件的上传)

Jmeter接口测试实战(二):一粒云项目_第9张图片

Jmeter接口测试实战(二):一粒云项目_第10张图片

  • HTTP请求(单个文件的上传)-->HTTP信息头管理器

Jmeter接口测试实战(二):一粒云项目_第11张图片

运行结果,察看结果树如下,可以看到上传文件成功!

Jmeter接口测试实战(二):一粒云项目_第12张图片

1.4.批量完成文件的上传

从单个文件的上传中,我们可以总结到,文件的名称(也就是文件的绝对路径名称)filePath,文件的大小fileSize,以及文件上传到网盘的显示名fileName是可变的,这时我们可以使用参数化,将这3个参数当成变量,使用CSV Data Set Config来实现批量上传。

在本地新建一个"批量上传.csv"的文件,包含3个字段,fileName、fileSize、filePath,如下所示:

Jmeter接口测试实战(二):一粒云项目_第13张图片

因为有两条数据,先将线程组(文件的上传)的循环次数设置成:2,会执行两次文件上传的请求,但我希望登录请求只执行一次,所以可以给登录请求添加一个"逻辑控制器"-->"仅一次控制器"

  • 线程组(文件的上传)-->CSV Data Set Config

Jmeter接口测试实战(二):一粒云项目_第14张图片

  • 线程组(文件的上传)-->HTTP请求(批量完成文件上传)

Jmeter接口测试实战(二):一粒云项目_第15张图片

Jmeter接口测试实战(二):一粒云项目_第16张图片

  • HTTP请求(批量完成文件上传)-->HTTP信息头管理器

Jmeter接口测试实战(二):一粒云项目_第17张图片

 运行结果,察看结果树如下:

Jmeter接口测试实战(二):一粒云项目_第18张图片

 其中,fileId在下面文件的下载中会用到!

2.Jmeter完成文件下载

2.1.查看接口文档

Jmeter接口测试实战(二):一粒云项目_第19张图片

 2.2.单个文件的下载

从查看接口文档可以知道,文件下载之前,需要先登录并获取token值。

token值获取到之后,就可以进行单个文件的下载了!

  • 线程组(文件的下载)-->HTTP请求(单个文件的下载)

Jmeter接口测试实战(二):一粒云项目_第20张图片

  • HTTP 请求-->HTTP信息头管理器

Jmeter接口测试实战(二):一粒云项目_第21张图片

  • 察看结果树

Jmeter接口测试实战(二):一粒云项目_第22张图片

从响应数据中可以看到一个fileUri链接地址,此链接地址才是文件真正的下载地址,所以还需要创建一个HTTP请求,将目标文件保存到本地。

如何将文件保存到本地?

  • 首先需要使用正则表达式提取器将fileUri的链接地址获取到

Jmeter接口测试实战(二):一粒云项目_第23张图片

 为了检验是否获取到fileUri,可以添加一个Debug Sampler

Jmeter接口测试实战(二):一粒云项目_第24张图片

 察看结果树,可以看到获取到了fileUri

  • 线程组(文件的下载)-->HTTP请求(将文件保存到本地)

Jmeter接口测试实战(二):一粒云项目_第25张图片

  • 察看结果树

Jmeter接口测试实战(二):一粒云项目_第26张图片

可以看到报错了,解决方法是:在HTTP请求(将文件保存到本地)下添加一个HTTP信息头管理器,将token关联进去。

  • Jmeter不能将文件直接保存到本地,需要添加一个BeanShell Sampler将目标文件保存到本地

Jmeter接口测试实战(二):一粒云项目_第27张图片

  • 查看文件是否下载到指定目录,文件的大小及内容是否正确

Jmeter接口测试实战(二):一粒云项目_第28张图片

2.3.批量完成文件下载

可以将需要下载的目标文件的fileId存放到一个txt文本里,例如:fileId.txt,如下所示:

Jmeter接口测试实战(二):一粒云项目_第29张图片

然后使用CSV Data Set Config获取fileId。

Jmeter接口测试实战(二):一粒云项目_第30张图片

 HTTP请求(批量完成文件的下载)-->fi的值为${fileId}

Jmeter接口测试实战(二):一粒云项目_第31张图片

运行结果,查看目标文件是否全部下载了,大小以及内容是否正确。

3.Jmeter完成文件列表的获取

文件列表获取的接口文档如下:

Jmeter接口测试实战(二):一粒云项目_第32张图片

与文件的上传、下载一样,文件列表的获取也要先登录获取token值之后,才能进行下一步的操作!

在获取token之后,添加一个HTTP请求(获取文件列表),并添加HTTP信息头管理器,如下所示:

Jmeter接口测试实战(二):一粒云项目_第33张图片

 Jmeter接口测试实战(二):一粒云项目_第34张图片

 察看结果树,可以看到,能将文件列表全部获取到,响应数据为json格式,如下所示:

Jmeter接口测试实战(二):一粒云项目_第35张图片

4.Jmeter JSON Extractor获取数组类型的数据

在上面文件列表的获取中,我们能够看到,获取的文件列表是json格式的,在json串中,{}表示对象,[]表示数组。

  • 获取数组里的对象用[],数组索引从0开始;如果想要获取文件列表的第一个文件的fileId,那么JSON Path表达式为:$.data.files[0].fileId

Jmeter接口测试实战(二):一粒云项目_第36张图片

  • 获取数组的所有值:数组名[*].属性名,例如,想要获取所有文件的fileId,那么JSON Path表达式为:$.data.files[*].fileId

Jmeter接口测试实战(二):一粒云项目_第37张图片

从上图中能够看到fileId从Result[0]~Result[183],总共184条数据,与count值一致。

  • 如果想要获取前3个文件的fileId,JSON Path表达式应该怎么写呢?

Jmeter接口测试实战(二):一粒云项目_第38张图片  可以看到JSON Path表达式为:$.data.files[0:3].fileId

下面我们使用JSON Extractor来提取响应结果的值!

  • 线程组(文件列表的获取)-->HTTP请求(JSON Extractor获取数组类型的数据)-->JSON Extractor

Jmeter接口测试实战(二):一粒云项目_第39张图片

如果想要查看是否获取到值,可以添加一个Debug Sampler,运行结果,可以看到获取到了fileName

Jmeter接口测试实战(二):一粒云项目_第40张图片

5.正则表达式获取数组类型的数据

需求:使用正则表达式提取器提取fileId

Jmeter接口测试实战(二):一粒云项目_第41张图片

Jmeter接口测试实战(二):一粒云项目_第42张图片

6.Jmeter获取文件列表与下载接口串联测试

需求:获取索引为101,102的文件,并下载到本地。

  • HTTP请求(获取文件列表)-->JSON Extractor,获取索引为101,102的文件,$.data.files[101:103].fileId

Jmeter接口测试实战(二):一粒云项目_第43张图片

  • 添加文件的下载操作,然后运行,并察看结果树,出现错误,如下图所示:

Jmeter接口测试实战(二):一粒云项目_第44张图片

可以看到,获取文件列表请求返回的数据fileId,并没有传递给文件的下载请求!

获取文件列表的请求返回的数据如下:

Jmeter接口测试实战(二):一粒云项目_第45张图片

我们可以添加一个ForEach控制器,循环遍历fileId变量,并将文件的下载操作放在ForEach控制器下,这样每循环一次,就可以执行一次下载操作!

Jmeter接口测试实战(二):一粒云项目_第46张图片

运行结果,察看结果树,可以看到文件下载成功,在本地盘符可以看到下载的文件。

Jmeter接口测试实战(二):一粒云项目_第47张图片

7.Jmeter上传文件与下载接口串联测试

与上一节“获取文件列表与下载接口串联测试”类似,同样需要在“文件的上传”请求下面添加一个JSON Extractor,用来提取“文件的上传”请求返回的fileId变量,然后添加一个ForEach控制器,并将文件的下载操作添加在ForEach控制器下,每循环一次fileId变量,就执行一次下载操作!

Jmeter接口测试实战(二):一粒云项目_第48张图片

Jmeter接口测试实战(二):一粒云项目_第49张图片

点击这里下载一粒云项目自动化脚本

你可能感兴趣的:(jmeter学习笔记)