配置元件
作用:配置元件(Config Element)提供对静态数据配置的支持,可以读取文件数据,设置公共请求参数,赋予变量值等。
1、CSV Data Set Config
CSV Date Set Config 可以从指定的文件中一行一行地提取文本内容,根据分隔符拆解这一行的内容与变量名对应上,然后这些变量以供取样器使用。
参数说明:
参数 | 描述 |
---|---|
Filename | 文件引用地址,可以使相对路径也可以使绝对路径 |
File encoding | 读取参数文件用到的编码格式,一般是utf-8,保存文件最好也用uft-8. |
Variable Names(comma-delimited) | 参数名称,多的参数名用逗号隔开,将会与参数文件的参数对应 |
Ignore first line ( only used if Variable Names is not empty) | 忽略第一行(仅当变量名不为空时使用) |
Delimiter(use ‘\t’ for tab) | 分隔符,用来分割参数名称的分隔符,默认逗号,也可以用tab来分隔,如果参数文件用tab分隔,在此应该填写\t |
Allow quoted data? | 是否允许引用数据,如果选择是,那么可以允许拆分完成的参数里面有分隔符出现 ,例如:参数文件中一行的数据“username,AAA”,111,如果该选项选择是,那么拆分后的参数是:username,AAA与111 |
Recycle on EOF? | 到达文件末尾时(EOF),是否从头开始重新读取文件?选项为true时,读取从文件的第一行开始;选项false,到达文件末尾时结束循环(Jmeter 在测试执行过程中每次迭代会从参数文件中新取一行数据,从头遍历尾) |
Stop thread on EOF? | True停止测试,False不停止测试,如果 Recycle 选项为false,并且 Stop Thread 为true,则到达EOF将导致线程停止。 |
Sharing mode 参数文件共享模式,三种
- All threads:参数文件对所有线程共享,包括统一测试计划中的不同线程组
- Current thread group:只对当前线程组的线程共享
- Current thread:仅当前线程共享
- Identifier
2、HTTP Request Defaults
实际测试中有多个请求都发送同一服务器,且参数与配置重复,可以添加一个请求默认值,一次设置多个请求一起使用
3、HTTP Cookie Manager
HTTP Cookie Manager有两个功能:
1、它像Web浏览器一样存储和发送cookie。如果您有一个 HTTP 请求并且响应中包含一个 cookie,则 cookie 管理器会自动存储该 cookie,并将在以后对该特定网站的所有请求中使用它。每个 JMeter 线程都有自己的“cookie 存储区。自动存储的cookie不在Cookie管理器显示,但可以使用查看结果树查看
JMeter 检查收到的 cookie 是否对 URL 有效。这意味着不会存储跨域 cookie,如果您有错误行为或希望使用跨域 cookie,请定义 JMeter 属性 “ CookieManager.check.cookies=false ”。
接收到的 Cookie 可以存储为 JMeter 线程变量。要将 cookie 保存为变量,请定义属性“ CookieManager.save.cookies=true ”
2、您可以手动向 Cookie 管理器添加 cookie。但是,如果您这样做,cookie 将被所有 JMeter 线程共享
默认情况下会忽略 具有空值的Cookie 。这可以通过设置 JMeter 属性来更改:CookieManager.delete_null_cookies=false。请注意,这也适用于手动定义的 cookie - 任何此类 cookie 将在更新时从显示中删除。另请注意,cookie 名称必须是唯一的 - 如果使用相同名称定义了第二个 cookie,它将替换第一个。
参数说明
Clear Cookies each Iteration:每次迭代清除Cookie(每次线程组运行时,都会清除 cookie)
Cookie Policy: Cookie策略 standard 是默认值自3.0以来,ignoreCookies 相当于省略 CookieManager,compatibility,兼容性
User-Defined Cookies:
参数 | 说明 |
---|---|
Name | 响应体cookie中的参数名称 |
Value | 响应体cookie中的参数值(可能需要正则表达式来关联取得) |
Domain | 用于指定cookie所在的域名,填写IP或域名 服务器域名(不携带http://); 当前端口port被忽略 ,注意域名一定要写,否则不起作用,即不会随着请求发送 |
Secure | 可不勾选 |
4、HTTP Header Manager
HTTP信息头管理器可以用来管理取样器的header进行管理。实际操作功能的过程中,使用浏览器或者抓包工具查看实际请求的Request Headers作为参考
5、HTTP Cache Manager
HTTP Cache Manager 用于为其范围内的 HTTP 请求添加缓存功能,以模拟浏览器缓存功能。每个虚拟用户线程都有自己的缓存
参数说明
Clear cache each Iteration:每次迭代清除缓存
Use Cache Control/Expires header when processing GET requests:处理 GET 请求时使用缓存控制/过期标头
Max Number of elements in cache:缓存中的最大元素数
6、JDBC Connection Configuration
Jmeter支持直接连接数据库,对SQL语句进行性能测试,JDBC Connection Configuration
用来配置连接信息。
参数说明:
Variable Name Bound to pool(绑定到池的变量名)
参数 | 说明 |
---|---|
Variable Name for created pool | 已创建池的变量名(连接所关联的变量的名称。可以使用多个连接,每个连接到一个不同的变量,允许 JDBC Samplers 选择合适的连接) |
Connection Pool Configuration(连接池配置)
参数 | 说明 |
---|---|
Max Number Of Connections | 最大连接数,建议填0,如果是10,则最大连接10个线程 |
Max Wait(ms) | 在连接池中取回连接的最大等待时间(如果在尝试检索连接的过程中超过超时时间,池会抛出错误,请参阅BasicDataSource.html#getMaxWaitMillis) |
Time Between Eviction Runs(ms) | 线程可空闲时间(毫秒) |
Auto Commit | 自动提交(为连接打开或关闭自动提交) |
Transaction Isolation | 事务隔离(事务隔离级别)) |
Preinit Pool | 预初始化连接池(连接池可以立即初始化。如果设置为False(默认值),则第一个JDBC请求响应的时间会较长——因为包括整个池的连接建立时间 不是必须的) |
Init SQL statements separated by new line | 以换行符分隔的初始化 SQL 语句 |
Connection Validation by Pool(通过连接池验证连接)
参数 | 描述 |
---|---|
Test While Idle | 当连接空闲时是否断开 |
Soft Min Evictable Idle Time(ms) | 连接在池中处于空闲状态的 最短时间 |
Validation Query | 验证查询(在将连接返回给调用者之前,将用于验证来自该池的连接的 SQL 查询。如果指定,此查询 必须是至少返回一行的 SQL SELECT 语句。如果未指定,连接将通过调用 isValid() 方法进行验证。) |
Database Connection Configuration(数据库连接配置)
参数 | 描述 |
---|---|
Database URL | 数据库连接URL |
JDBC Driver class | 数据库驱动 |
Username | 数据库用户名 |
Password | 数据库密码 |
Connection Properties | 建立连接时要设置的连接属性 |
常见数据库连接URL驱动:
常见数据库连接URL驱动: | ||
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://host:port/{dbname} |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:user/pass@//host:port/service |
https://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration
数据库配置详情:https://commons.apache.org/proper/commons-dbcp/configuration.html
此池创建的连接的默认 TransactionIsolation 状态。以下之一:(请参阅 javadoc)
• NONE
• READ_COMMITTED
• READ_UNCOMMITTED
• REPEATABLE_READ
• SERIALIZABLE
实际应用:
与JDBC Request一起使用
1、首先要下载一个数据库jar包,放在jmeter的lib路径下
JDBC Request请求
参数说明:
参数 | 描述 |
---|---|
Variable Name of Pool declared in JDBC Connection Configuration | JDBC连接配置中声明的池的变量名。这必须与“ JDBC Connection Configuration.”的“Variable Name”字段一致 |
Query Type | 查询的类型 |
SQL Query | 填写SQL语句 |
Parameter values | 参数值,逗号分隔的参数值列表 |
Parameter types | 参数类型,逗号分隔的 SQL 参数类型列表(例如INTEGER、DATE、VARCHAR、DOUBLE)或常量的整数值。 |
Variable Names | 变量名 |
Result Variable Name | 结果变量名(如果指定,这将创建一个包含行映射列表的对象变量。每个映射包含列名作为键和列数据作为值) |
Query timeout(s) | 查询超时 |
Limit ResultSet | 限制结果集(限制遍历 ResultSet 的行数)空值意味着-1 |
Handle ResultSet | 处理结果集(定义如何处理从可调用语句返回的 ResultSet) |
Handle ResultSet类型
- Store As String (default) :变量名列表上的所有变量都存储为字符串
- Store As Object:变量名称列表上ResultSet类型的变量将存储为 Object 并且可以在后续测试/脚本中访问和迭代,不会迭代ResultSet
- Count Records:ResultSet类型的变量将通过显示记录计数作为结果进行迭代。变量将存储为字符串
JDBC请求和JDBC配置连接设置完成后,运行结果可在查看结果树中查看
7、Random Variable(随机变量)
该元件能够生成随机数据,且可以指定输出格式,我们可以把它与字母组合在一起来代替业务单据编号,比如想要生成一个客户编号,格式如CUST_XXXX,那么我们就可以用此元件来完成,它比将用户定义变量与__Random()函数一起使用更简单。
参数说明:
参数 | 说明 |
---|---|
Variable Name | 生成的随机数保存到此变量中 |
Output Format | 变量输出格式 |
Minimum Value | 随机数最小值 |
Maximum Value | 随机数最大值 |
Seed for Random function | 随机数种子 |
Per Thread(User)? | 生成的随机变量是否在线程中共享? |
注:使用该元件,生成的随机数可能会重复
8、Counter(计数器)
测试执行过程中会记录迭代次数,循环递增生成数字 计数器将从开始循环到最大值,然后从开始重新开始,如此继续直到测试结束
参数说明:
参数 | 说明 |
---|---|
Starting value | 计数器的起始值。计数器将在第一次迭代期间等于该值(默认为 0) |
Increment | 增量,每次迭代后计数器增加多少(默认为 0,表示不增加) |
Maximum value | 如果计数器超过最大值,则将其重置为起始值 |
Number Format | 可选格式,例如000将格式化为001、002、USER_000等,默认是1,2… |
Exported Variable Name | 计数器值可用的变量名称,可供其他元件调用, |
Track Counter Independently for each User | 为每个用户独立跟踪计数器,每个线程都有自己的计数器,相互不干扰。(每个线程的计数都从初始值开始) |
Reset counter on each Thread Group Iteration | 每次线程组迭代时计数器将重置为初始值 |
其他配置原件
User Defined Variables
Login Config Element
Java Request Defaults
Keystore Configuration
Simple Config Element