JMeter的配置元件有很多的功能,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用。
CSV Data Set Config
作用:从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量。
JMeter 2.3.4以后的版本,支持CSV文件中有标题行,如果变量名为空,那么文件的第一行将被读取,并被解释为列名的列表。
Recycle选项设置为True时,当到达文件尾,会从文件第一行重新开始读取。
如果Recycle选项为False,那么到达文件尾部时所有变量都将被置为
Recycle on EOF 和Stop thread on EOF的关系:
|
All threads:文件在所有线程间共享。
Identifier:所有线程共享相同的标识,共享相同的文件。如有4个线程组,测试人员可以使用一个通用ID,以便在两个或多个线程组之间共享文件。
Current thread:每个文件会针对每个线程单独打开。
Current thread group:每个文件会针对每个线程组打开一次。
HTTP授权管理器
可以帮助测试人员指定针对Web页面的一个或多个登录。如果没有定义,HTTP客户端采样器默认使用pre-emptive校验,要禁止这一功能,做如下设置: jmeter.propertied中:设置 httpclient.parameters.file=httpclient.parameters httpclient.parameters中:设置 http.authentication.preemptive$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,可以通过${COOKIE_TEST}加以引用。手动为Cookie管理器添加一个Cookie(为所有JMeter线程所共享)。
HTTP请求默认值
设置HTTP请求使用的默认值,一般是多个接口有一些公共参数时会使用请求默认值。配置完默认值后,在创建 各个HTTP 请求时就可以不必加这些公共参数了,Jmeter 会在发送请求时自动把把这些公共参数加上。
HTTP请求默认值的Value有两种写法,一种是具体的值,比如图上的"10040",另一种是引用一些已经定义好的变量${VARIABLE} ,比如${ffAppID}
参数列表:
Attribute | Description | Required |
Name |
组件名 | No |
Server |
域名或IP | No |
Port | 端口 | No |
Connect Timeout | 连接超时时间(单位毫秒) | No |
Response Timeout | 响应超时时间(单位毫秒) | No |
Implementation | 实现方式,默认值为Jmeter属性:jemter.httpsampler | No |
Protocol | 协议,HTTP or HTTPS | No |
Method | 请求方法:HTTP GET or HTTP POST | No |
Path | 请求资源路径 | No |
Send Parameters With the Request | 参数列表 | No |
Server (proxy) | 代理服务器的域名或IP | No |
Port | 代理服务器的端口 | No, unless proxy hostname is specified |
Username | 代理服务器的用户名 | No |
Password | 代理服务器的密码 | No |
Retrieve All Embedded Resources from HTML Files | 告诉Jmeter解析HTML文件并发送所有资源请求(包括图片,java小程序,JS,CSS等) | No |
Use concurrent pool | 用一个连接池来获取嵌入的资源 | No |
Size | 用于获取嵌入式资源的并发连接池大小 | No |
Embedded URLs must match: | URL匹配,过滤 | No |
HTTP信息头管理器
可添加或者重载HTTP请求头,JMeter目前支持多个信息头管理器,信息头目将被合并起来构成采样器列表。如果一个待合并条目匹配一个已经存在的信息头名,那么它就会替代目前的条目,除非条目值是空,在这种情况下已经存在的条目会被移除,这容许用户设置一系列默认信息头,并对特定采样器加以调整。
Name(header):请求头的名称,比如Content-Type
Value:请求头的值,比如application/json
登录配置元件
为采样器添加或重载用户名和密码。
用户定义的变量
定义初始化一系列变量,都在初始化阶段处理。
Random Variable
被用来产生随机数字字符串,接下来将其存放到变量之中。