大家好,又见面了,我是你们的朋友全栈君。
在测试过程中,我们经常遇到需要根据需求动态操作数据的情况,常规的固定数据无法满足我们的需要,这个时候,我们可以通过jmeter 提供的参数化组件来实现动态的获取数据、改变数据。
jmeter 为我们提供了四种实现参数化的方式,分别是【CSV Data Set Config】(数据集配置)组件、【用户参数】组件、【用户定义的变量】组件和【函数】组件,四种方式都有各自的使用场景,互为补充。
我们借助此组件可以实现动态的从外部CSV文件中获取数据,从而达到批量操作数据的目的。 使用此组件的前提条件:我们需要有一个 CSV 格式的数据文件。
CSV文件编写格式:
1.每一行代表一条数据;
2.各字段之间用英文逗号分隔开;
3.编码格式采用 utf-8。
假设现在有一个 CSV 格式的数据文件csv_test.txt,该文件内容如下图所示:
要实现依次读取文件中的内容,并将内容中第一个字段的值作为关键字在百度中搜索的操作,我们可以这样做: 1)在jmeter中依次创建【测试计划】、【线程组】和【HTTP 请求】,并添加查看结果的组件【查看结果树】如图:
2)添加【CSV Data Set Config】(数据集配置)组件:右击【线程组】—>【添加】—>【配置元件】—>【CSV Data Set Config】。 3)配置参数
4)使用变量
5)执行,结果如下图:
结果中显示,我们依次从 CSV 数据文件中获取到了每条数据的第一个字段的值,并将其作为百度搜索的关键字执行了搜索。
除了读取外部文件中的数据,我们还可以在jmeter中定义一些数据,实现批量操作数据的功能。但由于此操作不是那么的易用,所以数据量较大时,不建议使用此操作。 下面我们来看一下具体是怎么操作的: 1)这里我们先把上面添加的 CSV Data Set Config 组件禁用掉(右击该组件后选择【禁用】即可);
2)通过添加【用户参数】组件,用来配置数据:右击【测试计划】—>【添加】—>【前置处理器】—>【用户参数】,如图:
3)配置数据。我们可以看到用户参数面板如下图所示,主要使用的部分就是图中标注出来的三个部分:
4)更改线程组设置,让jmeter循环读取我们的数据:
5)调用参数的方式与上面的例子相同,在需要的地方使用”${变量名}”的格式调用即可,这次我们来遍历一下 【country】的值。
6)我们来执行一下,看看读取【用户参数】的执行结果:
出现上面的结果,就说明我们配置成功了!
1)通常,在项目的接口中经常会遇到一些相同的部分,当这个相同的不出频繁出现时,我们可以将其抽取出来,作为一个全局的变量供我们调用,定义全局变量我们可以通过定义【用户定义的变量】来实现; 2)这里我们抽取 HTTP 请求的【服务器名称】和【端口号】来举例。 3)添加【用户定义的变量】组件:右击【测试计划】—>【添加】—>【配置元件】—>【用户定义的变量】,如图所示,
4)【用户定义的变量】面板如下图所示,我们依次来介绍。
5)调用方式和之前一样,HTTP 请求的【服务器名称】和【端口号】的位置调用这两个变量:
6)查看执行结果,如下:
这里我们要注意的是:【用户定义的变量】是全局变量,即这里定义的变量的所有值只会初始化一次,无论后面创建了多少线程,值都不会变。也正是因为这个原因,为了不占用过多资源,建议不要创建太多这种类型的变量。
在jmeter 中已经内置了一些【函数】供我们使用,给我们的测试工作提供了很大的便利。在jmeter中常用的【函数】主要有6个,我们通过其中的__counter()为例来介绍【函数】组件的使用方式,后面再介绍每个函数的功能。 1)调出【函数】组件有三种方式,我们在使用时选择任意一种即可:
3) 为了直观体现出参数的作用,我们把线程组的【循环次数】设置为多次,这里就设置为3。
查看结果,我们可以发现,每次循环都是从1开始的。
查看结果,我们可以发现,所有循环使用同一个计数器,新循环开始时,计数器不再重置为1,而是继上次循环结束时的结果递增。
至此,函数的调用方式就介绍完了,下面就介绍一下jmeter中内置的6个常用函数:
结果显示,我们只读取了一个字段对应的所有数据。
由结果看出,线程数为3,发送两次请求,调用两次此函数,成功的读取出了 CSV 文件中的两个字段对应三条数据的所有值。
至此,Jmeter的参数化实现方式就介绍完了,希望以后看到的时候不会迷糊!哈哈~~
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/147401.html原文链接:https://javaforall.cn