JMeter学习笔记–详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用。将在其作用域的初始化阶段处理。
CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量
Variable Names:变量名列表(逗号分隔)。JMeter2.3.4以后的版本,支持CSV标题行,如果变量名为空,那么文件的第一行将被读取,并被解释为列名的列表。这些变量名必须使用分割符加以区分,他们可以使用双引号加以引用。默认情况下,该文件仅打开一次,而每个线程会使用文件中不同的数据行。至于数据行传递给线程的顺序,依赖于他们执行的顺序,数据行在每次测试循环的开始阶段读取,文件名和模式在第一次循环时解析。
Delimiter:默认逗号
Allow quoted data?: CSV文件是否容许值被引用
Recycle on EOF?: 达到文件结尾后,是否从文件开始循环重新读取(默认True),当到达文件尾时,且Recycle选项设置为True,就会从文件第一行重新开始读取,如果设置为false,而Stop thread on EOF?是False,那么当到达文件尾部时所有变量都将被置为,可以通过设置JMeter属性csvdataset.eofstring来改变该值。如果Recycle选项为false,而Stop thread是True,那么到达文件尾部之后,将导致线程被终止。
Stop thread on EOF?:达到文件结尾后,线程是否该终止。
Sharing mode:如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件名test${__threadNum}.csv,并将“sharing mode"设置为"Current thread"
All threads:文件在所有线程间共享
Current thread group: 每个文件会针对每个线程组打开一次
Current thread: 每个文件会针对每个线程单独打开
Identifier:所有线程共享相同的标识,共享相同的文件。如有4个线程组,测试人员可以使用一个通用ID,以便在两个或多个线程组之间共享文件。
注意:CSV Dataset变量在每次测试循环的初始阶段定义,由于定义发生在配置处理完成之后,所以他们不能用于一些配置元件(如JDBC Config),以便在配置时处理他们的内容。可在HTTP Auth Manager中正常使用。
FTP Request Defaults:被用于设置FTP请求的默认值
HTTP授权管理器:可以帮助测试人员指定针对Web页面的一个或多个登录。如果没有定义,HTTP客户端采样器默认使用pre-emptive校验,要禁止这一功能,做如下设置: jmeter.propertied中:设置 httpclient.parameters.file=httpclient.parameters httpclient.parameters中:设置 http.authentication.preemptive
B
o
o
l
e
a
n
=
f
a
l
s
e
,
上
面
的
设
置
只
影
响
H
T
T
P
C
l
i
e
n
t
采
样
器
(
S
O
A
P
采
样
器
,
也
使
用
H
T
T
P
C
l
i
e
n
t
)
.
注
意
,
如
果
在
一
个
采
样
器
的
作
用
域
范
围
内
有
多
个
授
权
管
理
器
,
那
么
目
前
没
办
法
确
认
J
M
e
t
e
r
使
用
哪
个
授
权
管
理
器
。
B
a
s
e
U
R
L
:
一
部
分
或
者
完
整
的
U
R
L
,
用
于
匹
配
一
个
或
者
多
个
H
T
T
P
请
求
U
R
L
。
例
如
:
指
定
一
个
B
a
s
e
U
R
L
(
h
t
t
p
:
/
/
j
a
k
a
r
t
a
.
a
p
a
c
h
e
.
o
r
g
/
r
e
s
t
r
i
c
t
e
d
/
)
,
对
应
用
户
名
“
j
m
e
t
e
r
"
,
密
码
”
j
m
e
t
e
r
"
.
如
果
测
试
人
员
发
送
一
个
H
T
T
P
请
求
到
U
R
L
(
h
t
t
p
:
/
/
j
a
k
a
r
t
a
.
a
p
a
c
h
e
.
o
r
g
/
r
e
s
t
r
i
c
t
e
d
/
a
n
t
/
m
y
P
a
g
e
.
h
t
m
l
)
,
授
权
管
理
器
就
会
发
送
用
户
名
为
"
j
m
e
t
e
r
"
登
录
信
息
u
s
e
r
n
a
m
e
:
校
验
用
的
用
户
名
P
a
s
s
w
o
r
d
:
该
用
户
的
密
码
D
o
m
a
i
n
:
针
对
N
T
L
M
使
用
的
域
R
e
a
l
m
:
针
对
N
T
L
M
使
用
的
r
e
a
l
m
H
T
T
P
C
a
c
h
e
M
a
n
a
g
e
r
:
被
用
来
为
其
作
用
域
内
的
H
T
T
P
请
求
提
供
缓
存
功
能
,
如
果
“
U
s
e
C
a
c
h
e
−
C
o
n
t
r
o
l
/
E
x
p
i
r
e
s
h
e
a
d
e
r
W
h
e
n
.
.
.
"
选
中
,
那
么
会
根
据
当
前
时
间
来
选
择
,
如
果
请
求
是
”
G
E
T
"
,
而
时
间
指
向
未
来
,
那
么
采
样
器
就
会
立
即
返
回
,
而
无
须
从
远
程
服
务
器
请
求
U
R
L
,
这
样
是
为
了
模
拟
浏
览
器
的
操
作
,
请
注
意
C
a
c
h
e
−
C
o
n
t
r
o
l
头
必
须
是
“
p
u
l
i
c
”
的
,
并
且
只
有
"
m
a
x
−
a
g
e
"
终
结
选
项
会
被
处
理
,
如
果
请
求
文
档
自
从
其
被
缓
存
以
来
没
有
发
生
任
何
改
变
,
那
么
响
应
包
体
就
会
为
空
。
H
T
T
P
C
o
o
k
i
e
管
理
器
:
主
要
有
两
个
功
能
:
它
像
w
e
b
浏
览
器
一
样
存
储
和
发
送
C
o
o
k
i
e
。
,
如
果
测
试
人
员
有
一
个
H
T
T
P
请
求
和
相
应
里
包
含
C
o
o
k
i
e
,
C
o
o
k
i
e
管
理
器
会
自
动
存
储
C
o
o
k
i
e
,
那
么
接
下
来
针
对
特
定
w
e
b
站
点
的
所
有
请
求
中
使
用
该
C
o
o
k
i
e
。
可
在
结
果
树
中
查
看
。
接
收
到
的
C
o
o
k
i
e
可
以
被
保
存
为
变
量
,
须
定
义
属
性
"
C
o
o
k
i
e
M
a
n
a
g
e
r
.
s
a
v
e
.
c
o
o
k
i
e
=
t
r
u
e
"
,
另
外
,
在
被
存
储
前
C
o
o
k
i
e
名
称
会
加
上
前
缀
“
C
O
O
K
I
E
"
,
要
恢
复
早
前
处
理
方
式
,
则
定
义
属
性
”
C
o
o
k
i
e
M
a
n
a
g
e
r
.
n
a
m
e
.
p
r
e
f
i
x
=
"
(
一
个
或
多
个
空
格
)
。
如
果
启
动
了
该
功
能
,
那
么
名
称
为
T
E
S
T
的
C
o
o
k
i
e
,
可
以
通
过
Boolean=false ,上面的设置只影响HTTPClient采样器(SOAP采样器,也使用HTTPClient). 注意,如果在一个采样器的作用域范围内有多个授权管理器,那么目前没办法确认JMeter使用哪个授权管理器。 Base URL: 一部分或者完整的URL,用于匹配一个或者多个HTTP 请求URL。例如:指定一个Base URL(http://jakarta.apache.org/restricted/),对应用户名“jmeter",密码”jmeter".如果测试人员发送一个HTTP请求到 URL(http://jakarta.apache.org/restricted/ant/myPage.html),授权管理器就会发送用户名为"jmeter"登录信息 username:校验用的用户名 Password:该用户的密码 Domain:针对NTLM使用的域 Realm:针对NTLM使用的realm HTTP Cache Manager:被用来为其作用域内的HTTP请求提供缓存功能,如果“Use Cache-Control/Expires header When ..."选中,那么会根据当前时间来选择,如果请求是”GET",而时间指向未来,那么采样器就会立即返回,而无须从远程服务器请求URL,这样是为了模拟浏览器的操作,请注意Cache-Control头必须是“pulic”的,并且只有"max-age"终结选项会被处理,如果请求文档自从其被缓存以来没有发生任何改变,那么响应包体就会为空。 HTTP Cookie管理器:主要有两个功能: 它像web浏览器一样存储和发送Cookie。,如果测试人员有一个HTTP请求和相应里包含Cookie,Cookie管理器会自动存储Cookie,那么接下来针对特定web站点的所有请求中使用该Cookie。可在结果树中查看。接收到的Cookie可以被保存为变量,须定义属性"CookieManager.save.cookie=true",另外,在被存储前Cookie名称会加上前缀“COOKIE_",要恢复早前处理方式,则定义属性”CookieManager.name.prefix="(一个或多个空格)。如果启动了该功能,那么名称为TEST的Cookie,可以通过
Boolean=false,上面的设置只影响HTTPClient采样器(SOAP采样器,也使用HTTPClient).注意,如果在一个采样器的作用域范围内有多个授权管理器,那么目前没办法确认JMeter使用哪个授权管理器。BaseURL:一部分或者完整的URL,用于匹配一个或者多个HTTP请求URL。例如:指定一个BaseURL(http://jakarta.apache.org/restricted/),对应用户名“jmeter",密码”jmeter".如果测试人员发送一个HTTP请求到URL(http://jakarta.apache.org/restricted/ant/myPage.html),授权管理器就会发送用户名为"jmeter"登录信息username:校验用的用户名Password:该用户的密码Domain:针对NTLM使用的域Realm:针对NTLM使用的realmHTTPCacheManager:被用来为其作用域内的HTTP请求提供缓存功能,如果“UseCache−Control/ExpiresheaderWhen..."选中,那么会根据当前时间来选择,如果请求是”GET",而时间指向未来,那么采样器就会立即返回,而无须从远程服务器请求URL,这样是为了模拟浏览器的操作,请注意Cache−Control头必须是“pulic”的,并且只有"max−age"终结选项会被处理,如果请求文档自从其被缓存以来没有发生任何改变,那么响应包体就会为空。HTTPCookie管理器:主要有两个功能:它像web浏览器一样存储和发送Cookie。,如果测试人员有一个HTTP请求和相应里包含Cookie,Cookie管理器会自动存储Cookie,那么接下来针对特定web站点的所有请求中使用该Cookie。可在结果树中查看。接收到的Cookie可以被保存为变量,须定义属性"CookieManager.save.cookie=true",另外,在被存储前Cookie名称会加上前缀“COOKIE",要恢复早前处理方式,则定义属性”CookieManager.name.prefix="(一个或多个空格)。如果启动了该功能,那么名称为TEST的Cookie,可以通过{COOKIE_TEST}加以引用。
手动为Cookie管理器添加一个Cookie(为所有JMeter线程所共享)。
HTTP请求默认:设置HTTP请求使用的默认值
HTTP信息头管理器:可添加或者重载HTTP请求头,JMeter目前支持多个信息头管理器,信息头目将被合并起来构成采样器列表。如果一个待合并条目匹配一个已经存在的信息头名,那么它就会替代目前的条目,除非条目值是空,在这种情况下已经存在的条目会被移除,这容许用户设置一系列默认信息头,并对特定采样器加以调整。
Name(header):请求头的名称,经常用到的两个通用请求头 “User-Agent" 和”Referer"
Value:请求头的值
登录配置元件:为采样器添加或重载用户名和密码。
用户定义的变量:定义初始化一系列变量。都在初始化阶段处理。因此有些变量不能引用。
Random Variable:被用来产生随机数字字符串,接下来将其存放到变量之中。
Variable Name: 变量名,用于保存随机字符串
output format: 使用java.text.DecimalFormat格式字符串,例如”000"会产生至少3个数字的随机数,或者“USER_000"产生的输出格式为USER_nnn,如果不指明,就是用long.toString()来产生数字
Minimum Value: 产生随机数的最小值(整数)
Maximum Value:
Seed for Random function:随机数产生器的种子,默认为当前时间(以毫秒为单位)
Per Thread(User)?: 如果为False,则随机数产生器在线程组的所欲线程共享,为True,则每个线程都有自己的随机数产生器。
计数器:容许用户创建一个计数器,可在线程组中任何地方被引用
简单配置元件:可以在采样器中添加或者重载任意值