适用于测试计划中不须要随迭代发生改变的参数(只取一次值的参数)设置在此处。例如,被测应用的host和port值。html
添加-配置元件-用户定义的变量mysql
添加变量名称和变量值正则表达式
在须要使用参数位置使用${ip}替代sql
添加-前置处理器-用户参数数据库
1)定义参数名称和参数值
2)每次迭代更新一次:选中该选项,则参数的值在每一个迭代中保持不变,在新的迭代开始时取下一个可用值; 若是取消取中该选项,则参数的值在每一个其做用域内的Sampler发出请求时取下一个可用值。apache
在须要使用参数位置使用${prductid}替代oracle
添加-配置元件-CSV数据文件设置dom
1) 文件名:参数文件路径。
2) 文件编码:视项目接收文件编码,通常是UTF-8,可与开发确认。
3) 变量名称(使用逗号间隔):文件中的每列参数名称,多个使用逗号分隔。
4) 忽略首行(只在设置了变量名称后才生效):若是文件中第一行为参数名称,选择True,若是文件第一行即是参数值,选择False。
5) 分隔符(用’\t’代替制表符):文件中每一个参数值之间使用什么间隔,这里就填什么。
6) 是否容许带引号?:若是选择True,csv文件中有引号,则变量引用后也带引号;若是选择False,csv文件中有引号,可是变量实际引用后会自动去掉引号。
7) 遇到文件结束符再次循环?:若是选择True,文件结束后继续从头开始循环取用数据。通常选择True。
8) 遇到文件结束符中止线程?:若是选择False,第一次取文件结束后不中止线程。通常选择False。
线程共享模式:“全部线程”表示做用于全局;“当前线程组”表示只做用于该线程组;“当前线程”表示只做用于该线程。函数
在请求体中引用变量,格式:${变量名}sqlserver
选项-函数助手对话框
1)选择一个功能:__CSVRead
2)函数参数名称
3)点击【生成】按钮,生成函数字符串
将函数字符串复制后,粘贴到请求体中,例如
${__CSVRead(D:apache-jmeter-5.2.1binexamplesuser&pwd.txt,0)}
1)函数助手对话框选择一个功能:__Random
做用:生成一个区间的随机数,如图
2)函数助手对话框选择一个功能:__RandomDate
做用:随机生成一个范围内的时间日期
3)函数助手对话框选择一个功能:__RandomString
做用:随机生成一个字符串
1)查看mysql版本
下载mysql jar包,在数据库客户端执行如下sql查询
SELECT version();
2)查看jar包支持的mysql版本:http://dev.mysql.com/doc/connector-j/en/connector-j-versions.html
3)官网下载地址:
https://dev.mysql.com/downloa...
选择“Platform independent”
4)将jar包放在jmeter安装目录的lib目录下
添加-配置元件-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"
添加-取样器-JDBC Request
1)Variable Name Bound to Pool
2)SQL Query
添加-后置处理器-正则表达式提取器
从接口返回体中获取返回值,用于下一个接口的请求参数
1)引用名称:在HTTP等请求中,引用此数据,须要用到的名称。
2)正则表达式:用于将须要的数据提取出来,()里面的内容是须要提取的,.表示匹配任何字符串,+表示匹配一次或屡次,?表示在找到第一个匹配项后中止。
3)模板:表示使用提取到的第几个值,$-1$:表示取全部值,$0$:表示随机取值,$1$:表示取第1个,$2$:表示取第二个,以此类推:$n$:表示取第n个。
4)匹配数字(0表明随机):0 表明随机取值,1 表明所有取值。
5)缺省值:若是正则表达式没有搜找到值,则使用此缺省值,null表示为空。
&{name_gN}表示第N括号中的内容
添加-取样器-HTTP请求
添加-监听器-查看结果树
执行后结果以下:
添加-配置元件-计数器
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)每次迭代复原计数器:可选,仅勾选与每用户独立的跟踪计数器时可用;若是勾选,则每次线程组迭代,都会重置计数器的值。
1)场景设置
2)结果