jemeter mysql 参数化_jmeter参数化方式

一.用户定义的变量

适用于测试计划中不需要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如,被测应用的host和port值。

1.添加用户定义的变量

添加-配置元件-用户定义的变量

52b876683f396fe9f9c4260fa67321c4.png

2.配置项

添加变量名称和变量值

3.使用方法

在需要使用参数位置使用${ip}替代

二.用户参数

1.添加用户参数

添加-前置处理器-用户参数

f75e9b875db1912cbc70607a4ce7bee5.png

2.配置项

1)定义参数名称和参数值

2)每次迭代更新一次:选中该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个可用值; 如果取消取中该选项,则参数的值在每个其作用域内的Sampler发出请求时取下一个可用值。

3.使用方法

在需要使用参数位置使用${prductid}替代

三.CSV数据文件设置

1.添加CSV数据文件设置

添加-配置元件-CSV数据文件设置

70ff341e8686c3a51a3ff4b7c3955a2e.png

2.配置项

1) 文件名:参数文件路径。

2) 文件编码:视项目接收文件编码,一般是UTF-8,可与开发确认。

3) 变量名称(使用逗号间隔):文件中的每列参数名称,多个使用逗号分隔。

4) 忽略首行(只在设置了变量名称后才生效):如果文件中第一行为参数名称,选择True,如果文件第一行便是参数值,选择False。

5) 分隔符(用’\t’代替制表符):文件中每个参数值之间使用什么间隔,这里就填什么。

6) 是否允许带引号?:如果选择True,csv文件中有引号,则变量引用后也带引号;如果选择False,csv文件中有引号,但是变量实际引用后会自动去掉引号。

7) 遇到文件结束符再次循环?:如果选择True,文件结束后继续从头开始循环取用数据。一般选择True。

8) 遇到文件结束符停止线程?:如果选择False,第一次取文件结束后不停止线程。一般选择False。

线程共享模式:“所有线程”表示作用于全局;“当前线程组”表示只作用于该线程组;“当前线程”表示只作用于该线程。

3.使用方法

在请求体中引用变量,格式:${变量名}

四.函数助手

1.添加函数助手对话框

选项-函数助手对话框

31d767722246f37785488e83082c883b.png

2.配置项

1)选择一个功能:__CSVRead

2)函数参数名称

CSV file to get values from | *alias:参数文件路径

Column number of CSV file | next | *alias:需要获取的数据在文件的第几列,从0开始。

3)点击【生成】按钮,生成函数字符串

3.使用方法

将函数字符串复制后,粘贴到请求体中,例如

${__CSVRead(D:apache-jmeter-5.2.1binexamplesuser&pwd.txt,0)}

4.其余实例

1)函数助手对话框选择一个功能:__Random

作用:生成一个区间的随机数,如图

8a112221f962333caa493f32efdb7ac3.png

2)函数助手对话框选择一个功能:__RandomDate

作用:随机生成一个范围内的时间日期

a3b11181382674ec706a2eb7731496c9.png

3)函数助手对话框选择一个功能:__RandomString

作用:随机生成一个字符串

4d010dd4588a24c6606e54c774450d84.png

五.从数据库中获取数据

1.下载jar包

1)查看mysql版本

下载mysql jar包,在数据库客户端执行以下sql查询

SELECT version();

2)查看jar包支持的mysql版本:http://dev.mysql.com/doc/connector-j/en/connector-j-versions.html

ce4d7de39ae36be301ae98d89dff4767.png

3)官网下载地址:

https://dev.mysql.com/downloa...

选择“Platform independent”

ad4fb5655d62e06193c7e255b4b5042f.png

4)将jar包放在jmeter安装目录的lib目录下

2.添加JDBC Connection Configuration

添加-配置元件-JDBC Connection Configuration

e3719d7c164a4a36c12040de7fe8434c.png

2d92ecd8200f5a4a9c688104970e04b1.png

3.配置项JDBC Connection Configuration

1)名称:自定义

2)Variable Name Bound to Pool

* Variable Name for created pool:填入一个变量名,需要和JDBC request、JDBC PreProcessor、JDBC PostProcessor中的变量名一致。

3)Connection Pool Configuration:数据库连接池的配置,一般默认即可

* Max Number of Connections:数据库最大连接数

* Max Wait(ms):数据库连接最长等待时长

* Time between Eviction Runs(ms):当前连接池中某个连接在该设置空闲时间后没有被使用,将被物理关闭

* Auto Commit:自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)

* Transaction Isolation:事务间隔级别设置,主要有以下几个选项:

* TRANSACTION_NODE   事务节点

* TRANSACTION_READ_UNCOMMITTED  事务未提交读

* TRANSACTION_READ_COMMITTED   事务已提交读

* TRANSACTION_SERIALIZABLE   事务序列化

* DEFAULT  默认

* TRANSACTION_REPEATABLE_READ 事务重复读

* 编辑

* Preinit Pool:

4)Init SQL Statemnets separated by new line

5)Connection Validation by pool

* Test While Idle:当空闲时测试连接是否断开

* Soft Min Evictable Idle Time(ms):至少在池中保持连接的时长

* Validation Query:一般选择select 1

6)database Connection Configuration

* Database URL:jdbc:mysql://mysql\_host\_ip:mysql\_port/mysql\_db\_name

* JDBC Driver class:com.mysql.jdbc.Driver

* Username:数据库用户名

* Password:数据库密码

* Connection Properties:

注释:

MySQL

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}

PostgreSQL

org.postgresql.Driver

jdbc:postgresql:{dbname}

Oracle

oracle.jdbc.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

Ingres (2006)

com.ingres.jdbc.IngresDriver

jdbc:ingres://host:port/db[;attr=value]

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

jdbc:sqlserver://IP:1433;databaseName=DBname

或者

net.sourceforge.jtds.jdbc.Driver

jdbc:jtds:sqlserver://localhost:1433/"+"library"

4.添加JDBC Request

添加-取样器-JDBC Request

e0971059998dc4089345571587f6e1fc.png

5.配置JDBC Request

1)Variable Name Bound to Pool

Variable Name of Pool declared in JDBC Connection Configuration:数据库连接池的名称,设置与JDBC Connection Configuration的Variable Name for created pool一致

2)SQL Query

Query Type:Select Statement

Query:填写的sql语句

Parameter values:参数值

Parameter types:参数类型

Variable names:保存sql语句返回结果的变量名

Result variable name:创建一个对象变量,保存所有返回的结果

Query timeout(s):查询超时时间

Limit ResultSet:

Handle ResultSet:定义如何处理由callable statements语句返回的结果

6.添加正则表达式

添加-后置处理器-正则表达式提取器

7b40053bf3b753fabf4aa4cd1701911d.png

从接口返回体中获取返回值,用于下一个接口的请求参数

7.配置正则表达式

1)引用名称:在HTTP等请求中,引用此数据,需要用到的名称。

2)正则表达式:用于将需要的数据提取出来,()里面的内容是需要提取的,.表示匹配任何字符串,+表示匹配一次或多次,?表示在找到第一个匹配项后停止。

3)模板:表示使用提取到的第几个值,$-1$:表示取所有值,$0$:表示随机取值,$1$:表示取第1个,$2$:表示取第二个,以此类推:$n$:表示取第n个。

4)匹配数字(0代表随机):0 代表随机取值,1 代表全部取值。

5)缺省值:如果正则表达式没有搜找到值,则使用此缺省值,null表示为空。

8.正则表达式使用方法

&{name_gN}表示第N括号中的内容

9.添加http请求

添加-取样器-HTTP请求

f63fac3eabff4cde1e1f0ec1b909c2f5.png

9.添加查看结果树

添加-监听器-查看结果树

执行后结果如下:

六.计数器

1.添加计数器

添加-配置元件-计数器

e93040dde68271e78fa817011d5bcc25.png

2.配置项

1)名称:自定义

2)Starting value:起始值

3)递增:每次迭代增加的值

4)Maximum value:最大值,达到最大值后,重新设置为初始值,默认的最大值为Long.MAX_VALUE,2^63-1(如果持续压测,建议最好不要设置最大值)

5)数字格式:可选格式,比如000,格式化为001,002;默认格式为Long.toString(),但是默认格式下,还是可以当作数字使用。

6)引用名称:用于控制在其它元素中引用该值,形式:$(reference_name}

7)与每用户独立的跟踪计数器:全局的计数器,如果不勾选,即全局的,所有用户统一按照计数器循环;如果勾选,即独立的,则每个用户按照计数器循环。

8)每次迭代复原计数器:可选,仅勾选与每用户独立的跟踪计数器时可用;如果勾选,则每次线程组迭代,都会重置计数器的值。

3.实例

1)场景设置

a46b2ee14bcc76eefac2affb06119bc5.png

079036265563fe925927dc6f12042abe.png

2)结果

25e352b1ef99f1a1e4090b6c2e79d536.png

1320c4d04d0de846df028e8e63760b40.png

38b62d0c85be52dc858e1f2a4a37c31d.png

74fbf0e3a5be847b63b3d1b672f95fd1.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值