性能测试-JMeter参数化(1)CSV Data Set Config

一、参数化的定义

所谓参数化,就是将客户端发送给服务器处理的数据预先保存到一个参数中的过程。

一般来说,对于功能测试,当用不同的数据测试相同的功能时,我们可以使用参数化来精简测试;

对于性能测试,为了真实模拟多个用户的操作行为或应对系统对多个用户同时操作的特殊限制(比如数据唯一性要求),需要使用参数化来解决这些问题。

JMeter提供了非常多的参数化的方式和手段,常见有:

1.配置元件 CSV_Data_Set_Config

2.内置参数化函数,比如__CSVRead()

这1节我们主要讲下CSV_Data_Set_Config参数化。

配置项

Configure the CSV Data Source:

1.Filename:

要读取的数据文件的路径或名称。可以使用绝对路径或相对路径。

当使用相对路径表示文件路径时,测试计划所在目录为当前目录。

当JMeter以分布式模式运行时,参数化的数据文件需要复制到每台Slave中,并且要设置相同的目录结构。

2.File Encoding:

若没有设置则以操作系统的字符编码去读取数据文件。可以指定以何种编码去读取数据文件,以防止出现乱码。

比如操作系统默认字符编码为GBK,而数据文件(CSV文件)的编码为UTF-8,则读出来的数据肯定为乱码,在此情况下要设置File Encoding为“UTF-8”才能读取成功。

3.Variable Names(comma-delimited):

用于保存数据文件列值的变量名列表。变量名之间用,(逗号)分隔。若变量名列表为空,JMeter则将数据文件的第一行各字段值作为各个变量名(不论是否忽略第一行)。

比如数据文件中有如下两行值:

张三,男,25

李四,女,20

在没有设置变量名列表的情况下,会将第一行的三个值当做变量名:

张三,男,25

${张三},${男},${20}的值分别是:李四,女,20

4.Ignore first line (only used if Variable Names is not empty):

是否忽略数据文件的第一行。这个选项只有在设置了参数名列表时才起作用。

选择True表示忽略第一行,选择False表示不忽略第一行。一般用在数据文件中有列标题时,因为标题不是值,故考虑可以忽略

第一行。

比如数据文件中有如下值:

name,sex,age

张三,男,25

李四,女,20

若此项设置为False,则会将name,sex,age当做变量的值读取,设置为True会忽略此行,从第二行开始读取。

5.Delimiter (use‘\t‘for tab):

数据文件中字段的分隔符。根据分隔符将记录拆分保存到定义的变量中。默认值为,(逗号)分隔。

6.Allow quoted data?:

数据文件中的值是否允许使用双引号。True表示允许,False表示不允许。

一般用于当值中包含分隔符时,可考虑将值用双引号括起来,屏蔽分隔符的特殊含义。

比如记录了商品编号,名称,价格的数据文件:

goods_id,goods_name,price

1,Watch_wanguo,"1,500,000"

若没有使用双引号,商品价格为1,使用了双引号,商品价格为

1,500,000

7.Recycle on EOF?:

读取到达数据文件结束(EOF即end of file)处,是否回到文件开始出重新读取。

True循环读取,False不循环读取。

8.Stop thread on EOF?:

读取到达数据文件结束处,是否停止线程。True停止线程,测试不再进行;

False不停止线程,继续循环取值运行测试。

9.Sharing mode:

共享模式。All threads所有线程,Current thread group当前线程组,Current thread当前线程。

1)All threads:

所有线程共享同一个文件。在测试中数据文件只打开一次,每个线程读取不同行的参数值。

每个线程读取的值与线程启动的先后顺序相关;不论线程引用参数与否,每个线程都会分配一个参数值。

2)Current thread group:

当前线程组。测试计划下的每个线程组都单独打开一个参数文件。

3)Current thread:

当前线程。每个线程都单独打开一个参数文件。在此模式下,若每个线程需要从不同的值集中取值,

可以设置一组参数化数据文件,每个线程对应一个文件。将线程编号与数据文件名关联起来将可以了。

比如一组文件为:

testdata1.csv,testdata2.csv,... ,

testdatan.csv

线程编号可以通过内置函数${threadNum}来获取,则数据文件名可设置为: testdata${threadNum}.csv。

举个例子:

这里以前面介绍过的查询被购买商品总金额接口为例来讲解:

参数化步骤:

1.确定接口参数中哪些请求参数需要进行参数化

在设计测试用例时,我们针对商品编号,商品规格,商品数量来准备数据,

故对id,attr,number参数化

2.将测试数据放在外部一个文档保存,文件类型为csv或txt -->

.csv or .txt

新建一个testdata.csv,一行写一个用例,多个参数值默认用,分隔:

case_name,id,attr,number

case1,9,226,3

case2,,226,1

case3,9,,1

case4,9,226,

3.添加并配置CSV Data Set Config配置元件

4.在请求中将写死的数据用第3步中定义的变量进行替换

data --> ${varName}

比如 ${attr}

5.配置参数化

5.1 将线程数设置为用例的个数

5.2 循环控制请求的次数

a.添加一个循环控制器,设置其循环次数为测试用例个数

b.将CSV Data Set Config配置元件与请求移到循环控制器下面

原文地址:https://blog.51cto.com/14645850/2462732

时间: 2024-08-13 23:25:25

性能测试-JMeter参数化(1)CSV Data Set Config的相关文章

jmeter参数化之CSV Data Set Config

jmeter参数化CSV Data Set Config设置项: Filename:文件存储路径,必须绝对路径. File encoding:文件得编码格式,一般都是UTF-8 Variable Names(comma delimited):变量名称,用逗号分隔 Delimiter(use '\t' for tab):变量值之间的分隔符,默认为逗号. Allow quoted data?:选择true,如果参数值有引号(单引号或双引号),不显示引号 选择false,如果参数值有引号(单引号或双引

jmeter参数化之 CSV data set config

第一步:测试计划右键--创建线程组   第二步:选择线程组:右键--sample---创建:http request 配置协议类型和服务名称,method 和path 第三步:选择线程组下的http request,右键--配置组件---创建:CSV DATA SET CONFIG filename:参数的文件路径 file encoding :utf-8 varialble names:参数的变量名称,自定义,多个以英文逗号隔开 第四步:选择请求http request页面下:配置paramt

jmeter环境配置、使用以及参数化之CSV Data Set Config

前言:本人接触jmeter已有半年,刚开始接触和使用jmeter,参数化的时候走过不少弯路,此次分享给大家jmeter参数化之CSV Data Set Config,避免走过我走过的弯路. jmeter环境变量配置: JDK: 1.下载jdk 地址:http://java.sun.com/javase/downloads/index.jsp 2.安装JDK 正常安装,一路默认就好,记住安装路径,配置环境变量时用得到.默认安装路径: C:\Program Files\Java\jdk1.8.0_5

转:Jmeter之使用CSV Data Set Config实现参数化登录

在使用Jemeter做压力测试的时候,往往需要参数化用户名,密码以到达到多用户使用不同的用户名密码登录的目的.这个时候我们就可以使用CSV Data Set Config实现参数化登录: 首先通过Test Plan或者Thread Group的Add->Config Element->CSV Data Set Config添加  以下是CSV Data Set Config各个参数的简要说明: FileName:即同目录下csv文件的名称 File Encoding: 默认为ANSI Vari

Jmeter组件1. CSV Data Set Config

位置:Test Plan | Add | Config Element | CSV Data Set Config 意义: 脚本参数化 节省CPU跟内存(可以准备好数据文件去代替动态生成数据,节约CPU跟内存) Name, Filename很好理解,一个是组件名,一个是CSV文件名,这里CSV文件名可以放绝对路径,也可以把文件放在工程目录下或者Jmeter_Home下面 File encoding,编码格式,不放会拿你当前的系统默认 Variable Names,可以写CSV的列名,逗号隔开,不

JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. 日常常见的线上监控几个简单的监控示例场景如下: 监控电商网站某个类目下的商品数量.若类目中商品的数量小于一定的数量,则认为需要认为查看商品池的商品是否正确: 监控商品的价格.当商品价格出现超出限定的波动幅度时,通知相应的商品负责人,对其进行确认,从而保证商品价格的正确无误. 监控商品在某一地域是否

JMeter学习-010-JMeter 配置文件实例之 - CSV Data Set Config 参数化配置

众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. 日常常见的线上监控几个简单的监控示例场景如下: 监控电商网站某个类目下的商品数量.若类目中商品的数量小于一定的数量,则认为需要认为查看商品池的商品是否正确: 监控商品的价格.当商品价格出现超出限定的波动幅度时,通知相应的商品负责人,对其进行确认,从而保证商品价格的正确无误. 监控商品在某一地域是否

Jmeter使用CSV Data Set Config参数化数据不重复的多次循环执行(实现多用户多次抽奖功能)

Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍 要求: 今天要测试上千条数据,且每条数据要求执行多次,(模拟多用户多次抽奖) 1.用户id有175个,且没有任何排序规则: 2.要求175个用户都去请求,每个用户执行3次: (由于自己笔记本性能不佳,只能数量小举例,大家自行增加用户量和循环次数) 设计: 我们通过CSV Data Set Config,在记事本中先写好175个数据,然后直接调用该文本: 然后在http请求中直接引用该值: 整个图见下: 一.准备tx

jmeter配置原件之使用CSV Data Set Config参数化

测试过程中经常需要对发送的请求进行参数化,jmeter提供的CSV Data Set Config 配置元件可以很好的对请求数据进行参数化,下面介绍使用CSV Data Set Config参数化 1.CSV Data Set Config 参数化文件无表头,引用变量的时候,使用${变量名} 无表头的参数化文件 CSV Data set config 页面 Recycle on EOF=false && stop thread on EOF=true && loop cou