一.用户定义的变量

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

1.添加用户定义的变量

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

2.配置项

添加变量名称和变量值

3.使用方法

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

二.用户参数

1.添加用户参数

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

2.配置项

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

3.使用方法

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

三.CSV数据文件设置

1.添加CSV数据文件设置

添加-配置元件-CSV数据文件设置
image.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.添加函数助手对话框

选项-函数助手对话框
image.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
作用:生成一个区间的随机数,如图
image.png

2)函数助手对话框选择一个功能:__RandomDate
作用:随机生成一个范围内的时间日期
1.jpg

3)函数助手对话框选择一个功能:__RandomString
作用:随机生成一个字符串
image.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
image.png
3)官网下载地址:
https://dev.mysql.com/downloa...
选择“Platform independent”
image.png
4)将jar包放在jmeter安装目录的lib目录下

2.添加JDBC Connection Configuration

添加-配置元件-JDBC Connection Configuration
image.png
image.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
image.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.添加正则表达式

添加-后置处理器-正则表达式提取器
image.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请求
image.png

9.添加查看结果树

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

执行后结果如下:

六.计数器

1.添加计数器

添加-配置元件-计数器
image.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)场景设置
image.png
image.png
2)结果
image.png

image.png

image.png

image.png


yisen
0 声望1 粉丝